Merge "Revert "Revert "Define new general permission APIs for webview."""
diff --git a/Android.mk b/Android.mk
index 33e64d0..adc9ef1 100644
--- a/Android.mk
+++ b/Android.mk
@@ -85,6 +85,8 @@
 	core/java/android/app/IWallpaperManager.aidl \
 	core/java/android/app/IWallpaperManagerCallback.aidl \
 	core/java/android/app/admin/IDevicePolicyManager.aidl \
+	core/java/android/app/trust/ITrustManager.aidl \
+	core/java/android/app/trust/ITrustListener.aidl \
 	core/java/android/app/backup/IBackupManager.aidl \
 	core/java/android/app/backup/IFullBackupRestoreObserver.aidl \
 	core/java/android/app/backup/IRestoreObserver.aidl \
@@ -117,9 +119,12 @@
 	core/java/android/content/ISyncContext.aidl \
 	core/java/android/content/ISyncServiceAdapter.aidl \
 	core/java/android/content/ISyncStatusObserver.aidl \
+	core/java/android/content/pm/ILauncherApps.aidl \
+	core/java/android/content/pm/IOnAppsChangedListener.aidl \
 	core/java/android/content/pm/IPackageDataObserver.aidl \
 	core/java/android/content/pm/IPackageDeleteObserver.aidl \
 	core/java/android/content/pm/IPackageInstallObserver.aidl \
+	core/java/android/content/pm/IPackageInstallObserver2.aidl \
 	core/java/android/content/pm/IPackageManager.aidl \
 	core/java/android/content/pm/IPackageMoveObserver.aidl \
 	core/java/android/content/pm/IPackageStatsObserver.aidl \
@@ -189,9 +194,17 @@
 	core/java/android/service/dreams/IDozeHardware.aidl \
 	core/java/android/service/dreams/IDreamManager.aidl \
 	core/java/android/service/dreams/IDreamService.aidl \
+	core/java/android/service/trust/ITrustAgentService.aidl \
+	core/java/android/service/trust/ITrustAgentServiceCallback.aidl \
 	core/java/android/service/wallpaper/IWallpaperConnection.aidl \
 	core/java/android/service/wallpaper/IWallpaperEngine.aidl \
 	core/java/android/service/wallpaper/IWallpaperService.aidl \
+	core/java/android/tv/ITvInputClient.aidl \
+	core/java/android/tv/ITvInputManager.aidl \
+	core/java/android/tv/ITvInputService.aidl \
+	core/java/android/tv/ITvInputServiceCallback.aidl \
+	core/java/android/tv/ITvInputSession.aidl \
+	core/java/android/tv/ITvInputSessionCallback.aidl \
 	core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl\
 	core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl\
 	core/java/android/view/accessibility/IAccessibilityManager.aidl \
@@ -288,6 +301,7 @@
 	telephony/java/com/android/internal/telephony/ISms.aidl \
 	telephony/java/com/android/internal/telephony/IWapPushManager.aidl \
 	wifi/java/android/net/wifi/IWifiManager.aidl \
+	wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl \
 	wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl \
 	packages/services/PacProcessor/com/android/net/IProxyService.aidl \
 	packages/services/Proxy/com/android/net/IProxyCallback.aidl \
@@ -406,6 +420,8 @@
 	frameworks/base/core/java/android/view/MotionEvent.aidl \
 	frameworks/base/core/java/android/view/Surface.aidl \
 	frameworks/base/core/java/android/view/WindowManager.aidl \
+	frameworks/base/core/java/android/view/WindowAnimationFrameStats.aidl \
+	frameworks/base/core/java/android/view/WindowContentFrameStats.aidl \
 	frameworks/base/core/java/android/widget/RemoteViews.aidl \
 	frameworks/base/core/java/com/android/internal/textservice/ISpellCheckerService.aidl \
 	frameworks/base/core/java/com/android/internal/textservice/ISpellCheckerSession.aidl \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 4f0e603..ffdac4e 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -188,6 +188,7 @@
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/media/java/android/media/IMedia*)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/view/IMagnificationCallbacks*)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/tv/)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/api/current.txt b/api/current.txt
index 9a52d26..7ebabe4 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -28,11 +28,14 @@
     field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE";
     field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
     field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE";
+    field public static final java.lang.String BIND_TRUST_AGENT_SERVICE = "android.permission.BIND_TRUST_AGENT_SERVICE";
+    field public static final java.lang.String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT";
     field public static final java.lang.String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE";
     field public static final java.lang.String BIND_WALLPAPER = "android.permission.BIND_WALLPAPER";
     field public static final java.lang.String BLUETOOTH = "android.permission.BLUETOOTH";
     field public static final java.lang.String BLUETOOTH_ADMIN = "android.permission.BLUETOOTH_ADMIN";
     field public static final java.lang.String BLUETOOTH_PRIVILEGED = "android.permission.BLUETOOTH_PRIVILEGED";
+    field public static final java.lang.String BODY_SENSORS = "android.permission.BODY_SENSORS";
     field public static final java.lang.String BRICK = "android.permission.BRICK";
     field public static final java.lang.String BROADCAST_PACKAGE_REMOVED = "android.permission.BROADCAST_PACKAGE_REMOVED";
     field public static final java.lang.String BROADCAST_SMS = "android.permission.BROADCAST_SMS";
@@ -245,6 +248,7 @@
     field public static final int actionBarTabBarStyle = 16843508; // 0x10102f4
     field public static final int actionBarTabStyle = 16843507; // 0x10102f3
     field public static final int actionBarTabTextStyle = 16843509; // 0x10102f5
+    field public static final int actionBarTheme = 16843837; // 0x101043d
     field public static final int actionBarWidgetTheme = 16843671; // 0x1010397
     field public static final int actionButtonStyle = 16843480; // 0x10102d8
     field public static final int actionDropDownStyle = 16843479; // 0x10102d7
@@ -287,6 +291,7 @@
     field public static final int alwaysDrawnWithCache = 16842991; // 0x10100ef
     field public static final int alwaysRetainTaskState = 16843267; // 0x1010203
     field public static final int angle = 16843168; // 0x10101a0
+    field public static final int animate = 16843823; // 0x101042f
     field public static final int animateFirstView = 16843477; // 0x10102d5
     field public static final int animateLayoutChanges = 16843506; // 0x10102f2
     field public static final int animateOnClick = 16843356; // 0x101025c
@@ -373,24 +378,29 @@
     field public static final int clipChildren = 16842986; // 0x10100ea
     field public static final int clipOrientation = 16843274; // 0x101020a
     field public static final int clipToPadding = 16842987; // 0x10100eb
+    field public static final int clipToPath = 16843822; // 0x101042e
     field public static final int codes = 16843330; // 0x1010242
     field public static final int collapseColumns = 16843083; // 0x101014b
     field public static final int color = 16843173; // 0x10101a5
+    field public static final int colorAccent = 16843842; // 0x1010442
     field public static final int colorActivatedHighlight = 16843664; // 0x1010390
     field public static final int colorBackground = 16842801; // 0x1010031
     field public static final int colorBackgroundCacheHint = 16843435; // 0x10102ab
-    field public static final int colorButtonNormal = 16843781; // 0x1010405
-    field public static final int colorButtonNormalColored = 16843783; // 0x1010407
-    field public static final int colorButtonPressed = 16843782; // 0x1010406
-    field public static final int colorButtonPressedColored = 16843784; // 0x1010408
-    field public static final int colorControlActivated = 16843780; // 0x1010404
-    field public static final int colorControlNormal = 16843779; // 0x1010403
+    field public static final int colorButtonNormal = 16843829; // 0x1010435
+    field public static final int colorButtonNormalColored = 16843831; // 0x1010437
+    field public static final int colorButtonPressed = 16843830; // 0x1010436
+    field public static final int colorButtonPressedColored = 16843832; // 0x1010438
+    field public static final int colorControlActivated = 16843828; // 0x1010434
+    field public static final int colorControlNormal = 16843827; // 0x1010433
     field public static final int colorFocusedHighlight = 16843663; // 0x101038f
     field public static final int colorForeground = 16842800; // 0x1010030
     field public static final int colorForegroundInverse = 16843270; // 0x1010206
     field public static final int colorLongPressedHighlight = 16843662; // 0x101038e
     field public static final int colorMultiSelectHighlight = 16843665; // 0x1010391
     field public static final int colorPressedHighlight = 16843661; // 0x101038d
+    field public static final int colorPrimary = 16843840; // 0x1010440
+    field public static final int colorPrimaryDark = 16843841; // 0x1010441
+    field public static final int colorPrimaryLight = 16843839; // 0x101043f
     field public static final int columnCount = 16843639; // 0x1010377
     field public static final int columnDelay = 16843215; // 0x10101cf
     field public static final int columnOrderPreserved = 16843640; // 0x1010378
@@ -405,10 +415,10 @@
     field public static final int content = 16843355; // 0x101025b
     field public static final int contentAuthority = 16843408; // 0x1010290
     field public static final int contentDescription = 16843379; // 0x1010273
-    field public static final int controlX1 = 16843771; // 0x10103fb
-    field public static final int controlX2 = 16843773; // 0x10103fd
-    field public static final int controlY1 = 16843772; // 0x10103fc
-    field public static final int controlY2 = 16843774; // 0x10103fe
+    field public static final int controlX1 = 16843799; // 0x1010417
+    field public static final int controlX2 = 16843801; // 0x1010419
+    field public static final int controlY1 = 16843800; // 0x1010418
+    field public static final int controlY2 = 16843802; // 0x101041a
     field public static final int cropToPadding = 16843043; // 0x1010123
     field public static final int cursorVisible = 16843090; // 0x1010152
     field public static final int customNavigationLayout = 16843474; // 0x10102d2
@@ -471,6 +481,7 @@
     field public static final int dropDownWidth = 16843362; // 0x1010262
     field public static final int duplicateParentState = 16842985; // 0x10100e9
     field public static final int duration = 16843160; // 0x1010198
+    field public static final int durations = 16843814; // 0x1010426
     field public static final int editTextBackground = 16843602; // 0x1010352
     field public static final int editTextColor = 16843601; // 0x1010351
     field public static final int editTextPreferenceStyle = 16842898; // 0x1010092
@@ -511,13 +522,15 @@
     field public static final int fastScrollOverlayPosition = 16843578; // 0x101033a
     field public static final int fastScrollPreviewBackgroundLeft = 16843575; // 0x1010337
     field public static final int fastScrollPreviewBackgroundRight = 16843576; // 0x1010338
-    field public static final int fastScrollStyle = 16843766; // 0x10103f6
+    field public static final int fastScrollStyle = 16843794; // 0x1010412
     field public static final int fastScrollTextColor = 16843609; // 0x1010359
     field public static final int fastScrollThumbDrawable = 16843574; // 0x1010336
     field public static final int fastScrollTrackDrawable = 16843577; // 0x1010339
+    field public static final int fill = 16843809; // 0x1010421
     field public static final int fillAfter = 16843197; // 0x10101bd
     field public static final int fillBefore = 16843196; // 0x10101bc
     field public static final int fillEnabled = 16843343; // 0x101024f
+    field public static final int fillOpacity = 16843808; // 0x1010420
     field public static final int fillViewport = 16843130; // 0x101017a
     field public static final int filter = 16843035; // 0x101011b
     field public static final int filterTouchesWhenObscured = 16843460; // 0x10102c4
@@ -537,7 +550,7 @@
     field public static final int format12Hour = 16843722; // 0x10103ca
     field public static final int format24Hour = 16843723; // 0x10103cb
     field public static final int fragment = 16843491; // 0x10102e3
-    field public static final int fragmentBreadCrumbsStyle = 16843765; // 0x10103f5
+    field public static final int fragmentBreadCrumbsStyle = 16843793; // 0x1010411
     field public static final int fragmentCloseEnterAnimation = 16843495; // 0x10102e7
     field public static final int fragmentCloseExitAnimation = 16843496; // 0x10102e8
     field public static final int fragmentFadeEnterAnimation = 16843497; // 0x10102e9
@@ -666,6 +679,34 @@
     field public static final int keyboardMode = 16843341; // 0x101024d
     field public static final int keycode = 16842949; // 0x10100c5
     field public static final int killAfterRestore = 16843420; // 0x101029c
+    field public static final int l_resource_pad1 = 16843792; // 0x1010410
+    field public static final int l_resource_pad10 = 16843783; // 0x1010407
+    field public static final int l_resource_pad11 = 16843782; // 0x1010406
+    field public static final int l_resource_pad12 = 16843781; // 0x1010405
+    field public static final int l_resource_pad13 = 16843780; // 0x1010404
+    field public static final int l_resource_pad14 = 16843779; // 0x1010403
+    field public static final int l_resource_pad15 = 16843778; // 0x1010402
+    field public static final int l_resource_pad16 = 16843777; // 0x1010401
+    field public static final int l_resource_pad17 = 16843776; // 0x1010400
+    field public static final int l_resource_pad18 = 16843775; // 0x10103ff
+    field public static final int l_resource_pad19 = 16843774; // 0x10103fe
+    field public static final int l_resource_pad2 = 16843791; // 0x101040f
+    field public static final int l_resource_pad20 = 16843773; // 0x10103fd
+    field public static final int l_resource_pad21 = 16843772; // 0x10103fc
+    field public static final int l_resource_pad22 = 16843771; // 0x10103fb
+    field public static final int l_resource_pad23 = 16843770; // 0x10103fa
+    field public static final int l_resource_pad24 = 16843769; // 0x10103f9
+    field public static final int l_resource_pad25 = 16843768; // 0x10103f8
+    field public static final int l_resource_pad26 = 16843767; // 0x10103f7
+    field public static final int l_resource_pad27 = 16843766; // 0x10103f6
+    field public static final int l_resource_pad28 = 16843765; // 0x10103f5
+    field public static final int l_resource_pad3 = 16843790; // 0x101040e
+    field public static final int l_resource_pad4 = 16843789; // 0x101040d
+    field public static final int l_resource_pad5 = 16843788; // 0x101040c
+    field public static final int l_resource_pad6 = 16843787; // 0x101040b
+    field public static final int l_resource_pad7 = 16843786; // 0x101040a
+    field public static final int l_resource_pad8 = 16843785; // 0x1010409
+    field public static final int l_resource_pad9 = 16843784; // 0x1010408
     field public static final int label = 16842753; // 0x1010001
     field public static final int labelFor = 16843718; // 0x10103c6
     field public static final int labelTextSize = 16843317; // 0x1010235
@@ -721,6 +762,7 @@
     field public static final int layout_x = 16843135; // 0x101017f
     field public static final int layout_y = 16843136; // 0x1010180
     field public static final int left = 16843181; // 0x10101ad
+    field public static final int limitTo = 16843824; // 0x1010430
     field public static final int lineSpacingExtra = 16843287; // 0x1010217
     field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
     field public static final int lines = 16843092; // 0x1010154
@@ -823,16 +865,18 @@
     field public static final int parentActivityName = 16843687; // 0x10103a7
     field public static final deprecated int password = 16843100; // 0x101015c
     field public static final int path = 16842794; // 0x101002a
+    field public static final int pathData = 16843810; // 0x1010422
     field public static final int pathPattern = 16842796; // 0x101002c
     field public static final int pathPrefix = 16842795; // 0x101002b
     field public static final int permission = 16842758; // 0x1010006
     field public static final int permissionFlags = 16843719; // 0x10103c7
     field public static final int permissionGroup = 16842762; // 0x101000a
     field public static final int permissionGroupFlags = 16843717; // 0x10103c5
+    field public static final int persistable = 16843833; // 0x1010439
     field public static final int persistent = 16842765; // 0x101000d
     field public static final int persistentDrawingCache = 16842990; // 0x10100ee
     field public static final deprecated int phoneNumber = 16843111; // 0x1010167
-    field public static final int pinned = 16843778; // 0x1010402
+    field public static final int pinned = 16843826; // 0x1010432
     field public static final int pivotX = 16843189; // 0x10101b5
     field public static final int pivotY = 16843190; // 0x10101b6
     field public static final int popupAnimationStyle = 16843465; // 0x10102c9
@@ -887,6 +931,7 @@
     field public static final int readPermission = 16842759; // 0x1010007
     field public static final int repeatCount = 16843199; // 0x10101bf
     field public static final int repeatMode = 16843200; // 0x10101c0
+    field public static final int repeatStyle = 16843816; // 0x1010428
     field public static final int reqFiveWayNav = 16843314; // 0x1010232
     field public static final int reqHardKeyboard = 16843305; // 0x1010229
     field public static final int reqKeyboardType = 16843304; // 0x1010228
@@ -896,7 +941,7 @@
     field public static final int required = 16843406; // 0x101028e
     field public static final int requiredAccountType = 16843734; // 0x10103d6
     field public static final int requiredForAllUsers = 16843728; // 0x10103d0
-    field public static final int requiredForProfile = 16843777; // 0x1010401
+    field public static final int requiredForProfile = 16843825; // 0x1010431
     field public static final int requiresFadingEdge = 16843685; // 0x10103a5
     field public static final int requiresSmallestWidthDp = 16843620; // 0x1010364
     field public static final int resizeMode = 16843619; // 0x1010363
@@ -960,6 +1005,7 @@
     field public static final int selectableItemBackground = 16843534; // 0x101030e
     field public static final int selectedDateVerticalBar = 16843591; // 0x1010347
     field public static final int selectedWeekBackgroundColor = 16843586; // 0x1010342
+    field public static final int sequence = 16843815; // 0x1010427
     field public static final int settingsActivity = 16843301; // 0x1010225
     field public static final int shadowColor = 16843105; // 0x1010161
     field public static final int shadowDx = 16843106; // 0x1010162
@@ -967,7 +1013,7 @@
     field public static final int shadowRadius = 16843108; // 0x1010164
     field public static final int shape = 16843162; // 0x101019a
     field public static final int shareInterpolator = 16843195; // 0x10101bb
-    field public static final int sharedElementName = 16843775; // 0x10103ff
+    field public static final int sharedElementName = 16843803; // 0x101041b
     field public static final int sharedUserId = 16842763; // 0x101000b
     field public static final int sharedUserLabel = 16843361; // 0x1010261
     field public static final int shouldDisableView = 16843246; // 0x10101ee
@@ -981,6 +1027,7 @@
     field public static final int shrinkColumns = 16843082; // 0x101014a
     field public static final deprecated int singleLine = 16843101; // 0x101015d
     field public static final int singleUser = 16843711; // 0x10103bf
+    field public static final int slideEdge = 16843836; // 0x101043c
     field public static final int smallIcon = 16843422; // 0x101029e
     field public static final int smallScreens = 16843396; // 0x1010284
     field public static final int smoothScrollbar = 16843313; // 0x1010231
@@ -1031,7 +1078,13 @@
     field public static final int streamType = 16843273; // 0x1010209
     field public static final int stretchColumns = 16843081; // 0x1010149
     field public static final int stretchMode = 16843030; // 0x1010116
+    field public static final int stroke = 16843811; // 0x1010423
+    field public static final int strokeLineCap = 16843820; // 0x101042c
+    field public static final int strokeLineJoin = 16843821; // 0x101042d
+    field public static final int strokeOpacity = 16843812; // 0x1010424
+    field public static final int strokeWidth = 16843813; // 0x1010425
     field public static final int subtitle = 16843473; // 0x10102d1
+    field public static final int subtitleTextAppearance = 16843835; // 0x101043b
     field public static final int subtitleTextStyle = 16843513; // 0x10102f9
     field public static final int subtypeExtraValue = 16843674; // 0x101039a
     field public static final int subtypeId = 16843713; // 0x10103c1
@@ -1084,6 +1137,7 @@
     field public static final int textAppearanceLargeInverse = 16842819; // 0x1010043
     field public static final int textAppearanceLargePopupMenu = 16843521; // 0x1010301
     field public static final int textAppearanceListItem = 16843678; // 0x101039e
+    field public static final int textAppearanceListItemSecondary = 16843838; // 0x101043e
     field public static final int textAppearanceListItemSmall = 16843679; // 0x101039f
     field public static final int textAppearanceMedium = 16842817; // 0x1010041
     field public static final int textAppearanceMediumInverse = 16842820; // 0x1010044
@@ -1144,9 +1198,10 @@
     field public static final int tileMode = 16843265; // 0x1010201
     field public static final int timeZone = 16843724; // 0x10103cc
     field public static final int tint = 16843041; // 0x1010121
-    field public static final int tintMode = 16843770; // 0x10103fa
+    field public static final int tintMode = 16843798; // 0x1010416
     field public static final int title = 16843233; // 0x10101e1
     field public static final int titleCondensed = 16843234; // 0x10101e2
+    field public static final int titleTextAppearance = 16843834; // 0x101043a
     field public static final int titleTextStyle = 16843512; // 0x10102f8
     field public static final int toAlpha = 16843211; // 0x10101cb
     field public static final int toDegrees = 16843188; // 0x10101b4
@@ -1166,11 +1221,15 @@
     field public static final int transformPivotX = 16843552; // 0x1010320
     field public static final int transformPivotY = 16843553; // 0x1010321
     field public static final int transition = 16843743; // 0x10103df
-    field public static final int transitionGroup = 16843776; // 0x1010400
+    field public static final int transitionGroup = 16843804; // 0x101041c
     field public static final int transitionOrdering = 16843744; // 0x10103e0
     field public static final int translationX = 16843554; // 0x1010322
     field public static final int translationY = 16843555; // 0x1010323
-    field public static final int translationZ = 16843769; // 0x10103f9
+    field public static final int translationZ = 16843797; // 0x1010415
+    field public static final int trigger = 16843805; // 0x101041d
+    field public static final int trimPathEnd = 16843818; // 0x101042a
+    field public static final int trimPathOffset = 16843819; // 0x101042b
+    field public static final int trimPathStart = 16843817; // 0x1010429
     field public static final int type = 16843169; // 0x10101a1
     field public static final int typeface = 16842902; // 0x1010096
     field public static final int uiOptions = 16843672; // 0x1010398
@@ -1195,6 +1254,8 @@
     field public static final int verticalGap = 16843328; // 0x1010240
     field public static final int verticalScrollbarPosition = 16843572; // 0x1010334
     field public static final int verticalSpacing = 16843029; // 0x1010115
+    field public static final int viewportHeight = 16843807; // 0x101041f
+    field public static final int viewportWidth = 16843806; // 0x101041e
     field public static final int visibility = 16842972; // 0x10100dc
     field public static final int visible = 16843156; // 0x1010194
     field public static final int vmSafeMode = 16843448; // 0x10102b8
@@ -1227,8 +1288,8 @@
     field public static final int windowBackground = 16842836; // 0x1010054
     field public static final int windowCloseOnTouchOutside = 16843611; // 0x101035b
     field public static final int windowContentOverlay = 16842841; // 0x1010059
-    field public static final int windowContentTransitionManager = 16843768; // 0x10103f8
-    field public static final int windowContentTransitions = 16843767; // 0x10103f7
+    field public static final int windowContentTransitionManager = 16843796; // 0x1010414
+    field public static final int windowContentTransitions = 16843795; // 0x1010413
     field public static final int windowDisablePreview = 16843298; // 0x1010222
     field public static final int windowEnableSplitTouch = 16843543; // 0x1010317
     field public static final int windowEnterAnimation = 16842932; // 0x10100b4
@@ -1301,10 +1362,20 @@
     field public static final int app_icon_size = 17104896; // 0x1050000
     field public static final int dialog_min_width_major = 17104899; // 0x1050003
     field public static final int dialog_min_width_minor = 17104900; // 0x1050004
+    field public static final int l_resource_pad1 = 17104912; // 0x1050010
+    field public static final int l_resource_pad10 = 17104903; // 0x1050007
+    field public static final int l_resource_pad2 = 17104911; // 0x105000f
+    field public static final int l_resource_pad3 = 17104910; // 0x105000e
+    field public static final int l_resource_pad4 = 17104909; // 0x105000d
+    field public static final int l_resource_pad5 = 17104908; // 0x105000c
+    field public static final int l_resource_pad6 = 17104907; // 0x105000b
+    field public static final int l_resource_pad7 = 17104906; // 0x105000a
+    field public static final int l_resource_pad8 = 17104905; // 0x1050009
+    field public static final int l_resource_pad9 = 17104904; // 0x1050008
     field public static final int notification_large_icon_height = 17104902; // 0x1050006
     field public static final int notification_large_icon_width = 17104901; // 0x1050005
-    field public static final int recents_thumbnail_height = 17104903; // 0x1050007
-    field public static final int recents_thumbnail_width = 17104904; // 0x1050008
+    field public static final int recents_thumbnail_height = 17104913; // 0x1050011
+    field public static final int recents_thumbnail_width = 17104914; // 0x1050012
     field public static final int thumbnail_height = 17104897; // 0x1050001
     field public static final int thumbnail_width = 17104898; // 0x1050002
   }
@@ -1518,7 +1589,27 @@
     field public static final int inputArea = 16908318; // 0x102001e
     field public static final int inputExtractEditText = 16908325; // 0x1020025
     field public static final int keyboardView = 16908326; // 0x1020026
+    field public static final int l_resource_pad1 = 16908352; // 0x1020040
+    field public static final int l_resource_pad10 = 16908343; // 0x1020037
+    field public static final int l_resource_pad11 = 16908342; // 0x1020036
+    field public static final int l_resource_pad12 = 16908341; // 0x1020035
+    field public static final int l_resource_pad13 = 16908340; // 0x1020034
+    field public static final int l_resource_pad14 = 16908339; // 0x1020033
+    field public static final int l_resource_pad15 = 16908338; // 0x1020032
+    field public static final int l_resource_pad16 = 16908337; // 0x1020031
+    field public static final int l_resource_pad17 = 16908336; // 0x1020030
+    field public static final int l_resource_pad18 = 16908335; // 0x102002f
+    field public static final int l_resource_pad19 = 16908334; // 0x102002e
+    field public static final int l_resource_pad2 = 16908351; // 0x102003f
+    field public static final int l_resource_pad3 = 16908350; // 0x102003e
+    field public static final int l_resource_pad4 = 16908349; // 0x102003d
+    field public static final int l_resource_pad5 = 16908348; // 0x102003c
+    field public static final int l_resource_pad6 = 16908347; // 0x102003b
+    field public static final int l_resource_pad7 = 16908346; // 0x102003a
+    field public static final int l_resource_pad8 = 16908345; // 0x1020039
+    field public static final int l_resource_pad9 = 16908344; // 0x1020038
     field public static final int list = 16908298; // 0x102000a
+    field public static final int mask = 16908354; // 0x1020042
     field public static final int message = 16908299; // 0x102000b
     field public static final int paste = 16908322; // 0x1020022
     field public static final int primary = 16908300; // 0x102000c
@@ -1527,7 +1618,7 @@
     field public static final int selectAll = 16908319; // 0x102001f
     field public static final int selectTextMode = 16908333; // 0x102002d
     field public static final int selectedIcon = 16908302; // 0x102000e
-    field public static final int shared_element_name = 16908334; // 0x102002e
+    field public static final int shared_element_name = 16908353; // 0x1020041
     field public static final int startSelectingText = 16908328; // 0x1020028
     field public static final int stopSelectingText = 16908329; // 0x1020029
     field public static final int summary = 16908304; // 0x1020010
@@ -1563,7 +1654,10 @@
     field public static final int decelerate_cubic = 17563651; // 0x10c0003
     field public static final int decelerate_quad = 17563649; // 0x10c0001
     field public static final int decelerate_quint = 17563653; // 0x10c0005
+    field public static final int fast_out_linear_in = 17563663; // 0x10c000f
+    field public static final int fast_out_slow_in = 17563661; // 0x10c000d
     field public static final int linear = 17563659; // 0x10c000b
+    field public static final int linear_out_slow_in = 17563662; // 0x10c000e
     field public static final int overshoot = 17563656; // 0x10c0008
   }
 
@@ -1682,13 +1776,13 @@
     field public static final int TextAppearance_DeviceDefault_Widget = 16974265; // 0x10301b9
     field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Menu = 16974286; // 0x10301ce
     field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle = 16974279; // 0x10301c7
-    field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse = 16974283; // 0x10301cb
+    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse = 16974283; // 0x10301cb
     field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Title = 16974278; // 0x10301c6
-    field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse = 16974282; // 0x10301ca
+    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse = 16974282; // 0x10301ca
     field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle = 16974281; // 0x10301c9
-    field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse = 16974285; // 0x10301cd
+    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse = 16974285; // 0x10301cd
     field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Title = 16974280; // 0x10301c8
-    field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse = 16974284; // 0x10301cc
+    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse = 16974284; // 0x10301cc
     field public static final int TextAppearance_DeviceDefault_Widget_Button = 16974266; // 0x10301ba
     field public static final int TextAppearance_DeviceDefault_Widget_DropDownHint = 16974271; // 0x10301bf
     field public static final int TextAppearance_DeviceDefault_Widget_DropDownItem = 16974272; // 0x10301c0
@@ -1742,36 +1836,52 @@
     field public static final int TextAppearance_Large_Inverse = 16973891; // 0x1030043
     field public static final int TextAppearance_Medium = 16973892; // 0x1030044
     field public static final int TextAppearance_Medium_Inverse = 16973893; // 0x1030045
-    field public static final int TextAppearance_Quantum = 16974318; // 0x10301ee
-    field public static final int TextAppearance_Quantum_DialogWindowTitle = 16974319; // 0x10301ef
-    field public static final int TextAppearance_Quantum_Inverse = 16974320; // 0x10301f0
-    field public static final int TextAppearance_Quantum_Large = 16974321; // 0x10301f1
-    field public static final int TextAppearance_Quantum_Large_Inverse = 16974322; // 0x10301f2
-    field public static final int TextAppearance_Quantum_Medium = 16974323; // 0x10301f3
-    field public static final int TextAppearance_Quantum_Medium_Inverse = 16974324; // 0x10301f4
-    field public static final int TextAppearance_Quantum_SearchResult_Subtitle = 16974325; // 0x10301f5
-    field public static final int TextAppearance_Quantum_SearchResult_Title = 16974326; // 0x10301f6
-    field public static final int TextAppearance_Quantum_Small = 16974327; // 0x10301f7
-    field public static final int TextAppearance_Quantum_Small_Inverse = 16974328; // 0x10301f8
-    field public static final int TextAppearance_Quantum_Widget = 16974330; // 0x10301fa
-    field public static final int TextAppearance_Quantum_Widget_ActionBar_Menu = 16974331; // 0x10301fb
-    field public static final int TextAppearance_Quantum_Widget_ActionBar_Subtitle = 16974332; // 0x10301fc
-    field public static final int TextAppearance_Quantum_Widget_ActionBar_Title = 16974333; // 0x10301fd
-    field public static final int TextAppearance_Quantum_Widget_ActionMode_Subtitle = 16974334; // 0x10301fe
-    field public static final int TextAppearance_Quantum_Widget_ActionMode_Title = 16974335; // 0x10301ff
-    field public static final int TextAppearance_Quantum_Widget_Button = 16974336; // 0x1030200
-    field public static final int TextAppearance_Quantum_Widget_DropDownHint = 16974337; // 0x1030201
-    field public static final int TextAppearance_Quantum_Widget_DropDownItem = 16974338; // 0x1030202
-    field public static final int TextAppearance_Quantum_Widget_EditText = 16974339; // 0x1030203
-    field public static final int TextAppearance_Quantum_Widget_IconMenu_Item = 16974340; // 0x1030204
-    field public static final int TextAppearance_Quantum_Widget_PopupMenu = 16974341; // 0x1030205
-    field public static final int TextAppearance_Quantum_Widget_PopupMenu_Large = 16974342; // 0x1030206
-    field public static final int TextAppearance_Quantum_Widget_PopupMenu_Small = 16974343; // 0x1030207
-    field public static final int TextAppearance_Quantum_Widget_TabWidget = 16974344; // 0x1030208
-    field public static final int TextAppearance_Quantum_Widget_TextView = 16974345; // 0x1030209
-    field public static final int TextAppearance_Quantum_Widget_TextView_PopupMenu = 16974346; // 0x103020a
-    field public static final int TextAppearance_Quantum_Widget_TextView_SpinnerItem = 16974347; // 0x103020b
-    field public static final int TextAppearance_Quantum_WindowTitle = 16974329; // 0x10301f9
+    field public static final int TextAppearance_Quantum = 16974346; // 0x103020a
+    field public static final int TextAppearance_Quantum_Body1 = 16974538; // 0x10302ca
+    field public static final int TextAppearance_Quantum_Body2 = 16974537; // 0x10302c9
+    field public static final int TextAppearance_Quantum_Button = 16974541; // 0x10302cd
+    field public static final int TextAppearance_Quantum_Caption = 16974539; // 0x10302cb
+    field public static final int TextAppearance_Quantum_DialogWindowTitle = 16974347; // 0x103020b
+    field public static final int TextAppearance_Quantum_Display1 = 16974533; // 0x10302c5
+    field public static final int TextAppearance_Quantum_Display2 = 16974532; // 0x10302c4
+    field public static final int TextAppearance_Quantum_Display3 = 16974531; // 0x10302c3
+    field public static final int TextAppearance_Quantum_Display4 = 16974530; // 0x10302c2
+    field public static final int TextAppearance_Quantum_Headline = 16974534; // 0x10302c6
+    field public static final int TextAppearance_Quantum_Inverse = 16974348; // 0x103020c
+    field public static final int TextAppearance_Quantum_Large = 16974349; // 0x103020d
+    field public static final int TextAppearance_Quantum_Large_Inverse = 16974350; // 0x103020e
+    field public static final int TextAppearance_Quantum_Medium = 16974351; // 0x103020f
+    field public static final int TextAppearance_Quantum_Medium_Inverse = 16974352; // 0x1030210
+    field public static final int TextAppearance_Quantum_Menu = 16974540; // 0x10302cc
+    field public static final int TextAppearance_Quantum_SearchResult_Subtitle = 16974353; // 0x1030211
+    field public static final int TextAppearance_Quantum_SearchResult_Title = 16974354; // 0x1030212
+    field public static final int TextAppearance_Quantum_Small = 16974355; // 0x1030213
+    field public static final int TextAppearance_Quantum_Small_Inverse = 16974356; // 0x1030214
+    field public static final int TextAppearance_Quantum_Subhead = 16974536; // 0x10302c8
+    field public static final int TextAppearance_Quantum_Title = 16974535; // 0x10302c7
+    field public static final int TextAppearance_Quantum_Widget = 16974358; // 0x1030216
+    field public static final int TextAppearance_Quantum_Widget_ActionBar_Menu = 16974359; // 0x1030217
+    field public static final int TextAppearance_Quantum_Widget_ActionBar_Subtitle = 16974360; // 0x1030218
+    field public static final int TextAppearance_Quantum_Widget_ActionBar_Subtitle_Inverse = 16974361; // 0x1030219
+    field public static final int TextAppearance_Quantum_Widget_ActionBar_Title = 16974362; // 0x103021a
+    field public static final int TextAppearance_Quantum_Widget_ActionBar_Title_Inverse = 16974363; // 0x103021b
+    field public static final int TextAppearance_Quantum_Widget_ActionMode_Subtitle = 16974364; // 0x103021c
+    field public static final int TextAppearance_Quantum_Widget_ActionMode_Subtitle_Inverse = 16974365; // 0x103021d
+    field public static final int TextAppearance_Quantum_Widget_ActionMode_Title = 16974366; // 0x103021e
+    field public static final int TextAppearance_Quantum_Widget_ActionMode_Title_Inverse = 16974367; // 0x103021f
+    field public static final int TextAppearance_Quantum_Widget_Button = 16974368; // 0x1030220
+    field public static final int TextAppearance_Quantum_Widget_DropDownHint = 16974369; // 0x1030221
+    field public static final int TextAppearance_Quantum_Widget_DropDownItem = 16974370; // 0x1030222
+    field public static final int TextAppearance_Quantum_Widget_EditText = 16974371; // 0x1030223
+    field public static final int TextAppearance_Quantum_Widget_IconMenu_Item = 16974372; // 0x1030224
+    field public static final int TextAppearance_Quantum_Widget_PopupMenu = 16974373; // 0x1030225
+    field public static final int TextAppearance_Quantum_Widget_PopupMenu_Large = 16974374; // 0x1030226
+    field public static final int TextAppearance_Quantum_Widget_PopupMenu_Small = 16974375; // 0x1030227
+    field public static final int TextAppearance_Quantum_Widget_TabWidget = 16974376; // 0x1030228
+    field public static final int TextAppearance_Quantum_Widget_TextView = 16974377; // 0x1030229
+    field public static final int TextAppearance_Quantum_Widget_TextView_PopupMenu = 16974378; // 0x103022a
+    field public static final int TextAppearance_Quantum_Widget_TextView_SpinnerItem = 16974379; // 0x103022b
+    field public static final int TextAppearance_Quantum_WindowTitle = 16974357; // 0x1030215
     field public static final int TextAppearance_Small = 16973894; // 0x1030046
     field public static final int TextAppearance_Small_Inverse = 16973895; // 0x1030047
     field public static final int TextAppearance_StatusBar_EventContent = 16973927; // 0x1030067
@@ -1866,34 +1976,34 @@
     field public static final int Theme_NoTitleBar_Fullscreen = 16973831; // 0x1030007
     field public static final int Theme_NoTitleBar_OverlayActionModes = 16973930; // 0x103006a
     field public static final int Theme_Panel = 16973913; // 0x1030059
-    field public static final int Theme_Quantum = 16974348; // 0x103020c
-    field public static final int Theme_Quantum_Dialog = 16974349; // 0x103020d
-    field public static final int Theme_Quantum_DialogWhenLarge = 16974353; // 0x1030211
-    field public static final int Theme_Quantum_DialogWhenLarge_NoActionBar = 16974354; // 0x1030212
-    field public static final int Theme_Quantum_Dialog_MinWidth = 16974350; // 0x103020e
-    field public static final int Theme_Quantum_Dialog_NoActionBar = 16974351; // 0x103020f
-    field public static final int Theme_Quantum_Dialog_NoActionBar_MinWidth = 16974352; // 0x1030210
-    field public static final int Theme_Quantum_InputMethod = 16974355; // 0x1030213
-    field public static final int Theme_Quantum_Light = 16974363; // 0x103021b
-    field public static final int Theme_Quantum_Light_DarkActionBar = 16974364; // 0x103021c
-    field public static final int Theme_Quantum_Light_Dialog = 16974365; // 0x103021d
-    field public static final int Theme_Quantum_Light_DialogWhenLarge = 16974369; // 0x1030221
-    field public static final int Theme_Quantum_Light_DialogWhenLarge_NoActionBar = 16974370; // 0x1030222
-    field public static final int Theme_Quantum_Light_Dialog_MinWidth = 16974366; // 0x103021e
-    field public static final int Theme_Quantum_Light_Dialog_NoActionBar = 16974367; // 0x103021f
-    field public static final int Theme_Quantum_Light_Dialog_NoActionBar_MinWidth = 16974368; // 0x1030220
-    field public static final int Theme_Quantum_Light_NoActionBar = 16974371; // 0x1030223
-    field public static final int Theme_Quantum_Light_NoActionBar_Fullscreen = 16974372; // 0x1030224
-    field public static final int Theme_Quantum_Light_NoActionBar_Overscan = 16974373; // 0x1030225
-    field public static final int Theme_Quantum_Light_NoActionBar_TranslucentDecor = 16974374; // 0x1030226
-    field public static final int Theme_Quantum_Light_Panel = 16974375; // 0x1030227
-    field public static final int Theme_Quantum_NoActionBar = 16974356; // 0x1030214
-    field public static final int Theme_Quantum_NoActionBar_Fullscreen = 16974357; // 0x1030215
-    field public static final int Theme_Quantum_NoActionBar_Overscan = 16974358; // 0x1030216
-    field public static final int Theme_Quantum_NoActionBar_TranslucentDecor = 16974359; // 0x1030217
-    field public static final int Theme_Quantum_Panel = 16974360; // 0x1030218
-    field public static final int Theme_Quantum_Wallpaper = 16974361; // 0x1030219
-    field public static final int Theme_Quantum_Wallpaper_NoTitleBar = 16974362; // 0x103021a
+    field public static final int Theme_Quantum = 16974380; // 0x103022c
+    field public static final int Theme_Quantum_Dialog = 16974381; // 0x103022d
+    field public static final int Theme_Quantum_DialogWhenLarge = 16974385; // 0x1030231
+    field public static final int Theme_Quantum_DialogWhenLarge_NoActionBar = 16974386; // 0x1030232
+    field public static final int Theme_Quantum_Dialog_MinWidth = 16974382; // 0x103022e
+    field public static final int Theme_Quantum_Dialog_NoActionBar = 16974383; // 0x103022f
+    field public static final int Theme_Quantum_Dialog_NoActionBar_MinWidth = 16974384; // 0x1030230
+    field public static final int Theme_Quantum_InputMethod = 16974387; // 0x1030233
+    field public static final int Theme_Quantum_Light = 16974395; // 0x103023b
+    field public static final int Theme_Quantum_Light_DarkActionBar = 16974396; // 0x103023c
+    field public static final int Theme_Quantum_Light_Dialog = 16974397; // 0x103023d
+    field public static final int Theme_Quantum_Light_DialogWhenLarge = 16974401; // 0x1030241
+    field public static final int Theme_Quantum_Light_DialogWhenLarge_NoActionBar = 16974402; // 0x1030242
+    field public static final int Theme_Quantum_Light_Dialog_MinWidth = 16974398; // 0x103023e
+    field public static final int Theme_Quantum_Light_Dialog_NoActionBar = 16974399; // 0x103023f
+    field public static final int Theme_Quantum_Light_Dialog_NoActionBar_MinWidth = 16974400; // 0x1030240
+    field public static final int Theme_Quantum_Light_NoActionBar = 16974403; // 0x1030243
+    field public static final int Theme_Quantum_Light_NoActionBar_Fullscreen = 16974404; // 0x1030244
+    field public static final int Theme_Quantum_Light_NoActionBar_Overscan = 16974405; // 0x1030245
+    field public static final int Theme_Quantum_Light_NoActionBar_TranslucentDecor = 16974406; // 0x1030246
+    field public static final int Theme_Quantum_Light_Panel = 16974407; // 0x1030247
+    field public static final int Theme_Quantum_NoActionBar = 16974388; // 0x1030234
+    field public static final int Theme_Quantum_NoActionBar_Fullscreen = 16974389; // 0x1030235
+    field public static final int Theme_Quantum_NoActionBar_Overscan = 16974390; // 0x1030236
+    field public static final int Theme_Quantum_NoActionBar_TranslucentDecor = 16974391; // 0x1030237
+    field public static final int Theme_Quantum_Panel = 16974392; // 0x1030238
+    field public static final int Theme_Quantum_Wallpaper = 16974393; // 0x1030239
+    field public static final int Theme_Quantum_Wallpaper_NoTitleBar = 16974394; // 0x103023a
     field public static final int Theme_Translucent = 16973839; // 0x103000f
     field public static final int Theme_Translucent_NoTitleBar = 16973840; // 0x1030010
     field public static final int Theme_Translucent_NoTitleBar_Fullscreen = 16973841; // 0x1030011
@@ -1950,26 +2060,26 @@
     field public static final int Widget_DeviceDefault_DropDownItem_Spinner = 16974178; // 0x1030162
     field public static final int Widget_DeviceDefault_EditText = 16974154; // 0x103014a
     field public static final int Widget_DeviceDefault_ExpandableListView = 16974155; // 0x103014b
-    field public static final int Widget_DeviceDefault_FastScroll = 16974316; // 0x10301ec
-    field public static final int Widget_DeviceDefault_FragmentBreadCrumbs = 16974311; // 0x10301e7
+    field public static final int Widget_DeviceDefault_FastScroll = 16974344; // 0x1030208
+    field public static final int Widget_DeviceDefault_FragmentBreadCrumbs = 16974339; // 0x1030203
     field public static final int Widget_DeviceDefault_GridView = 16974156; // 0x103014c
     field public static final int Widget_DeviceDefault_HorizontalScrollView = 16974171; // 0x103015b
     field public static final int Widget_DeviceDefault_ImageButton = 16974157; // 0x103014d
     field public static final int Widget_DeviceDefault_Light = 16974196; // 0x1030174
     field public static final int Widget_DeviceDefault_Light_ActionBar = 16974243; // 0x10301a3
     field public static final int Widget_DeviceDefault_Light_ActionBar_Solid = 16974247; // 0x10301a7
-    field public static final int Widget_DeviceDefault_Light_ActionBar_Solid_Inverse = 16974248; // 0x10301a8
+    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_Solid_Inverse = 16974248; // 0x10301a8
     field public static final int Widget_DeviceDefault_Light_ActionBar_TabBar = 16974246; // 0x10301a6
-    field public static final int Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse = 16974249; // 0x10301a9
+    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse = 16974249; // 0x10301a9
     field public static final int Widget_DeviceDefault_Light_ActionBar_TabText = 16974245; // 0x10301a5
-    field public static final int Widget_DeviceDefault_Light_ActionBar_TabText_Inverse = 16974251; // 0x10301ab
+    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_TabText_Inverse = 16974251; // 0x10301ab
     field public static final int Widget_DeviceDefault_Light_ActionBar_TabView = 16974244; // 0x10301a4
-    field public static final int Widget_DeviceDefault_Light_ActionBar_TabView_Inverse = 16974250; // 0x10301aa
+    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_TabView_Inverse = 16974250; // 0x10301aa
     field public static final int Widget_DeviceDefault_Light_ActionButton = 16974239; // 0x103019f
     field public static final int Widget_DeviceDefault_Light_ActionButton_CloseMode = 16974242; // 0x10301a2
     field public static final int Widget_DeviceDefault_Light_ActionButton_Overflow = 16974240; // 0x10301a0
     field public static final int Widget_DeviceDefault_Light_ActionMode = 16974241; // 0x10301a1
-    field public static final int Widget_DeviceDefault_Light_ActionMode_Inverse = 16974252; // 0x10301ac
+    field public static final deprecated int Widget_DeviceDefault_Light_ActionMode_Inverse = 16974252; // 0x10301ac
     field public static final int Widget_DeviceDefault_Light_AutoCompleteTextView = 16974203; // 0x103017b
     field public static final int Widget_DeviceDefault_Light_Button = 16974197; // 0x1030175
     field public static final int Widget_DeviceDefault_Light_Button_Borderless_Small = 16974201; // 0x1030179
@@ -1985,8 +2095,8 @@
     field public static final int Widget_DeviceDefault_Light_DropDownItem_Spinner = 16974233; // 0x1030199
     field public static final int Widget_DeviceDefault_Light_EditText = 16974206; // 0x103017e
     field public static final int Widget_DeviceDefault_Light_ExpandableListView = 16974207; // 0x103017f
-    field public static final int Widget_DeviceDefault_Light_FastScroll = 16974317; // 0x10301ed
-    field public static final int Widget_DeviceDefault_Light_FragmentBreadCrumbs = 16974312; // 0x10301e8
+    field public static final int Widget_DeviceDefault_Light_FastScroll = 16974345; // 0x1030209
+    field public static final int Widget_DeviceDefault_Light_FragmentBreadCrumbs = 16974340; // 0x1030204
     field public static final int Widget_DeviceDefault_Light_GridView = 16974208; // 0x1030180
     field public static final int Widget_DeviceDefault_Light_HorizontalScrollView = 16974226; // 0x1030192
     field public static final int Widget_DeviceDefault_Light_ImageButton = 16974209; // 0x1030181
@@ -2043,7 +2153,7 @@
     field public static final int Widget_DropDownItem_Spinner = 16973868; // 0x103002c
     field public static final int Widget_EditText = 16973859; // 0x1030023
     field public static final int Widget_ExpandableListView = 16973860; // 0x1030024
-    field public static final int Widget_FastScroll = 16974313; // 0x10301e9
+    field public static final int Widget_FastScroll = 16974341; // 0x1030205
     field public static final int Widget_FragmentBreadCrumbs = 16973961; // 0x1030089
     field public static final int Widget_Gallery = 16973877; // 0x1030035
     field public static final int Widget_GridView = 16973874; // 0x1030032
@@ -2075,8 +2185,8 @@
     field public static final int Widget_Holo_DropDownItem_Spinner = 16973995; // 0x10300ab
     field public static final int Widget_Holo_EditText = 16973971; // 0x1030093
     field public static final int Widget_Holo_ExpandableListView = 16973972; // 0x1030094
-    field public static final int Widget_Holo_FastScroll = 16974314; // 0x10301ea
-    field public static final int Widget_Holo_FragmentBreadCrumbs = 16974309; // 0x10301e5
+    field public static final int Widget_Holo_FastScroll = 16974342; // 0x1030206
+    field public static final int Widget_Holo_FragmentBreadCrumbs = 16974337; // 0x1030201
     field public static final int Widget_Holo_GridView = 16973973; // 0x1030095
     field public static final int Widget_Holo_HorizontalScrollView = 16973988; // 0x10300a4
     field public static final int Widget_Holo_ImageButton = 16973974; // 0x1030096
@@ -2097,6 +2207,7 @@
     field public static final int Widget_Holo_Light_ActionMode_Inverse = 16974119; // 0x1030127
     field public static final int Widget_Holo_Light_AutoCompleteTextView = 16974011; // 0x10300bb
     field public static final int Widget_Holo_Light_Button = 16974006; // 0x10300b6
+    field public static final int Widget_Holo_Light_Button_Borderless = 16974542; // 0x10302ce
     field public static final int Widget_Holo_Light_Button_Borderless_Small = 16974107; // 0x103011b
     field public static final int Widget_Holo_Light_Button_Inset = 16974008; // 0x10300b8
     field public static final int Widget_Holo_Light_Button_Small = 16974007; // 0x10300b7
@@ -2110,8 +2221,8 @@
     field public static final int Widget_Holo_Light_DropDownItem_Spinner = 16974041; // 0x10300d9
     field public static final int Widget_Holo_Light_EditText = 16974014; // 0x10300be
     field public static final int Widget_Holo_Light_ExpandableListView = 16974015; // 0x10300bf
-    field public static final int Widget_Holo_Light_FastScroll = 16974315; // 0x10301eb
-    field public static final int Widget_Holo_Light_FragmentBreadCrumbs = 16974310; // 0x10301e6
+    field public static final int Widget_Holo_Light_FastScroll = 16974343; // 0x1030207
+    field public static final int Widget_Holo_Light_FragmentBreadCrumbs = 16974338; // 0x1030202
     field public static final int Widget_Holo_Light_GridView = 16974016; // 0x10300c0
     field public static final int Widget_Holo_Light_HorizontalScrollView = 16974034; // 0x10300d2
     field public static final int Widget_Holo_Light_ImageButton = 16974017; // 0x10300c1
@@ -2181,128 +2292,128 @@
     field public static final int Widget_ProgressBar_Large_Inverse = 16973916; // 0x103005c
     field public static final int Widget_ProgressBar_Small = 16973854; // 0x103001e
     field public static final int Widget_ProgressBar_Small_Inverse = 16973917; // 0x103005d
-    field public static final int Widget_Quantum = 16974376; // 0x1030228
-    field public static final int Widget_Quantum_ActionBar = 16974377; // 0x1030229
-    field public static final int Widget_Quantum_ActionBar_Solid = 16974378; // 0x103022a
-    field public static final int Widget_Quantum_ActionBar_TabBar = 16974379; // 0x103022b
-    field public static final int Widget_Quantum_ActionBar_TabText = 16974380; // 0x103022c
-    field public static final int Widget_Quantum_ActionBar_TabView = 16974381; // 0x103022d
-    field public static final int Widget_Quantum_ActionButton = 16974382; // 0x103022e
-    field public static final int Widget_Quantum_ActionButton_CloseMode = 16974383; // 0x103022f
-    field public static final int Widget_Quantum_ActionButton_Overflow = 16974384; // 0x1030230
-    field public static final int Widget_Quantum_ActionButton_TextButton = 16974385; // 0x1030231
-    field public static final int Widget_Quantum_ActionMode = 16974386; // 0x1030232
-    field public static final int Widget_Quantum_AutoCompleteTextView = 16974387; // 0x1030233
-    field public static final int Widget_Quantum_Button = 16974388; // 0x1030234
-    field public static final int Widget_Quantum_ButtonBar = 16974394; // 0x103023a
-    field public static final int Widget_Quantum_ButtonBar_AlertDialog = 16974395; // 0x103023b
-    field public static final int Widget_Quantum_Button_Borderless = 16974389; // 0x1030235
-    field public static final int Widget_Quantum_Button_Borderless_Small = 16974390; // 0x1030236
-    field public static final int Widget_Quantum_Button_Inset = 16974391; // 0x1030237
-    field public static final int Widget_Quantum_Button_Paper = 16974494; // 0x103029e
-    field public static final int Widget_Quantum_Button_Paper_Color = 16974495; // 0x103029f
-    field public static final int Widget_Quantum_Button_Small = 16974392; // 0x1030238
-    field public static final int Widget_Quantum_Button_Toggle = 16974393; // 0x1030239
-    field public static final int Widget_Quantum_CalendarView = 16974396; // 0x103023c
-    field public static final int Widget_Quantum_CheckedTextView = 16974397; // 0x103023d
-    field public static final int Widget_Quantum_CompoundButton_CheckBox = 16974398; // 0x103023e
-    field public static final int Widget_Quantum_CompoundButton_RadioButton = 16974399; // 0x103023f
-    field public static final int Widget_Quantum_CompoundButton_Star = 16974400; // 0x1030240
-    field public static final int Widget_Quantum_DatePicker = 16974401; // 0x1030241
-    field public static final int Widget_Quantum_DropDownItem = 16974402; // 0x1030242
-    field public static final int Widget_Quantum_DropDownItem_Spinner = 16974403; // 0x1030243
-    field public static final int Widget_Quantum_EditText = 16974404; // 0x1030244
-    field public static final int Widget_Quantum_ExpandableListView = 16974405; // 0x1030245
-    field public static final int Widget_Quantum_FastScroll = 16974406; // 0x1030246
-    field public static final int Widget_Quantum_FragmentBreadCrumbs = 16974407; // 0x1030247
-    field public static final int Widget_Quantum_GridView = 16974408; // 0x1030248
-    field public static final int Widget_Quantum_HorizontalScrollView = 16974409; // 0x1030249
-    field public static final int Widget_Quantum_ImageButton = 16974410; // 0x103024a
-    field public static final int Widget_Quantum_Light = 16974435; // 0x1030263
-    field public static final int Widget_Quantum_Light_ActionBar = 16974436; // 0x1030264
-    field public static final int Widget_Quantum_Light_ActionBar_Solid = 16974437; // 0x1030265
-    field public static final int Widget_Quantum_Light_ActionBar_TabBar = 16974438; // 0x1030266
-    field public static final int Widget_Quantum_Light_ActionBar_TabText = 16974439; // 0x1030267
-    field public static final int Widget_Quantum_Light_ActionBar_TabView = 16974440; // 0x1030268
-    field public static final int Widget_Quantum_Light_ActionButton = 16974441; // 0x1030269
-    field public static final int Widget_Quantum_Light_ActionButton_CloseMode = 16974442; // 0x103026a
-    field public static final int Widget_Quantum_Light_ActionButton_Overflow = 16974443; // 0x103026b
-    field public static final int Widget_Quantum_Light_ActionMode = 16974444; // 0x103026c
-    field public static final int Widget_Quantum_Light_AutoCompleteTextView = 16974445; // 0x103026d
-    field public static final int Widget_Quantum_Light_Button = 16974446; // 0x103026e
-    field public static final int Widget_Quantum_Light_ButtonBar = 16974451; // 0x1030273
-    field public static final int Widget_Quantum_Light_ButtonBar_AlertDialog = 16974452; // 0x1030274
-    field public static final int Widget_Quantum_Light_Button_Borderless_Small = 16974447; // 0x103026f
-    field public static final int Widget_Quantum_Light_Button_Inset = 16974448; // 0x1030270
-    field public static final int Widget_Quantum_Light_Button_Paper = 16974496; // 0x10302a0
-    field public static final int Widget_Quantum_Light_Button_Paper_Color = 16974497; // 0x10302a1
-    field public static final int Widget_Quantum_Light_Button_Small = 16974449; // 0x1030271
-    field public static final int Widget_Quantum_Light_Button_Toggle = 16974450; // 0x1030272
-    field public static final int Widget_Quantum_Light_CalendarView = 16974453; // 0x1030275
-    field public static final int Widget_Quantum_Light_CheckedTextView = 16974454; // 0x1030276
-    field public static final int Widget_Quantum_Light_CompoundButton_CheckBox = 16974455; // 0x1030277
-    field public static final int Widget_Quantum_Light_CompoundButton_RadioButton = 16974456; // 0x1030278
-    field public static final int Widget_Quantum_Light_CompoundButton_Star = 16974457; // 0x1030279
-    field public static final int Widget_Quantum_Light_DropDownItem = 16974458; // 0x103027a
-    field public static final int Widget_Quantum_Light_DropDownItem_Spinner = 16974459; // 0x103027b
-    field public static final int Widget_Quantum_Light_EditText = 16974460; // 0x103027c
-    field public static final int Widget_Quantum_Light_ExpandableListView = 16974461; // 0x103027d
-    field public static final int Widget_Quantum_Light_FastScroll = 16974462; // 0x103027e
-    field public static final int Widget_Quantum_Light_FragmentBreadCrumbs = 16974463; // 0x103027f
-    field public static final int Widget_Quantum_Light_GridView = 16974464; // 0x1030280
-    field public static final int Widget_Quantum_Light_HorizontalScrollView = 16974465; // 0x1030281
-    field public static final int Widget_Quantum_Light_ImageButton = 16974466; // 0x1030282
-    field public static final int Widget_Quantum_Light_ListPopupWindow = 16974467; // 0x1030283
-    field public static final int Widget_Quantum_Light_ListView = 16974468; // 0x1030284
-    field public static final int Widget_Quantum_Light_ListView_DropDown = 16974469; // 0x1030285
-    field public static final int Widget_Quantum_Light_MediaRouteButton = 16974470; // 0x1030286
-    field public static final int Widget_Quantum_Light_PopupMenu = 16974471; // 0x1030287
-    field public static final int Widget_Quantum_Light_PopupWindow = 16974472; // 0x1030288
-    field public static final int Widget_Quantum_Light_ProgressBar = 16974473; // 0x1030289
-    field public static final int Widget_Quantum_Light_ProgressBar_Horizontal = 16974474; // 0x103028a
-    field public static final int Widget_Quantum_Light_ProgressBar_Inverse = 16974475; // 0x103028b
-    field public static final int Widget_Quantum_Light_ProgressBar_Large = 16974476; // 0x103028c
-    field public static final int Widget_Quantum_Light_ProgressBar_Large_Inverse = 16974477; // 0x103028d
-    field public static final int Widget_Quantum_Light_ProgressBar_Small = 16974478; // 0x103028e
-    field public static final int Widget_Quantum_Light_ProgressBar_Small_Inverse = 16974479; // 0x103028f
-    field public static final int Widget_Quantum_Light_ProgressBar_Small_Title = 16974480; // 0x1030290
-    field public static final int Widget_Quantum_Light_RatingBar = 16974481; // 0x1030291
-    field public static final int Widget_Quantum_Light_RatingBar_Indicator = 16974482; // 0x1030292
-    field public static final int Widget_Quantum_Light_RatingBar_Small = 16974483; // 0x1030293
-    field public static final int Widget_Quantum_Light_ScrollView = 16974484; // 0x1030294
-    field public static final int Widget_Quantum_Light_SeekBar = 16974485; // 0x1030295
-    field public static final int Widget_Quantum_Light_SegmentedButton = 16974486; // 0x1030296
-    field public static final int Widget_Quantum_Light_Spinner = 16974487; // 0x1030297
-    field public static final int Widget_Quantum_Light_Tab = 16974488; // 0x1030298
-    field public static final int Widget_Quantum_Light_TabWidget = 16974489; // 0x1030299
-    field public static final int Widget_Quantum_Light_TextView = 16974490; // 0x103029a
-    field public static final int Widget_Quantum_Light_TextView_SpinnerItem = 16974491; // 0x103029b
-    field public static final int Widget_Quantum_Light_WebTextView = 16974492; // 0x103029c
-    field public static final int Widget_Quantum_Light_WebView = 16974493; // 0x103029d
-    field public static final int Widget_Quantum_ListPopupWindow = 16974411; // 0x103024b
-    field public static final int Widget_Quantum_ListView = 16974412; // 0x103024c
-    field public static final int Widget_Quantum_ListView_DropDown = 16974413; // 0x103024d
-    field public static final int Widget_Quantum_MediaRouteButton = 16974414; // 0x103024e
-    field public static final int Widget_Quantum_PopupMenu = 16974415; // 0x103024f
-    field public static final int Widget_Quantum_PopupWindow = 16974416; // 0x1030250
-    field public static final int Widget_Quantum_ProgressBar = 16974417; // 0x1030251
-    field public static final int Widget_Quantum_ProgressBar_Horizontal = 16974418; // 0x1030252
-    field public static final int Widget_Quantum_ProgressBar_Large = 16974419; // 0x1030253
-    field public static final int Widget_Quantum_ProgressBar_Small = 16974420; // 0x1030254
-    field public static final int Widget_Quantum_ProgressBar_Small_Title = 16974421; // 0x1030255
-    field public static final int Widget_Quantum_RatingBar = 16974422; // 0x1030256
-    field public static final int Widget_Quantum_RatingBar_Indicator = 16974423; // 0x1030257
-    field public static final int Widget_Quantum_RatingBar_Small = 16974424; // 0x1030258
-    field public static final int Widget_Quantum_ScrollView = 16974425; // 0x1030259
-    field public static final int Widget_Quantum_SeekBar = 16974426; // 0x103025a
-    field public static final int Widget_Quantum_SegmentedButton = 16974427; // 0x103025b
-    field public static final int Widget_Quantum_Spinner = 16974428; // 0x103025c
-    field public static final int Widget_Quantum_Tab = 16974429; // 0x103025d
-    field public static final int Widget_Quantum_TabWidget = 16974430; // 0x103025e
-    field public static final int Widget_Quantum_TextView = 16974431; // 0x103025f
-    field public static final int Widget_Quantum_TextView_SpinnerItem = 16974432; // 0x1030260
-    field public static final int Widget_Quantum_WebTextView = 16974433; // 0x1030261
-    field public static final int Widget_Quantum_WebView = 16974434; // 0x1030262
+    field public static final int Widget_Quantum = 16974408; // 0x1030248
+    field public static final int Widget_Quantum_ActionBar = 16974409; // 0x1030249
+    field public static final int Widget_Quantum_ActionBar_Solid = 16974410; // 0x103024a
+    field public static final int Widget_Quantum_ActionBar_TabBar = 16974411; // 0x103024b
+    field public static final int Widget_Quantum_ActionBar_TabText = 16974412; // 0x103024c
+    field public static final int Widget_Quantum_ActionBar_TabView = 16974413; // 0x103024d
+    field public static final int Widget_Quantum_ActionButton = 16974414; // 0x103024e
+    field public static final int Widget_Quantum_ActionButton_CloseMode = 16974415; // 0x103024f
+    field public static final int Widget_Quantum_ActionButton_Overflow = 16974416; // 0x1030250
+    field public static final int Widget_Quantum_ActionButton_TextButton = 16974417; // 0x1030251
+    field public static final int Widget_Quantum_ActionMode = 16974418; // 0x1030252
+    field public static final int Widget_Quantum_AutoCompleteTextView = 16974419; // 0x1030253
+    field public static final int Widget_Quantum_Button = 16974420; // 0x1030254
+    field public static final int Widget_Quantum_ButtonBar = 16974426; // 0x103025a
+    field public static final int Widget_Quantum_ButtonBar_AlertDialog = 16974427; // 0x103025b
+    field public static final int Widget_Quantum_Button_Borderless = 16974421; // 0x1030255
+    field public static final int Widget_Quantum_Button_Borderless_Small = 16974422; // 0x1030256
+    field public static final int Widget_Quantum_Button_Inset = 16974423; // 0x1030257
+    field public static final int Widget_Quantum_Button_Paper = 16974526; // 0x10302be
+    field public static final int Widget_Quantum_Button_Paper_Color = 16974527; // 0x10302bf
+    field public static final int Widget_Quantum_Button_Small = 16974424; // 0x1030258
+    field public static final int Widget_Quantum_Button_Toggle = 16974425; // 0x1030259
+    field public static final int Widget_Quantum_CalendarView = 16974428; // 0x103025c
+    field public static final int Widget_Quantum_CheckedTextView = 16974429; // 0x103025d
+    field public static final int Widget_Quantum_CompoundButton_CheckBox = 16974430; // 0x103025e
+    field public static final int Widget_Quantum_CompoundButton_RadioButton = 16974431; // 0x103025f
+    field public static final int Widget_Quantum_CompoundButton_Star = 16974432; // 0x1030260
+    field public static final int Widget_Quantum_DatePicker = 16974433; // 0x1030261
+    field public static final int Widget_Quantum_DropDownItem = 16974434; // 0x1030262
+    field public static final int Widget_Quantum_DropDownItem_Spinner = 16974435; // 0x1030263
+    field public static final int Widget_Quantum_EditText = 16974436; // 0x1030264
+    field public static final int Widget_Quantum_ExpandableListView = 16974437; // 0x1030265
+    field public static final int Widget_Quantum_FastScroll = 16974438; // 0x1030266
+    field public static final int Widget_Quantum_FragmentBreadCrumbs = 16974439; // 0x1030267
+    field public static final int Widget_Quantum_GridView = 16974440; // 0x1030268
+    field public static final int Widget_Quantum_HorizontalScrollView = 16974441; // 0x1030269
+    field public static final int Widget_Quantum_ImageButton = 16974442; // 0x103026a
+    field public static final int Widget_Quantum_Light = 16974467; // 0x1030283
+    field public static final int Widget_Quantum_Light_ActionBar = 16974468; // 0x1030284
+    field public static final int Widget_Quantum_Light_ActionBar_Solid = 16974469; // 0x1030285
+    field public static final int Widget_Quantum_Light_ActionBar_TabBar = 16974470; // 0x1030286
+    field public static final int Widget_Quantum_Light_ActionBar_TabText = 16974471; // 0x1030287
+    field public static final int Widget_Quantum_Light_ActionBar_TabView = 16974472; // 0x1030288
+    field public static final int Widget_Quantum_Light_ActionButton = 16974473; // 0x1030289
+    field public static final int Widget_Quantum_Light_ActionButton_CloseMode = 16974474; // 0x103028a
+    field public static final int Widget_Quantum_Light_ActionButton_Overflow = 16974475; // 0x103028b
+    field public static final int Widget_Quantum_Light_ActionMode = 16974476; // 0x103028c
+    field public static final int Widget_Quantum_Light_AutoCompleteTextView = 16974477; // 0x103028d
+    field public static final int Widget_Quantum_Light_Button = 16974478; // 0x103028e
+    field public static final int Widget_Quantum_Light_ButtonBar = 16974483; // 0x1030293
+    field public static final int Widget_Quantum_Light_ButtonBar_AlertDialog = 16974484; // 0x1030294
+    field public static final int Widget_Quantum_Light_Button_Borderless_Small = 16974479; // 0x103028f
+    field public static final int Widget_Quantum_Light_Button_Inset = 16974480; // 0x1030290
+    field public static final int Widget_Quantum_Light_Button_Paper = 16974528; // 0x10302c0
+    field public static final int Widget_Quantum_Light_Button_Paper_Color = 16974529; // 0x10302c1
+    field public static final int Widget_Quantum_Light_Button_Small = 16974481; // 0x1030291
+    field public static final int Widget_Quantum_Light_Button_Toggle = 16974482; // 0x1030292
+    field public static final int Widget_Quantum_Light_CalendarView = 16974485; // 0x1030295
+    field public static final int Widget_Quantum_Light_CheckedTextView = 16974486; // 0x1030296
+    field public static final int Widget_Quantum_Light_CompoundButton_CheckBox = 16974487; // 0x1030297
+    field public static final int Widget_Quantum_Light_CompoundButton_RadioButton = 16974488; // 0x1030298
+    field public static final int Widget_Quantum_Light_CompoundButton_Star = 16974489; // 0x1030299
+    field public static final int Widget_Quantum_Light_DropDownItem = 16974490; // 0x103029a
+    field public static final int Widget_Quantum_Light_DropDownItem_Spinner = 16974491; // 0x103029b
+    field public static final int Widget_Quantum_Light_EditText = 16974492; // 0x103029c
+    field public static final int Widget_Quantum_Light_ExpandableListView = 16974493; // 0x103029d
+    field public static final int Widget_Quantum_Light_FastScroll = 16974494; // 0x103029e
+    field public static final int Widget_Quantum_Light_FragmentBreadCrumbs = 16974495; // 0x103029f
+    field public static final int Widget_Quantum_Light_GridView = 16974496; // 0x10302a0
+    field public static final int Widget_Quantum_Light_HorizontalScrollView = 16974497; // 0x10302a1
+    field public static final int Widget_Quantum_Light_ImageButton = 16974498; // 0x10302a2
+    field public static final int Widget_Quantum_Light_ListPopupWindow = 16974499; // 0x10302a3
+    field public static final int Widget_Quantum_Light_ListView = 16974500; // 0x10302a4
+    field public static final int Widget_Quantum_Light_ListView_DropDown = 16974501; // 0x10302a5
+    field public static final int Widget_Quantum_Light_MediaRouteButton = 16974502; // 0x10302a6
+    field public static final int Widget_Quantum_Light_PopupMenu = 16974503; // 0x10302a7
+    field public static final int Widget_Quantum_Light_PopupWindow = 16974504; // 0x10302a8
+    field public static final int Widget_Quantum_Light_ProgressBar = 16974505; // 0x10302a9
+    field public static final int Widget_Quantum_Light_ProgressBar_Horizontal = 16974506; // 0x10302aa
+    field public static final int Widget_Quantum_Light_ProgressBar_Inverse = 16974507; // 0x10302ab
+    field public static final int Widget_Quantum_Light_ProgressBar_Large = 16974508; // 0x10302ac
+    field public static final int Widget_Quantum_Light_ProgressBar_Large_Inverse = 16974509; // 0x10302ad
+    field public static final int Widget_Quantum_Light_ProgressBar_Small = 16974510; // 0x10302ae
+    field public static final int Widget_Quantum_Light_ProgressBar_Small_Inverse = 16974511; // 0x10302af
+    field public static final int Widget_Quantum_Light_ProgressBar_Small_Title = 16974512; // 0x10302b0
+    field public static final int Widget_Quantum_Light_RatingBar = 16974513; // 0x10302b1
+    field public static final int Widget_Quantum_Light_RatingBar_Indicator = 16974514; // 0x10302b2
+    field public static final int Widget_Quantum_Light_RatingBar_Small = 16974515; // 0x10302b3
+    field public static final int Widget_Quantum_Light_ScrollView = 16974516; // 0x10302b4
+    field public static final int Widget_Quantum_Light_SeekBar = 16974517; // 0x10302b5
+    field public static final int Widget_Quantum_Light_SegmentedButton = 16974518; // 0x10302b6
+    field public static final int Widget_Quantum_Light_Spinner = 16974519; // 0x10302b7
+    field public static final int Widget_Quantum_Light_Tab = 16974520; // 0x10302b8
+    field public static final int Widget_Quantum_Light_TabWidget = 16974521; // 0x10302b9
+    field public static final int Widget_Quantum_Light_TextView = 16974522; // 0x10302ba
+    field public static final int Widget_Quantum_Light_TextView_SpinnerItem = 16974523; // 0x10302bb
+    field public static final int Widget_Quantum_Light_WebTextView = 16974524; // 0x10302bc
+    field public static final int Widget_Quantum_Light_WebView = 16974525; // 0x10302bd
+    field public static final int Widget_Quantum_ListPopupWindow = 16974443; // 0x103026b
+    field public static final int Widget_Quantum_ListView = 16974444; // 0x103026c
+    field public static final int Widget_Quantum_ListView_DropDown = 16974445; // 0x103026d
+    field public static final int Widget_Quantum_MediaRouteButton = 16974446; // 0x103026e
+    field public static final int Widget_Quantum_PopupMenu = 16974447; // 0x103026f
+    field public static final int Widget_Quantum_PopupWindow = 16974448; // 0x1030270
+    field public static final int Widget_Quantum_ProgressBar = 16974449; // 0x1030271
+    field public static final int Widget_Quantum_ProgressBar_Horizontal = 16974450; // 0x1030272
+    field public static final int Widget_Quantum_ProgressBar_Large = 16974451; // 0x1030273
+    field public static final int Widget_Quantum_ProgressBar_Small = 16974452; // 0x1030274
+    field public static final int Widget_Quantum_ProgressBar_Small_Title = 16974453; // 0x1030275
+    field public static final int Widget_Quantum_RatingBar = 16974454; // 0x1030276
+    field public static final int Widget_Quantum_RatingBar_Indicator = 16974455; // 0x1030277
+    field public static final int Widget_Quantum_RatingBar_Small = 16974456; // 0x1030278
+    field public static final int Widget_Quantum_ScrollView = 16974457; // 0x1030279
+    field public static final int Widget_Quantum_SeekBar = 16974458; // 0x103027a
+    field public static final int Widget_Quantum_SegmentedButton = 16974459; // 0x103027b
+    field public static final int Widget_Quantum_Spinner = 16974460; // 0x103027c
+    field public static final int Widget_Quantum_Tab = 16974461; // 0x103027d
+    field public static final int Widget_Quantum_TabWidget = 16974462; // 0x103027e
+    field public static final int Widget_Quantum_TextView = 16974463; // 0x103027f
+    field public static final int Widget_Quantum_TextView_SpinnerItem = 16974464; // 0x1030280
+    field public static final int Widget_Quantum_WebTextView = 16974465; // 0x1030281
+    field public static final int Widget_Quantum_WebView = 16974466; // 0x1030282
     field public static final int Widget_RatingBar = 16973857; // 0x1030021
     field public static final int Widget_ScrollView = 16973869; // 0x103002d
     field public static final int Widget_SeekBar = 16973856; // 0x1030020
@@ -2313,6 +2424,34 @@
     field public static final int Widget_TextView_PopupMenu = 16973865; // 0x1030029
     field public static final int Widget_TextView_SpinnerItem = 16973866; // 0x103002a
     field public static final int Widget_WebView = 16973875; // 0x1030033
+    field public static final int l_resource_pad1 = 16974336; // 0x1030200
+    field public static final int l_resource_pad10 = 16974327; // 0x10301f7
+    field public static final int l_resource_pad11 = 16974326; // 0x10301f6
+    field public static final int l_resource_pad12 = 16974325; // 0x10301f5
+    field public static final int l_resource_pad13 = 16974324; // 0x10301f4
+    field public static final int l_resource_pad14 = 16974323; // 0x10301f3
+    field public static final int l_resource_pad15 = 16974322; // 0x10301f2
+    field public static final int l_resource_pad16 = 16974321; // 0x10301f1
+    field public static final int l_resource_pad17 = 16974320; // 0x10301f0
+    field public static final int l_resource_pad18 = 16974319; // 0x10301ef
+    field public static final int l_resource_pad19 = 16974318; // 0x10301ee
+    field public static final int l_resource_pad2 = 16974335; // 0x10301ff
+    field public static final int l_resource_pad20 = 16974317; // 0x10301ed
+    field public static final int l_resource_pad21 = 16974316; // 0x10301ec
+    field public static final int l_resource_pad22 = 16974315; // 0x10301eb
+    field public static final int l_resource_pad23 = 16974314; // 0x10301ea
+    field public static final int l_resource_pad24 = 16974313; // 0x10301e9
+    field public static final int l_resource_pad25 = 16974312; // 0x10301e8
+    field public static final int l_resource_pad26 = 16974311; // 0x10301e7
+    field public static final int l_resource_pad27 = 16974310; // 0x10301e6
+    field public static final int l_resource_pad28 = 16974309; // 0x10301e5
+    field public static final int l_resource_pad3 = 16974334; // 0x10301fe
+    field public static final int l_resource_pad4 = 16974333; // 0x10301fd
+    field public static final int l_resource_pad5 = 16974332; // 0x10301fc
+    field public static final int l_resource_pad6 = 16974331; // 0x10301fb
+    field public static final int l_resource_pad7 = 16974330; // 0x10301fa
+    field public static final int l_resource_pad8 = 16974329; // 0x10301f9
+    field public static final int l_resource_pad9 = 16974328; // 0x10301f8
   }
 
   public static final class R.xml {
@@ -2325,6 +2464,7 @@
 
   public abstract class AccessibilityService extends android.app.Service {
     ctor public AccessibilityService();
+    method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
     method public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
     method public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
     method public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
@@ -2893,30 +3033,30 @@
   public abstract class ActionBar {
     ctor public ActionBar();
     method public abstract void addOnMenuVisibilityListener(android.app.ActionBar.OnMenuVisibilityListener);
-    method public abstract void addTab(android.app.ActionBar.Tab);
-    method public abstract void addTab(android.app.ActionBar.Tab, boolean);
-    method public abstract void addTab(android.app.ActionBar.Tab, int);
-    method public abstract void addTab(android.app.ActionBar.Tab, int, boolean);
+    method public abstract deprecated void addTab(android.app.ActionBar.Tab);
+    method public abstract deprecated void addTab(android.app.ActionBar.Tab, boolean);
+    method public abstract deprecated void addTab(android.app.ActionBar.Tab, int);
+    method public abstract deprecated void addTab(android.app.ActionBar.Tab, int, boolean);
     method public abstract android.view.View getCustomView();
     method public abstract int getDisplayOptions();
     method public abstract int getHeight();
-    method public abstract int getNavigationItemCount();
-    method public abstract int getNavigationMode();
-    method public abstract int getSelectedNavigationIndex();
-    method public abstract android.app.ActionBar.Tab getSelectedTab();
+    method public abstract deprecated int getNavigationItemCount();
+    method public abstract deprecated int getNavigationMode();
+    method public abstract deprecated int getSelectedNavigationIndex();
+    method public abstract deprecated android.app.ActionBar.Tab getSelectedTab();
     method public abstract java.lang.CharSequence getSubtitle();
-    method public abstract android.app.ActionBar.Tab getTabAt(int);
-    method public abstract int getTabCount();
+    method public abstract deprecated android.app.ActionBar.Tab getTabAt(int);
+    method public abstract deprecated int getTabCount();
     method public android.content.Context getThemedContext();
     method public abstract java.lang.CharSequence getTitle();
     method public abstract void hide();
     method public abstract boolean isShowing();
-    method public abstract android.app.ActionBar.Tab newTab();
-    method public abstract void removeAllTabs();
+    method public abstract deprecated android.app.ActionBar.Tab newTab();
+    method public abstract deprecated void removeAllTabs();
     method public abstract void removeOnMenuVisibilityListener(android.app.ActionBar.OnMenuVisibilityListener);
-    method public abstract void removeTab(android.app.ActionBar.Tab);
-    method public abstract void removeTabAt(int);
-    method public abstract void selectTab(android.app.ActionBar.Tab);
+    method public abstract deprecated void removeTab(android.app.ActionBar.Tab);
+    method public abstract deprecated void removeTabAt(int);
+    method public abstract deprecated void selectTab(android.app.ActionBar.Tab);
     method public abstract void setBackgroundDrawable(android.graphics.drawable.Drawable);
     method public abstract void setCustomView(android.view.View);
     method public abstract void setCustomView(android.view.View, android.app.ActionBar.LayoutParams);
@@ -2935,11 +3075,11 @@
     method public void setHomeButtonEnabled(boolean);
     method public abstract void setIcon(int);
     method public abstract void setIcon(android.graphics.drawable.Drawable);
-    method public abstract void setListNavigationCallbacks(android.widget.SpinnerAdapter, android.app.ActionBar.OnNavigationListener);
+    method public abstract deprecated void setListNavigationCallbacks(android.widget.SpinnerAdapter, android.app.ActionBar.OnNavigationListener);
     method public abstract void setLogo(int);
     method public abstract void setLogo(android.graphics.drawable.Drawable);
-    method public abstract void setNavigationMode(int);
-    method public abstract void setSelectedNavigationItem(int);
+    method public abstract deprecated void setNavigationMode(int);
+    method public abstract deprecated void setSelectedNavigationItem(int);
     method public void setSplitBackgroundDrawable(android.graphics.drawable.Drawable);
     method public void setStackedBackgroundDrawable(android.graphics.drawable.Drawable);
     method public abstract void setSubtitle(java.lang.CharSequence);
@@ -2952,9 +3092,9 @@
     field public static final int DISPLAY_SHOW_HOME = 2; // 0x2
     field public static final int DISPLAY_SHOW_TITLE = 8; // 0x8
     field public static final int DISPLAY_USE_LOGO = 1; // 0x1
-    field public static final int NAVIGATION_MODE_LIST = 1; // 0x1
-    field public static final int NAVIGATION_MODE_STANDARD = 0; // 0x0
-    field public static final int NAVIGATION_MODE_TABS = 2; // 0x2
+    field public static final deprecated int NAVIGATION_MODE_LIST = 1; // 0x1
+    field public static final deprecated int NAVIGATION_MODE_STANDARD = 0; // 0x0
+    field public static final deprecated int NAVIGATION_MODE_TABS = 2; // 0x2
   }
 
   public static class ActionBar.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
@@ -2964,6 +3104,7 @@
     ctor public ActionBar.LayoutParams(int);
     ctor public ActionBar.LayoutParams(android.app.ActionBar.LayoutParams);
     ctor public ActionBar.LayoutParams(android.view.ViewGroup.LayoutParams);
+    ctor public ActionBar.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
     field public int gravity;
   }
 
@@ -2971,11 +3112,11 @@
     method public abstract void onMenuVisibilityChanged(boolean);
   }
 
-  public static abstract interface ActionBar.OnNavigationListener {
+  public static abstract deprecated interface ActionBar.OnNavigationListener {
     method public abstract boolean onNavigationItemSelected(int, long);
   }
 
-  public static abstract class ActionBar.Tab {
+  public static abstract deprecated class ActionBar.Tab {
     ctor public ActionBar.Tab();
     method public abstract java.lang.CharSequence getContentDescription();
     method public abstract android.view.View getCustomView();
@@ -2997,7 +3138,7 @@
     field public static final int INVALID_POSITION = -1; // 0xffffffff
   }
 
-  public static abstract interface ActionBar.TabListener {
+  public static abstract deprecated interface ActionBar.TabListener {
     method public abstract void onTabReselected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
     method public abstract void onTabSelected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
     method public abstract void onTabUnselected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
@@ -3023,6 +3164,7 @@
     method public void finishActivityFromChild(android.app.Activity, int);
     method public void finishAffinity();
     method public void finishFromChild(android.app.Activity);
+    method public void finishWithTransition();
     method public android.app.ActionBar getActionBar();
     method public final android.app.Application getApplication();
     method public android.content.ComponentName getCallingActivity();
@@ -3139,6 +3281,8 @@
     method public void reportFullyDrawn();
     method public final boolean requestWindowFeature(int);
     method public final void runOnUiThread(java.lang.Runnable);
+    method public void setActionBar(android.widget.Toolbar);
+    method public void setActivityLabelAndIcon(java.lang.CharSequence, android.graphics.Bitmap);
     method public void setContentTransitionManager(android.transition.TransitionManager);
     method public void setContentView(int);
     method public void setContentView(android.view.View);
@@ -3155,8 +3299,6 @@
     method public final void setProgressBarIndeterminate(boolean);
     method public final void setProgressBarIndeterminateVisibility(boolean);
     method public final void setProgressBarVisibility(boolean);
-    method public void setRecentsIcon(android.graphics.Bitmap);
-    method public void setRecentsLabel(java.lang.CharSequence);
     method public void setRequestedOrientation(int);
     method public final void setResult(int);
     method public final void setResult(int, android.content.Intent);
@@ -4320,6 +4462,7 @@
     ctor public Notification.Builder(android.content.Context);
     method public android.app.Notification.Builder addAction(int, java.lang.CharSequence, android.app.PendingIntent);
     method public android.app.Notification.Builder addExtras(android.os.Bundle);
+    method public android.app.Notification.Builder addPerson(java.lang.String);
     method public android.app.Notification build();
     method public android.os.Bundle getExtras();
     method public deprecated android.app.Notification getNotification();
@@ -4618,9 +4761,14 @@
   }
 
   public final class UiAutomation {
+    method public void clearWindowAnimationFrameStats();
+    method public boolean clearWindowContentFrameStats(int);
     method public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(java.lang.Runnable, android.app.UiAutomation.AccessibilityEventFilter, long) throws java.util.concurrent.TimeoutException;
+    method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
     method public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
     method public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
+    method public android.view.WindowAnimationFrameStats getWindowAnimationFrameStats();
+    method public android.view.WindowContentFrameStats getWindowContentFrameStats(int);
     method public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
     method public boolean injectInputEvent(android.view.InputEvent, boolean);
     method public final boolean performGlobalAction(int);
@@ -4815,6 +4963,7 @@
     method public void setPasswordMinimumSymbols(android.content.ComponentName, int);
     method public void setPasswordMinimumUpperCase(android.content.ComponentName, int);
     method public void setPasswordQuality(android.content.ComponentName, int);
+    method public void setProfileEnabled(android.content.ComponentName);
     method public int setStorageEncryption(android.content.ComponentName, boolean);
     method public void wipeData(int);
     field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
@@ -6322,6 +6471,7 @@
     field public static final java.lang.String ALARM_SERVICE = "alarm";
     field public static final java.lang.String APP_OPS_SERVICE = "appops";
     field public static final java.lang.String AUDIO_SERVICE = "audio";
+    field public static final java.lang.String BATTERY_SERVICE = "batterymanager";
     field public static final int BIND_ABOVE_CLIENT = 8; // 0x8
     field public static final int BIND_ADJUST_WITH_ACTIVITY = 128; // 0x80
     field public static final int BIND_ALLOW_OOM_MANAGEMENT = 16; // 0x10
@@ -6347,6 +6497,7 @@
     field public static final java.lang.String INPUT_METHOD_SERVICE = "input_method";
     field public static final java.lang.String INPUT_SERVICE = "input";
     field public static final java.lang.String KEYGUARD_SERVICE = "keyguard";
+    field public static final java.lang.String LAUNCHER_APPS_SERVICE = "launcherapps";
     field public static final java.lang.String LAYOUT_INFLATER_SERVICE = "layout_inflater";
     field public static final java.lang.String LOCATION_SERVICE = "location";
     field public static final java.lang.String MEDIA_ROUTER_SERVICE = "media_router";
@@ -6367,11 +6518,13 @@
     field public static final java.lang.String STORAGE_SERVICE = "storage";
     field public static final java.lang.String TELEPHONY_SERVICE = "phone";
     field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
+    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
     field public static final java.lang.String UI_MODE_SERVICE = "uimode";
     field public static final java.lang.String USB_SERVICE = "usb";
     field public static final java.lang.String USER_SERVICE = "user";
     field public static final java.lang.String VIBRATOR_SERVICE = "vibrator";
     field public static final java.lang.String WALLPAPER_SERVICE = "wallpaper";
+    field public static final java.lang.String WIFI_HOTSPOT_SERVICE = "wifihotspot";
     field public static final java.lang.String WIFI_P2P_SERVICE = "wifip2p";
     field public static final java.lang.String WIFI_SERVICE = "wifi";
     field public static final java.lang.String WINDOW_SERVICE = "window";
@@ -6712,6 +6865,8 @@
     field public static final java.lang.String ACTION_INSTALL_PACKAGE = "android.intent.action.INSTALL_PACKAGE";
     field public static final java.lang.String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED";
     field public static final java.lang.String ACTION_MAIN = "android.intent.action.MAIN";
+    field public static final java.lang.String ACTION_MANAGED_PROFILE_ADDED = "android.intent.action.MANAGED_PROFILE_ADDED";
+    field public static final java.lang.String ACTION_MANAGED_PROFILE_REMOVED = "android.intent.action.MANAGED_PROFILE_REMOVED";
     field public static final java.lang.String ACTION_MANAGE_NETWORK_USAGE = "android.intent.action.MANAGE_NETWORK_USAGE";
     field public static final java.lang.String ACTION_MANAGE_PACKAGE_STORAGE = "android.intent.action.MANAGE_PACKAGE_STORAGE";
     field public static final java.lang.String ACTION_MEDIA_BAD_REMOVAL = "android.intent.action.MEDIA_BAD_REMOVAL";
@@ -6803,6 +6958,7 @@
     field public static final java.lang.String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final java.lang.String CATEGORY_LE_DESK_DOCK = "android.intent.category.LE_DESK_DOCK";
     field public static final java.lang.String CATEGORY_MONKEY = "android.intent.category.MONKEY";
+    field public static final java.lang.String CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
     field public static final java.lang.String CATEGORY_OPENABLE = "android.intent.category.OPENABLE";
     field public static final java.lang.String CATEGORY_PREFERENCE = "android.intent.category.PREFERENCE";
     field public static final java.lang.String CATEGORY_SAMPLE_CODE = "android.intent.category.SAMPLE_CODE";
@@ -6860,6 +7016,7 @@
     field public static final java.lang.String EXTRA_TEXT = "android.intent.extra.TEXT";
     field public static final java.lang.String EXTRA_TITLE = "android.intent.extra.TITLE";
     field public static final java.lang.String EXTRA_UID = "android.intent.extra.UID";
+    field public static final java.lang.String EXTRA_USER = "android.intent.extra.user";
     field public static final int FILL_IN_ACTION = 1; // 0x1
     field public static final int FILL_IN_CATEGORIES = 4; // 0x4
     field public static final int FILL_IN_CLIP_DATA = 128; // 0x80
@@ -7516,6 +7673,32 @@
     field public static final android.os.Parcelable.Creator CREATOR;
   }
 
+  public class LauncherActivityInfo {
+    method public int getApplicationFlags();
+    method public android.graphics.drawable.Drawable getBadgedIcon(int);
+    method public android.content.ComponentName getComponentName();
+    method public long getFirstInstallTime();
+    method public android.graphics.drawable.Drawable getIcon(int);
+    method public java.lang.CharSequence getLabel();
+    method public android.os.UserHandle getUser();
+  }
+
+  public class LauncherApps {
+    method public synchronized void addOnAppsChangedListener(android.content.pm.LauncherApps.OnAppsChangedListener);
+    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
+    method public synchronized void removeOnAppsChangedListener(android.content.pm.LauncherApps.OnAppsChangedListener);
+    method public android.content.pm.LauncherActivityInfo resolveActivity(android.content.Intent, android.os.UserHandle);
+    method public void startActivityForProfile(android.content.ComponentName, android.graphics.Rect, android.os.Bundle, android.os.UserHandle);
+  }
+
+  public static abstract interface LauncherApps.OnAppsChangedListener {
+    method public abstract void onPackageAdded(android.os.UserHandle, java.lang.String);
+    method public abstract void onPackageChanged(android.os.UserHandle, java.lang.String);
+    method public abstract void onPackageRemoved(android.os.UserHandle, java.lang.String);
+    method public abstract void onPackagesAvailable(android.os.UserHandle, java.lang.String[], boolean);
+    method public abstract void onPackagesUnavailable(android.os.UserHandle, java.lang.String[], boolean);
+  }
+
   public class PackageInfo implements android.os.Parcelable {
     ctor public PackageInfo();
     method public int describeContents();
@@ -7610,6 +7793,7 @@
     method public abstract java.lang.String getInstallerPackageName(java.lang.String);
     method public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.Intent getLaunchIntentForPackage(java.lang.String);
+    method public abstract android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
     method public abstract java.lang.String getNameForUid(int);
     method public android.content.pm.PackageInfo getPackageArchiveInfo(java.lang.String, int);
     method public abstract int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -7679,6 +7863,7 @@
     field public static final java.lang.String FEATURE_LOCATION = "android.hardware.location";
     field public static final java.lang.String FEATURE_LOCATION_GPS = "android.hardware.location.gps";
     field public static final java.lang.String FEATURE_LOCATION_NETWORK = "android.hardware.location.network";
+    field public static final java.lang.String FEATURE_MANAGEDPROFILES = "android.software.managedprofiles";
     field public static final java.lang.String FEATURE_MICROPHONE = "android.hardware.microphone";
     field public static final java.lang.String FEATURE_NFC = "android.hardware.nfc";
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
@@ -8028,6 +8213,7 @@
     field public static final int UI_MODE_TYPE_NORMAL = 1; // 0x1
     field public static final int UI_MODE_TYPE_TELEVISION = 4; // 0x4
     field public static final int UI_MODE_TYPE_UNDEFINED = 0; // 0x0
+    field public static final int UI_MODE_TYPE_WATCH = 6; // 0x6
     field public int densityDpi;
     field public float fontScale;
     field public int hardKeyboardHidden;
@@ -10465,6 +10651,7 @@
     method public void setTileModeXY(android.graphics.Shader.TileMode, android.graphics.Shader.TileMode);
     method public final void setTileModeY(android.graphics.Shader.TileMode);
     method public void setTint(android.content.res.ColorStateList);
+    method public void setTintMode(android.graphics.PorterDuff.Mode);
   }
 
   public class ClipDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
@@ -10496,6 +10683,7 @@
     method public void applyTheme(android.content.res.Resources.Theme);
     method public boolean canApplyTheme();
     method public void clearColorFilter();
+    method public void clearHotspots();
     method public final void copyBounds(android.graphics.Rect);
     method public final android.graphics.Rect copyBounds();
     method public static android.graphics.drawable.Drawable createFromPath(java.lang.String);
@@ -10538,6 +10726,7 @@
     method protected void onBoundsChange(android.graphics.Rect);
     method protected boolean onLevelChange(int);
     method protected boolean onStateChange(int[]);
+    method public void removeHotspot(int);
     method public static int resolveOpacity(int, int);
     method public void scheduleSelf(java.lang.Runnable, long);
     method public abstract void setAlpha(int);
@@ -10550,9 +10739,11 @@
     method public void setColorFilter(int, android.graphics.PorterDuff.Mode);
     method public void setDither(boolean);
     method public void setFilterBitmap(boolean);
+    method public void setHotspot(int, float, float);
     method public final boolean setLevel(int);
     method public boolean setState(int[]);
     method public boolean setVisible(boolean, boolean);
+    method public boolean supportsHotspots();
     method public void unscheduleSelf(java.lang.Runnable);
   }
 
@@ -10738,6 +10929,7 @@
     method public void setTargetDensity(android.util.DisplayMetrics);
     method public void setTargetDensity(int);
     method public void setTint(android.content.res.ColorStateList);
+    method public void setTintMode(android.graphics.PorterDuff.Mode);
   }
 
   public class PaintDrawable extends android.graphics.drawable.ShapeDrawable {
@@ -10757,10 +10949,6 @@
     method public void setPicture(android.graphics.Picture);
   }
 
-  public class RevealDrawable extends android.graphics.drawable.LayerDrawable {
-    ctor public RevealDrawable(android.graphics.drawable.Drawable[]);
-  }
-
   public class RotateDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
     ctor public RotateDrawable();
     method public void draw(android.graphics.Canvas);
@@ -10830,7 +11018,11 @@
     method public void addState(int[], android.graphics.drawable.Drawable);
   }
 
-  public class TouchFeedbackDrawable extends android.graphics.drawable.DrawableWrapper {
+  public class TouchFeedbackDrawable extends android.graphics.drawable.LayerDrawable {
+    method public android.graphics.Rect getDirtyBounds();
+    method public android.content.res.ColorStateList getTint();
+    method public void setTint(android.content.res.ColorStateList);
+    method public void setTintMode(android.graphics.PorterDuff.Mode);
   }
 
   public class TransitionDrawable extends android.graphics.drawable.LayerDrawable implements android.graphics.drawable.Drawable.Callback {
@@ -10842,6 +11034,24 @@
     method public void startTransition(int);
   }
 
+  public class VectorDrawable extends android.graphics.drawable.Drawable {
+    ctor public VectorDrawable();
+    method public void draw(android.graphics.Canvas);
+    method public float geAnimationFraction();
+    method public int getOpacity();
+    method public int getRepeatCount();
+    method public void setAlpha(int);
+    method public void setAnimationFraction(float);
+    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setDuration(long);
+    method public void setPadding(android.graphics.Rect);
+    method public void setPadding(int, int, int, int);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void start();
+    method public void stop();
+  }
+
 }
 
 package android.graphics.drawable.shapes {
@@ -11197,10 +11407,33 @@
     method public int getMinDelay();
     method public java.lang.String getName();
     method public float getPower();
+    method public java.lang.String getRequiredPermission();
     method public float getResolution();
+    method public java.lang.String getStringType();
     method public int getType();
     method public java.lang.String getVendor();
     method public int getVersion();
+    field public static final java.lang.String STRING_TYPE_ACCELEROMETER = "android.sensor.accelerometer";
+    field public static final java.lang.String STRING_TYPE_AMBIENT_TEMPERATURE = "android.sensor.ambient_temperature";
+    field public static final java.lang.String STRING_TYPE_GAME_ROTATION_VECTOR = "android.sensor.game_rotation_vector";
+    field public static final java.lang.String STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR = "android.sensor.geomagnetic_rotation_vector";
+    field public static final java.lang.String STRING_TYPE_GRAVITY = "android.sensor.gravity";
+    field public static final java.lang.String STRING_TYPE_GYROSCOPE = "android.sensor.gyroscope";
+    field public static final java.lang.String STRING_TYPE_GYROSCOPE_UNCALIBRATED = "android.sensor.gyroscope_uncalibrated";
+    field public static final java.lang.String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate";
+    field public static final java.lang.String STRING_TYPE_LIGHT = "android.sensor.light";
+    field public static final java.lang.String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration";
+    field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field";
+    field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED = "android.sensor.magnetic_field_uncalibrated";
+    field public static final deprecated java.lang.String STRING_TYPE_ORIENTATION = "android.sensor.orientation";
+    field public static final java.lang.String STRING_TYPE_PRESSURE = "android.sensor.pressure";
+    field public static final java.lang.String STRING_TYPE_PROXIMITY = "android.sensor.proximity";
+    field public static final java.lang.String STRING_TYPE_RELATIVE_HUMIDITY = "android.sensor.relative_humidity";
+    field public static final java.lang.String STRING_TYPE_ROTATION_VECTOR = "android.sensor.rotation_vector";
+    field public static final java.lang.String STRING_TYPE_SIGNIFICANT_MOTION = "android.sensor.significant_motion";
+    field public static final java.lang.String STRING_TYPE_STEP_COUNTER = "android.sensor.step_counter";
+    field public static final java.lang.String STRING_TYPE_STEP_DETECTOR = "android.sensor.step_detector";
+    field public static final deprecated java.lang.String STRING_TYPE_TEMPERATURE = "android.sensor.temperature";
     field public static final int TYPE_ACCELEROMETER = 1; // 0x1
     field public static final int TYPE_ALL = -1; // 0xffffffff
     field public static final int TYPE_AMBIENT_TEMPERATURE = 13; // 0xd
@@ -11209,6 +11442,7 @@
     field public static final int TYPE_GRAVITY = 9; // 0x9
     field public static final int TYPE_GYROSCOPE = 4; // 0x4
     field public static final int TYPE_GYROSCOPE_UNCALIBRATED = 16; // 0x10
+    field public static final int TYPE_HEART_RATE = 21; // 0x15
     field public static final int TYPE_LIGHT = 5; // 0x5
     field public static final int TYPE_LINEAR_ACCELERATION = 10; // 0xa
     field public static final int TYPE_MAGNETIC_FIELD = 2; // 0x2
@@ -11404,6 +11638,7 @@
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_BASE_GAIN_FACTOR;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_BLACK_LEVEL_PATTERN;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_ACTIVE_ARRAY_SIZE;
+    field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_COLOR_FILTER_ARRANGEMENT;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_EXPOSURE_TIME_RANGE;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_MAX_FRAME_DURATION;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_PHYSICAL_SIZE;
@@ -11532,6 +11767,7 @@
     field public static final int CONTROL_AWB_STATE_LOCKED = 3; // 0x3
     field public static final int CONTROL_AWB_STATE_SEARCHING = 1; // 0x1
     field public static final int CONTROL_CAPTURE_INTENT_CUSTOM = 0; // 0x0
+    field public static final int CONTROL_CAPTURE_INTENT_MANUAL = 6; // 0x6
     field public static final int CONTROL_CAPTURE_INTENT_PREVIEW = 1; // 0x1
     field public static final int CONTROL_CAPTURE_INTENT_STILL_CAPTURE = 2; // 0x2
     field public static final int CONTROL_CAPTURE_INTENT_VIDEO_RECORD = 3; // 0x3
@@ -11600,6 +11836,11 @@
     field public static final int REQUEST_AVAILABLE_CAPABILITIES_ZSL = 4; // 0x4
     field public static final int SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT = 1; // 0x1
     field public static final int SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT = 0; // 0x0
+    field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR = 3; // 0x3
+    field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG = 2; // 0x2
+    field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG = 1; // 0x1
+    field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB = 4; // 0x4
+    field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB = 0; // 0x0
     field public static final int SENSOR_REFERENCE_ILLUMINANT_CLOUDY_WEATHER = 10; // 0xa
     field public static final int SENSOR_REFERENCE_ILLUMINANT_COOL_WHITE_FLUORESCENT = 14; // 0xe
     field public static final int SENSOR_REFERENCE_ILLUMINANT_D50 = 23; // 0x17
@@ -11944,9 +12185,15 @@
     field public static final int MESSAGE_VENDOR_COMMAND_WITH_ID = 160; // 0xa0
     field public static final int MESSAGE_VENDOR_REMOTE_BUTTON_DOWN = 138; // 0x8a
     field public static final int MESSAGE_VENDOR_REMOTE_BUTTON_UP = 139; // 0x8b
+    field public static final int POWER_STATUS_ON = 0; // 0x0
+    field public static final int POWER_STATUS_STANDBY = 1; // 0x1
+    field public static final int POWER_STATUS_UNKNOWN = -1; // 0xffffffff
+    field public static final int POWER_TRANSIENT_TO_ON = 2; // 0x2
+    field public static final int POWER_TRANSIENT_TO_STANDBY = 3; // 0x3
   }
 
   public final class HdmiCecClient {
+    method public boolean isTvOn();
     method public void sendActiveSource();
     method public void sendGiveDevicePowerStatus(int);
     method public void sendImageViewOn();
@@ -12321,6 +12568,7 @@
     method public void setBackDisposition(int);
     method public void setCandidatesView(android.view.View);
     method public void setCandidatesViewShown(boolean);
+    method public void setCursorAnchorMonitorMode(int);
     method public void setExtractView(android.view.View);
     method public void setExtractViewShown(boolean);
     method public void setInputView(android.view.View);
@@ -12332,6 +12580,8 @@
     field public static final int BACK_DISPOSITION_DEFAULT = 0; // 0x0
     field public static final int BACK_DISPOSITION_WILL_DISMISS = 2; // 0x2
     field public static final int BACK_DISPOSITION_WILL_NOT_DISMISS = 1; // 0x1
+    field public static final int CURSOR_ANCHOR_MONITOR_MODE_CURSOR_RECT = 1; // 0x1
+    field public static final int CURSOR_ANCHOR_MONITOR_MODE_NONE = 0; // 0x0
   }
 
   public class InputMethodService.InputMethodImpl extends android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl {
@@ -13010,7 +13260,7 @@
     method public int setPlaybackRate(int);
     method public int setPositionNotificationPeriod(int);
     method protected deprecated void setState(int);
-    method public int setStereoVolume(float, float);
+    method public deprecated int setStereoVolume(float, float);
     method public int setVolume(float);
     method public void stop() throws java.lang.IllegalStateException;
     method public int write(byte[], int, int);
@@ -15566,10 +15816,13 @@
   public final class NsdServiceInfo implements android.os.Parcelable {
     ctor public NsdServiceInfo();
     method public int describeContents();
+    method public java.util.Map<java.lang.String, byte[]> getAttributes();
     method public java.net.InetAddress getHost();
     method public int getPort();
     method public java.lang.String getServiceName();
     method public java.lang.String getServiceType();
+    method public void removeAttribute(java.lang.String);
+    method public void setAttribute(java.lang.String, java.lang.String);
     method public void setHost(java.net.InetAddress);
     method public void setPort(int);
     method public void setServiceName(java.lang.String);
@@ -16063,6 +16316,19 @@
 
 }
 
+package android.net.wifi.hotspot {
+
+  public abstract interface IWifiHotspotManager implements android.os.IInterface {
+    method public abstract void test() throws android.os.RemoteException;
+  }
+
+  public class WifiHotspotManager {
+    ctor public WifiHotspotManager(android.content.Context, android.net.wifi.hotspot.IWifiHotspotManager);
+    method public void test();
+  }
+
+}
+
 package android.net.wifi.p2p {
 
   public class WifiP2pConfig implements android.os.Parcelable {
@@ -18716,6 +18982,7 @@
 
   public class BatteryManager {
     ctor public BatteryManager();
+    method public android.os.BatteryProperty getProperty(int) throws android.os.RemoteException;
     field public static final int BATTERY_HEALTH_COLD = 7; // 0x7
     field public static final int BATTERY_HEALTH_DEAD = 4; // 0x4
     field public static final int BATTERY_HEALTH_GOOD = 2; // 0x2
@@ -18743,6 +19010,18 @@
     field public static final java.lang.String EXTRA_VOLTAGE = "voltage";
   }
 
+  public class BatteryProperty implements android.os.Parcelable {
+    method public int describeContents();
+    method public int getInt();
+    method public void readFromParcel(android.os.Parcel);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CAPACITY = 4; // 0x4
+    field public static final int CHARGE_COUNTER = 1; // 0x1
+    field public static final android.os.Parcelable.Creator CREATOR;
+    field public static final int CURRENT_AVERAGE = 3; // 0x3
+    field public static final int CURRENT_NOW = 2; // 0x2
+  }
+
   public class Binder implements android.os.IBinder {
     ctor public Binder();
     method public void attachInterface(android.os.IInterface, java.lang.String);
@@ -19510,7 +19789,8 @@
 
   public final class PowerManager {
     method public void goToSleep(long);
-    method public boolean isScreenOn();
+    method public boolean isInteractive();
+    method public deprecated boolean isScreenOn();
     method public android.os.PowerManager.WakeLock newWakeLock(int, java.lang.String);
     method public void reboot(java.lang.String);
     method public void userActivity(long, boolean);
@@ -19722,10 +20002,12 @@
 
   public class UserManager {
     method public android.os.Bundle getApplicationRestrictions(java.lang.String);
+    method public android.graphics.drawable.Drawable getBadgedDrawableForUser(android.graphics.drawable.Drawable, android.os.UserHandle);
     method public long getSerialNumberForUser(android.os.UserHandle);
     method public int getUserCount();
     method public android.os.UserHandle getUserForSerialNumber(long);
     method public java.lang.String getUserName();
+    method public java.util.List<android.os.UserHandle> getUserProfiles();
     method public android.os.Bundle getUserRestrictions();
     method public android.os.Bundle getUserRestrictions(android.os.UserHandle);
     method public boolean isUserAGoat();
@@ -21038,6 +21320,16 @@
     field public static final deprecated android.net.Uri DELETED_CONTENT_URI;
     field public static final deprecated java.lang.String GROUP_ANDROID_STARRED = "Starred in Android";
     field public static final deprecated java.lang.String GROUP_MY_CONTACTS = "Contacts";
+    field public static final java.lang.String NON_SYNCABLE_ACCOUNT = "non_syncable";
+    field public static final java.lang.String NON_SYNCABLE_ACCOUNT_TYPE = "android.local";
+    field public static final java.lang.String _SYNC_ACCOUNT = "_sync_account";
+    field public static final java.lang.String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
+    field public static final java.lang.String _SYNC_DIRTY = "_sync_dirty";
+    field public static final java.lang.String _SYNC_ID = "_sync_id";
+    field public static final java.lang.String _SYNC_LOCAL_ID = "_sync_local_id";
+    field public static final java.lang.String _SYNC_MARK = "_sync_mark";
+    field public static final java.lang.String _SYNC_TIME = "_sync_time";
+    field public static final java.lang.String _SYNC_VERSION = "_sync_version";
   }
 
   public static abstract deprecated interface Contacts.GroupsColumns {
@@ -21139,9 +21431,19 @@
     field public static final deprecated android.net.Uri CONTENT_URI;
     field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "name ASC";
     field public static final deprecated android.net.Uri DELETED_CONTENT_URI;
+    field public static final java.lang.String NON_SYNCABLE_ACCOUNT = "non_syncable";
+    field public static final java.lang.String NON_SYNCABLE_ACCOUNT_TYPE = "android.local";
     field public static final deprecated java.lang.String PRIMARY_EMAIL_ID = "primary_email";
     field public static final deprecated java.lang.String PRIMARY_ORGANIZATION_ID = "primary_organization";
     field public static final deprecated java.lang.String PRIMARY_PHONE_ID = "primary_phone";
+    field public static final java.lang.String _SYNC_ACCOUNT = "_sync_account";
+    field public static final java.lang.String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
+    field public static final java.lang.String _SYNC_DIRTY = "_sync_dirty";
+    field public static final java.lang.String _SYNC_ID = "_sync_id";
+    field public static final java.lang.String _SYNC_LOCAL_ID = "_sync_local_id";
+    field public static final java.lang.String _SYNC_MARK = "_sync_mark";
+    field public static final java.lang.String _SYNC_TIME = "_sync_time";
+    field public static final java.lang.String _SYNC_VERSION = "_sync_version";
   }
 
   public static final deprecated class Contacts.People.ContactMethods implements android.provider.BaseColumns android.provider.Contacts.ContactMethodsColumns android.provider.Contacts.PeopleColumns {
@@ -21204,6 +21506,16 @@
     field public static final deprecated java.lang.String CONTENT_DIRECTORY = "photo";
     field public static final deprecated android.net.Uri CONTENT_URI;
     field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "person ASC";
+    field public static final java.lang.String NON_SYNCABLE_ACCOUNT = "non_syncable";
+    field public static final java.lang.String NON_SYNCABLE_ACCOUNT_TYPE = "android.local";
+    field public static final java.lang.String _SYNC_ACCOUNT = "_sync_account";
+    field public static final java.lang.String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
+    field public static final java.lang.String _SYNC_DIRTY = "_sync_dirty";
+    field public static final java.lang.String _SYNC_ID = "_sync_id";
+    field public static final java.lang.String _SYNC_LOCAL_ID = "_sync_local_id";
+    field public static final java.lang.String _SYNC_MARK = "_sync_mark";
+    field public static final java.lang.String _SYNC_TIME = "_sync_time";
+    field public static final java.lang.String _SYNC_VERSION = "_sync_version";
   }
 
   public static abstract deprecated interface Contacts.PhotosColumns {
@@ -22122,6 +22434,7 @@
     field public static final java.lang.String EXTRA_MEDIA_ARTIST = "android.intent.extra.artist";
     field public static final java.lang.String EXTRA_MEDIA_FOCUS = "android.intent.extra.focus";
     field public static final java.lang.String EXTRA_MEDIA_GENRE = "android.intent.extra.genre";
+    field public static final java.lang.String EXTRA_MEDIA_PLAYLIST = "android.intent.extra.playlist";
     field public static final java.lang.String EXTRA_MEDIA_RADIO_CHANNEL = "android.intent.extra.radio_channel";
     field public static final java.lang.String EXTRA_MEDIA_TITLE = "android.intent.extra.title";
     field public static final java.lang.String EXTRA_OUTPUT = "output";
@@ -23063,6 +23376,67 @@
     field public static final java.lang.String TYPE = "type";
   }
 
+  public final class TvContract {
+    method public static final android.net.Uri buildChannelUri(long);
+    method public static final android.net.Uri buildProgramUri(long);
+    field public static final java.lang.String AUTHORITY = "com.android.tv";
+  }
+
+  public static abstract interface TvContract.BaseTvColumns implements android.provider.BaseColumns {
+    field public static final java.lang.String PACKAGE_NAME = "package_name";
+  }
+
+  public static final class TvContract.Channels implements android.provider.TvContract.BaseTvColumns {
+    field public static final java.lang.String BROWSABLE = "browsable";
+    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.com.android.tv.channels";
+    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.com.android.tv.channels";
+    field public static final android.net.Uri CONTENT_URI;
+    field public static final java.lang.String DATA = "data";
+    field public static final java.lang.String DESCRIPTION = "description";
+    field public static final java.lang.String DISPLAY_NAME = "display_name";
+    field public static final java.lang.String DISPLAY_NUMBER = "display_number";
+    field public static final java.lang.String SERVICE_NAME = "service_name";
+    field public static final java.lang.String TRANSPORT_STREAM_ID = "transport_stream_id";
+    field public static final java.lang.String TYPE = "type";
+    field public static final int TYPE_1SEG = 263168; // 0x40400
+    field public static final int TYPE_ATSC = 196608; // 0x30000
+    field public static final int TYPE_ATSC_2_0 = 196609; // 0x30001
+    field public static final int TYPE_ATSC_M_H = 196864; // 0x30100
+    field public static final int TYPE_CMMB = 327936; // 0x50100
+    field public static final int TYPE_DTMB = 327680; // 0x50000
+    field public static final int TYPE_DVB_C = 131584; // 0x20200
+    field public static final int TYPE_DVB_C2 = 131585; // 0x20201
+    field public static final int TYPE_DVB_H = 131840; // 0x20300
+    field public static final int TYPE_DVB_S = 131328; // 0x20100
+    field public static final int TYPE_DVB_S2 = 131329; // 0x20101
+    field public static final int TYPE_DVB_SH = 132096; // 0x20400
+    field public static final int TYPE_DVB_T = 131072; // 0x20000
+    field public static final int TYPE_DVB_T2 = 131073; // 0x20001
+    field public static final int TYPE_ISDB_C = 262912; // 0x40300
+    field public static final int TYPE_ISDB_S = 262656; // 0x40200
+    field public static final int TYPE_ISDB_T = 262144; // 0x40000
+    field public static final int TYPE_ISDB_TB = 262400; // 0x40100
+    field public static final int TYPE_OTHER = 0; // 0x0
+    field public static final int TYPE_PASSTHROUGH = 65536; // 0x10000
+    field public static final int TYPE_S_DMB = 393472; // 0x60100
+    field public static final int TYPE_T_DMB = 393216; // 0x60000
+    field public static final java.lang.String VERSION_NUMBER = "version_number";
+  }
+
+  public static final class TvContract.Programs implements android.provider.TvContract.BaseTvColumns {
+    field public static final java.lang.String CHANNEL_ID = "channel_id";
+    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.com.android.tv.programs";
+    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.com.android.tv.programs";
+    field public static final android.net.Uri CONTENT_URI;
+    field public static final java.lang.String DATA = "data";
+    field public static final java.lang.String DESCRIPTION = "description";
+    field public static final java.lang.String END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final java.lang.String LONG_DESCRIPTION = "long_description";
+    field public static final java.lang.String START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final java.lang.String TITLE = "title";
+    field public static final java.lang.String VERSION_NUMBER = "version_number";
+  }
+
   public class UserDictionary {
     ctor public UserDictionary();
     field public static final java.lang.String AUTHORITY = "user_dictionary";
@@ -24180,9 +24554,14 @@
   public abstract class NotificationListenerService extends android.app.Service {
     ctor public NotificationListenerService();
     method public final void cancelAllNotifications();
-    method public final void cancelNotification(java.lang.String, java.lang.String, int);
+    method public final deprecated void cancelNotification(java.lang.String, java.lang.String, int);
+    method public final void cancelNotification(java.lang.String);
+    method public final void cancelNotifications(java.lang.String[]);
+    method public java.lang.String[] getActiveNotificationKeys();
     method public android.service.notification.StatusBarNotification[] getActiveNotifications();
+    method public android.service.notification.StatusBarNotification[] getActiveNotifications(java.lang.String[]);
     method public android.os.IBinder onBind(android.content.Intent);
+    method public void onListenerConnected(java.lang.String[]);
     method public abstract void onNotificationPosted(android.service.notification.StatusBarNotification);
     method public abstract void onNotificationRemoved(android.service.notification.StatusBarNotification);
     field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationListenerService";
@@ -24194,11 +24573,13 @@
     method public android.service.notification.StatusBarNotification clone();
     method public int describeContents();
     method public int getId();
+    method public java.lang.String getKey();
     method public android.app.Notification getNotification();
     method public java.lang.String getPackageName();
     method public long getPostTime();
     method public java.lang.String getTag();
-    method public int getUserId();
+    method public android.os.UserHandle getUser();
+    method public deprecated int getUserId();
     method public boolean isClearable();
     method public boolean isOngoing();
     method public void writeToParcel(android.os.Parcel, int);
@@ -24230,6 +24611,20 @@
 
 }
 
+package android.service.trust {
+
+  public class TrustAgentService extends android.app.Service {
+    ctor public TrustAgentService();
+    method protected final void enableTrust(java.lang.String, long, boolean);
+    method public final android.os.IBinder onBind(android.content.Intent);
+    method protected void onUnlockAttempt(boolean);
+    method protected final void revokeTrust();
+    field public static final java.lang.String SERVICE_INTERFACE = "android.service.trust.TrustAgentService";
+    field public static final java.lang.String TRUST_AGENT_META_DATA = "android.service.trust.trustagent";
+  }
+
+}
+
 package android.service.wallpaper {
 
   public abstract class WallpaperService extends android.app.Service {
@@ -24528,7 +24923,7 @@
     method public abstract void onUtteranceCompleted(java.lang.String);
   }
 
-  public final class TextToSpeechClient {
+  public class TextToSpeechClient {
     ctor public TextToSpeechClient(android.content.Context, java.lang.String, boolean, android.speech.tts.TextToSpeechClient.RequestCallbacks, android.speech.tts.TextToSpeechClient.ConnectionCallbacks);
     ctor public TextToSpeechClient(android.content.Context, android.speech.tts.TextToSpeechClient.RequestCallbacks, android.speech.tts.TextToSpeechClient.ConnectionCallbacks);
     method public void connect();
@@ -25722,6 +26117,7 @@
     method public java.lang.String getInstallerPackageName(java.lang.String);
     method public android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.Intent getLaunchIntentForPackage(java.lang.String);
+    method public android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
     method public java.lang.String getNameForUid(int);
     method public int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.pm.PackageInfo getPackageInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -27216,6 +27612,16 @@
     method public void setResizeClip(boolean);
   }
 
+  public class CircularPropagation extends android.transition.VisibilityPropagation {
+    ctor public CircularPropagation();
+    method public long getStartDelay(android.view.ViewGroup, android.transition.Transition, android.transition.TransitionValues, android.transition.TransitionValues);
+    method public void setPropagationSpeed(float);
+  }
+
+  public class Explode extends android.transition.Visibility {
+    ctor public Explode();
+  }
+
   public class Fade extends android.transition.Visibility {
     ctor public Fade();
     ctor public Fade(int);
@@ -27223,6 +27629,12 @@
     field public static final int OUT = 2; // 0x2
   }
 
+  public class MoveImage extends android.transition.Transition {
+    ctor public MoveImage();
+    method public void captureEndValues(android.transition.TransitionValues);
+    method public void captureStartValues(android.transition.TransitionValues);
+  }
+
   public final class Scene {
     ctor public Scene(android.view.ViewGroup);
     ctor public Scene(android.view.ViewGroup, android.view.View);
@@ -27235,6 +27647,27 @@
     method public void setExitAction(java.lang.Runnable);
   }
 
+  public class SidePropagation extends android.transition.VisibilityPropagation {
+    ctor public SidePropagation();
+    method public long getStartDelay(android.view.ViewGroup, android.transition.Transition, android.transition.TransitionValues, android.transition.TransitionValues);
+    method public void setPropagationSpeed(float);
+    method public void setSide(int);
+    field public static final int BOTTOM = 3; // 0x3
+    field public static final int LEFT = 0; // 0x0
+    field public static final int RIGHT = 2; // 0x2
+    field public static final int TOP = 1; // 0x1
+  }
+
+  public class Slide extends android.transition.Visibility {
+    ctor public Slide();
+    ctor public Slide(int);
+    method public void setSlideEdge(int);
+    field public static final int BOTTOM = 3; // 0x3
+    field public static final int LEFT = 0; // 0x0
+    field public static final int RIGHT = 2; // 0x2
+    field public static final int TOP = 1; // 0x1
+  }
+
   public abstract class Transition implements java.lang.Cloneable {
     ctor public Transition();
     method public android.transition.Transition addListener(android.transition.Transition.TransitionListener);
@@ -27252,8 +27685,11 @@
     method public android.transition.Transition excludeTarget(android.view.View, boolean);
     method public android.transition.Transition excludeTarget(java.lang.Class, boolean);
     method public long getDuration();
+    method public android.graphics.Rect getEpicenter();
+    method public android.transition.Transition.EpicenterCallback getEpicenterCallback();
     method public android.animation.TimeInterpolator getInterpolator();
     method public java.lang.String getName();
+    method public android.transition.TransitionPropagation getPropagation();
     method public long getStartDelay();
     method public java.util.List<java.lang.Integer> getTargetIds();
     method public java.util.List<android.view.View> getTargets();
@@ -27263,10 +27699,17 @@
     method public android.transition.Transition removeTarget(int);
     method public android.transition.Transition removeTarget(android.view.View);
     method public android.transition.Transition setDuration(long);
+    method public void setEpicenterCallback(android.transition.Transition.EpicenterCallback);
     method public android.transition.Transition setInterpolator(android.animation.TimeInterpolator);
+    method public void setPropagation(android.transition.TransitionPropagation);
     method public android.transition.Transition setStartDelay(long);
   }
 
+  public static abstract class Transition.EpicenterCallback {
+    ctor public Transition.EpicenterCallback();
+    method public abstract android.graphics.Rect getEpicenter(android.transition.Transition);
+  }
+
   public static abstract interface Transition.TransitionListener {
     method public abstract void onTransitionCancel(android.transition.Transition);
     method public abstract void onTransitionEnd(android.transition.Transition);
@@ -27293,6 +27736,13 @@
     method public void transitionTo(android.transition.Scene);
   }
 
+  public abstract class TransitionPropagation {
+    ctor public TransitionPropagation();
+    method public abstract void captureValues(android.transition.TransitionValues);
+    method public abstract java.lang.String[] getPropagationProperties();
+    method public abstract long getStartDelay(android.view.ViewGroup, android.transition.Transition, android.transition.TransitionValues, android.transition.TransitionValues);
+  }
+
   public class TransitionSet extends android.transition.Transition {
     ctor public TransitionSet();
     method public android.transition.TransitionSet addTransition(android.transition.Transition);
@@ -27317,7 +27767,72 @@
     method public void captureStartValues(android.transition.TransitionValues);
     method public boolean isVisible(android.transition.TransitionValues);
     method public android.animation.Animator onAppear(android.view.ViewGroup, android.transition.TransitionValues, int, android.transition.TransitionValues, int);
+    method public android.animation.Animator onAppear(android.view.ViewGroup, android.view.View, android.transition.TransitionValues, android.transition.TransitionValues);
     method public android.animation.Animator onDisappear(android.view.ViewGroup, android.transition.TransitionValues, int, android.transition.TransitionValues, int);
+    method public android.animation.Animator onDisappear(android.view.ViewGroup, android.view.View, android.transition.TransitionValues, android.transition.TransitionValues);
+  }
+
+  public abstract class VisibilityPropagation extends android.transition.TransitionPropagation {
+    ctor public VisibilityPropagation();
+    method public void captureValues(android.transition.TransitionValues);
+    method public java.lang.String[] getPropagationProperties();
+    method public int getViewVisibility(android.transition.TransitionValues);
+    method public int getViewX(android.transition.TransitionValues);
+    method public int getViewY(android.transition.TransitionValues);
+  }
+
+}
+
+package android.tv {
+
+  public final class TvInputInfo implements android.os.Parcelable {
+    method public int describeContents();
+    method public android.content.ComponentName getComponent();
+    method public java.lang.String getId();
+    method public java.lang.String getPackageName();
+    method public java.lang.String getServiceName();
+    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public void writeToParcel(android.os.Parcel, int);
+  }
+
+  public final class TvInputManager {
+    method public void createSession(android.content.ComponentName, android.tv.TvInputManager.SessionCreateCallback, android.os.Handler);
+    method public boolean getAvailability(android.content.ComponentName);
+    method public java.util.List<android.tv.TvInputInfo> getTvInputList();
+    method public void registerListener(android.content.ComponentName, android.tv.TvInputManager.TvInputListener, android.os.Handler);
+    method public void unregisterListener(android.content.ComponentName, android.tv.TvInputManager.TvInputListener);
+  }
+
+  public static final class TvInputManager.Session {
+    method public void release();
+    method public void setSurface(android.view.Surface);
+    method public void setVolume(float);
+    method public void tune(android.net.Uri);
+  }
+
+  public static abstract interface TvInputManager.SessionCreateCallback {
+    method public abstract void onSessionCreated(android.tv.TvInputManager.Session);
+  }
+
+  public static abstract class TvInputManager.TvInputListener {
+    ctor public TvInputManager.TvInputListener();
+    method public void onAvailabilityChanged(android.content.ComponentName, boolean);
+  }
+
+  public abstract class TvInputService extends android.app.Service {
+    ctor public TvInputService();
+    method public final android.os.IBinder onBind(android.content.Intent);
+    method public abstract android.tv.TvInputService.TvInputSessionImpl onCreateSession();
+    method public final void setAvailable(boolean);
+    field public static final java.lang.String SERVICE_INTERFACE = "android.tv.TvInputService";
+  }
+
+  public static abstract class TvInputService.TvInputSessionImpl {
+    ctor public TvInputService.TvInputSessionImpl();
+    method public abstract void onRelease();
+    method public abstract boolean onSetSurface(android.view.Surface);
+    method public abstract void onSetVolume(float);
+    method public abstract boolean onTune(android.net.Uri);
   }
 
 }
@@ -27682,9 +28197,9 @@
     field public static final java.lang.String GOOD_IRI_CHAR = "a-zA-Z0-9\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef";
     field public static final java.util.regex.Pattern IP_ADDRESS;
     field public static final java.util.regex.Pattern PHONE;
-    field public static final java.util.regex.Pattern TOP_LEVEL_DOMAIN;
-    field public static final java.lang.String TOP_LEVEL_DOMAIN_STR = "((aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(biz|b[abdefghijmnorstvwyz])|(cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(edu|e[cegrstu])|f[ijkmor]|(gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(info|int|i[delmnoqrst])|(jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(name|net|n[acefgilopruz])|(org|om)|(pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw])";
-    field public static final java.lang.String TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL = "(?:(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(?:biz|b[abdefghijmnorstvwyz])|(?:cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(?:edu|e[cegrstu])|f[ijkmor]|(?:gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(?:info|int|i[delmnoqrst])|(?:jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(?:name|net|n[acefgilopruz])|(?:org|om)|(?:pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(?:tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(?:\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw]))";
+    field public static final deprecated java.util.regex.Pattern TOP_LEVEL_DOMAIN;
+    field public static final deprecated java.lang.String TOP_LEVEL_DOMAIN_STR = "((aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(biz|b[abdefghijmnorstvwyz])|(cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(edu|e[cegrstu])|f[ijkmor]|(gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(info|int|i[delmnoqrst])|(jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(name|net|n[acefgilopruz])|(org|om)|(pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw])";
+    field public static final deprecated java.lang.String TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL = "(?:(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(?:biz|b[abdefghijmnorstvwyz])|(?:cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(?:edu|e[cegrstu])|f[ijkmor]|(?:gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(?:info|int|i[delmnoqrst])|(?:jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(?:name|net|n[acefgilopruz])|(?:org|om)|(?:pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(?:tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(?:\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw]))";
     field public static final java.util.regex.Pattern WEB_URL;
   }
 
@@ -28007,6 +28522,7 @@
     method public float getRefreshRate();
     method public int getRotation();
     method public void getSize(android.graphics.Point);
+    method public int getState();
     method public deprecated int getWidth();
     method public boolean isValid();
     field public static final int DEFAULT_DISPLAY = 0; // 0x0
@@ -28014,6 +28530,10 @@
     field public static final int FLAG_PRIVATE = 4; // 0x4
     field public static final int FLAG_SECURE = 2; // 0x2
     field public static final int FLAG_SUPPORTS_PROTECTED_BUFFERS = 1; // 0x1
+    field public static final int STATE_DOZING = 3; // 0x3
+    field public static final int STATE_OFF = 1; // 0x1
+    field public static final int STATE_ON = 2; // 0x2
+    field public static final int STATE_UNKNOWN = 0; // 0x0
   }
 
   public class DragEvent implements android.os.Parcelable {
@@ -28042,6 +28562,18 @@
     method public static android.view.FocusFinder getInstance();
   }
 
+  public abstract class FrameStats {
+    ctor public FrameStats();
+    method public final long getEndTimeNano();
+    method public final int getFrameCount();
+    method public final long getFramePresentedTimeNano(int);
+    method public final long getRefreshPeriodNano();
+    method public final long getStartTimeNano();
+    field public static final long UNDEFINED_TIME_NANO = -1L; // 0xffffffffffffffffL
+    field protected long[] mFramesPresentedTimeNano;
+    field protected long mRefreshPeriodNano;
+  }
+
   public class GestureDetector {
     ctor public deprecated GestureDetector(android.view.GestureDetector.OnGestureListener, android.os.Handler);
     ctor public deprecated GestureDetector(android.view.GestureDetector.OnGestureListener);
@@ -28157,6 +28689,7 @@
     method public android.os.Vibrator getVibrator();
     method public boolean[] hasKeys(int...);
     method public boolean isVirtual();
+    method public boolean supportsSource(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator CREATOR;
     field public static final int KEYBOARD_TYPE_ALPHABETIC = 2; // 0x2
@@ -28346,7 +28879,7 @@
     field public static final int FLAG_SOFT_KEYBOARD = 2; // 0x2
     field public static final int FLAG_TRACKING = 512; // 0x200
     field public static final int FLAG_VIRTUAL_HARD_KEY = 64; // 0x40
-    field public static final int FLAG_WOKE_HERE = 1; // 0x1
+    field public static final deprecated int FLAG_WOKE_HERE = 1; // 0x1
     field public static final int KEYCODE_0 = 7; // 0x7
     field public static final int KEYCODE_1 = 8; // 0x8
     field public static final int KEYCODE_2 = 9; // 0x9
@@ -29177,6 +29710,7 @@
     method protected int computeVerticalScrollRange();
     method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo();
     method public void createContextMenu(android.view.ContextMenu);
+    method public final android.animation.ValueAnimator createRevealAnimator(int, int, float, float);
     method public void destroyDrawingCache();
     method public android.view.WindowInsets dispatchApplyWindowInsets(android.view.WindowInsets);
     method public void dispatchConfigurationChanged(android.content.res.Configuration);
@@ -30268,6 +30802,8 @@
     method public boolean requestFeature(int);
     method public abstract void restoreHierarchyState(android.os.Bundle);
     method public abstract android.os.Bundle saveHierarchyState();
+    method public void setAllowOverlappingEnterTransition(boolean);
+    method public void setAllowOverlappingExitTransition(boolean);
     method public void setAttributes(android.view.WindowManager.LayoutParams);
     method public abstract void setBackgroundDrawable(android.graphics.drawable.Drawable);
     method public void setBackgroundDrawableResource(int);
@@ -30296,7 +30832,6 @@
     method public abstract void setTitle(java.lang.CharSequence);
     method public abstract deprecated void setTitleColor(int);
     method public void setTransitionManager(android.transition.TransitionManager);
-    method public void setTriggerEarlyEnterTransition(boolean);
     method public void setType(int);
     method public void setUiOptions(int);
     method public void setUiOptions(int, int);
@@ -30363,6 +30898,20 @@
     method public abstract android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
   }
 
+  public final class WindowAnimationFrameStats extends android.view.FrameStats implements android.os.Parcelable {
+    method public int describeContents();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator CREATOR;
+  }
+
+  public final class WindowContentFrameStats extends android.view.FrameStats implements android.os.Parcelable {
+    method public int describeContents();
+    method public long getFramePostedTimeNano(int);
+    method public long getFrameReadyTimeNano(int);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator CREATOR;
+  }
+
   public class WindowId implements android.os.Parcelable {
     method public int describeContents();
     method public boolean isFocused();
@@ -30464,7 +31013,7 @@
     field public static final int FLAG_SHOW_WALLPAPER = 1048576; // 0x100000
     field public static final int FLAG_SHOW_WHEN_LOCKED = 524288; // 0x80000
     field public static final int FLAG_SPLIT_TOUCH = 8388608; // 0x800000
-    field public static final int FLAG_TOUCHABLE_WHEN_WAKING = 64; // 0x40
+    field public static final deprecated int FLAG_TOUCHABLE_WHEN_WAKING = 64; // 0x40
     field public static final int FLAG_TRANSLUCENT_NAVIGATION = 134217728; // 0x8000000
     field public static final int FLAG_TRANSLUCENT_STATUS = 67108864; // 0x4000000
     field public static final int FLAG_TURN_SCREEN_ON = 2097152; // 0x200000
@@ -31656,6 +32205,9 @@
     method public static synchronized android.webkit.CookieSyncManager createInstance(android.content.Context);
     method public static synchronized android.webkit.CookieSyncManager getInstance();
     method protected void syncFromRamToFlash();
+    field protected static final java.lang.String LOGTAG = "websync";
+    field protected android.webkit.WebViewDatabase mDataBase;
+    field protected android.os.Handler mHandler;
   }
 
   public class DateSorter {
@@ -32330,6 +32882,7 @@
     method public android.view.Menu getMenu();
     method public void onConfigurationChanged(android.content.res.Configuration);
     method public void onDetachedFromWindow();
+    method public void setOnMenuItemClickListener(android.widget.ActionMenuView.OnMenuItemClickListener);
   }
 
   public static class ActionMenuView.LayoutParams extends android.widget.LinearLayout.LayoutParams {
@@ -32339,6 +32892,10 @@
     ctor public ActionMenuView.LayoutParams(int, int);
   }
 
+  public static abstract interface ActionMenuView.OnMenuItemClickListener {
+    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  }
+
   public abstract interface Adapter {
     method public abstract int getCount();
     method public abstract java.lang.Object getItem(int);
@@ -34492,6 +35049,50 @@
     method public void setTextOn(java.lang.CharSequence);
   }
 
+  public class Toolbar extends android.view.ViewGroup {
+    ctor public Toolbar(android.content.Context);
+    ctor public Toolbar(android.content.Context, android.util.AttributeSet);
+    ctor public Toolbar(android.content.Context, android.util.AttributeSet, int);
+    ctor public Toolbar(android.content.Context, android.util.AttributeSet, int, int);
+    method public android.graphics.drawable.Drawable getLogo();
+    method public java.lang.CharSequence getLogoDescription();
+    method public android.view.Menu getMenu();
+    method public android.graphics.drawable.Drawable getNavigationIcon();
+    method public java.lang.CharSequence getSubtitle();
+    method public java.lang.CharSequence getTitle();
+    method public void inflateMenu(int);
+    method protected void onLayout(boolean, int, int, int, int);
+    method public void setLogo(int);
+    method public void setLogo(android.graphics.drawable.Drawable);
+    method public void setLogoDescription(int);
+    method public void setLogoDescription(java.lang.CharSequence);
+    method public void setNavigationDescription(int);
+    method public void setNavigationDescription(java.lang.CharSequence);
+    method public void setNavigationIcon(int);
+    method public void setNavigationIcon(android.graphics.drawable.Drawable);
+    method public void setNavigationOnClickListener(android.view.View.OnClickListener);
+    method public void setOnMenuItemClickListener(android.widget.Toolbar.OnMenuItemClickListener);
+    method public void setSubtitle(int);
+    method public void setSubtitle(java.lang.CharSequence);
+    method public void setTitle(int);
+    method public void setTitle(java.lang.CharSequence);
+  }
+
+  public static class Toolbar.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
+    ctor public Toolbar.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public Toolbar.LayoutParams(int, int);
+    ctor public Toolbar.LayoutParams(int, int, int);
+    ctor public Toolbar.LayoutParams(int);
+    ctor public Toolbar.LayoutParams(android.widget.Toolbar.LayoutParams);
+    ctor public Toolbar.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
+    ctor public Toolbar.LayoutParams(android.view.ViewGroup.LayoutParams);
+    field public int gravity;
+  }
+
+  public static abstract interface Toolbar.OnMenuItemClickListener {
+    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  }
+
   public deprecated class TwoLineListItem extends android.widget.RelativeLayout {
     ctor public TwoLineListItem(android.content.Context);
     ctor public TwoLineListItem(android.content.Context, android.util.AttributeSet);
@@ -46624,7 +47225,47 @@
     method public void setMethod(int);
     method public void setSize(long);
     method public void setTime(long);
+    field public static final int CENATT = 36; // 0x24
+    field public static final int CENATX = 38; // 0x26
+    field public static final int CENCOM = 32; // 0x20
+    field public static final int CENCRC = 16; // 0x10
+    field public static final int CENDSK = 34; // 0x22
+    field public static final int CENEXT = 30; // 0x1e
+    field public static final int CENFLG = 8; // 0x8
+    field public static final int CENHDR = 46; // 0x2e
+    field public static final int CENHOW = 10; // 0xa
+    field public static final int CENLEN = 24; // 0x18
+    field public static final int CENNAM = 28; // 0x1c
+    field public static final int CENOFF = 42; // 0x2a
+    field public static final long CENSIG = 33639248L; // 0x2014b50L
+    field public static final int CENSIZ = 20; // 0x14
+    field public static final int CENTIM = 12; // 0xc
+    field public static final int CENVEM = 4; // 0x4
+    field public static final int CENVER = 6; // 0x6
     field public static final int DEFLATED = 8; // 0x8
+    field public static final int ENDCOM = 20; // 0x14
+    field public static final int ENDHDR = 22; // 0x16
+    field public static final int ENDOFF = 16; // 0x10
+    field public static final long ENDSIG = 101010256L; // 0x6054b50L
+    field public static final int ENDSIZ = 12; // 0xc
+    field public static final int ENDSUB = 8; // 0x8
+    field public static final int ENDTOT = 10; // 0xa
+    field public static final int EXTCRC = 4; // 0x4
+    field public static final int EXTHDR = 16; // 0x10
+    field public static final int EXTLEN = 12; // 0xc
+    field public static final long EXTSIG = 134695760L; // 0x8074b50L
+    field public static final int EXTSIZ = 8; // 0x8
+    field public static final int LOCCRC = 14; // 0xe
+    field public static final int LOCEXT = 28; // 0x1c
+    field public static final int LOCFLG = 6; // 0x6
+    field public static final int LOCHDR = 30; // 0x1e
+    field public static final int LOCHOW = 8; // 0x8
+    field public static final int LOCLEN = 22; // 0x16
+    field public static final int LOCNAM = 26; // 0x1a
+    field public static final long LOCSIG = 67324752L; // 0x4034b50L
+    field public static final int LOCSIZ = 18; // 0x12
+    field public static final int LOCTIM = 10; // 0xa
+    field public static final int LOCVER = 4; // 0x4
     field public static final int STORED = 0; // 0x0
   }
 
@@ -46648,6 +47289,46 @@
     method public java.io.InputStream getInputStream(java.util.zip.ZipEntry) throws java.io.IOException;
     method public java.lang.String getName();
     method public int size();
+    field public static final int CENATT = 36; // 0x24
+    field public static final int CENATX = 38; // 0x26
+    field public static final int CENCOM = 32; // 0x20
+    field public static final int CENCRC = 16; // 0x10
+    field public static final int CENDSK = 34; // 0x22
+    field public static final int CENEXT = 30; // 0x1e
+    field public static final int CENFLG = 8; // 0x8
+    field public static final int CENHDR = 46; // 0x2e
+    field public static final int CENHOW = 10; // 0xa
+    field public static final int CENLEN = 24; // 0x18
+    field public static final int CENNAM = 28; // 0x1c
+    field public static final int CENOFF = 42; // 0x2a
+    field public static final long CENSIG = 33639248L; // 0x2014b50L
+    field public static final int CENSIZ = 20; // 0x14
+    field public static final int CENTIM = 12; // 0xc
+    field public static final int CENVEM = 4; // 0x4
+    field public static final int CENVER = 6; // 0x6
+    field public static final int ENDCOM = 20; // 0x14
+    field public static final int ENDHDR = 22; // 0x16
+    field public static final int ENDOFF = 16; // 0x10
+    field public static final long ENDSIG = 101010256L; // 0x6054b50L
+    field public static final int ENDSIZ = 12; // 0xc
+    field public static final int ENDSUB = 8; // 0x8
+    field public static final int ENDTOT = 10; // 0xa
+    field public static final int EXTCRC = 4; // 0x4
+    field public static final int EXTHDR = 16; // 0x10
+    field public static final int EXTLEN = 12; // 0xc
+    field public static final long EXTSIG = 134695760L; // 0x8074b50L
+    field public static final int EXTSIZ = 8; // 0x8
+    field public static final int LOCCRC = 14; // 0xe
+    field public static final int LOCEXT = 28; // 0x1c
+    field public static final int LOCFLG = 6; // 0x6
+    field public static final int LOCHDR = 30; // 0x1e
+    field public static final int LOCHOW = 8; // 0x8
+    field public static final int LOCLEN = 22; // 0x16
+    field public static final int LOCNAM = 26; // 0x1a
+    field public static final long LOCSIG = 67324752L; // 0x4034b50L
+    field public static final int LOCSIZ = 18; // 0x12
+    field public static final int LOCTIM = 10; // 0xa
+    field public static final int LOCVER = 4; // 0x4
     field public static final int OPEN_DELETE = 4; // 0x4
     field public static final int OPEN_READ = 1; // 0x1
   }
@@ -46657,6 +47338,46 @@
     method public void closeEntry() throws java.io.IOException;
     method protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
     method public java.util.zip.ZipEntry getNextEntry() throws java.io.IOException;
+    field public static final int CENATT = 36; // 0x24
+    field public static final int CENATX = 38; // 0x26
+    field public static final int CENCOM = 32; // 0x20
+    field public static final int CENCRC = 16; // 0x10
+    field public static final int CENDSK = 34; // 0x22
+    field public static final int CENEXT = 30; // 0x1e
+    field public static final int CENFLG = 8; // 0x8
+    field public static final int CENHDR = 46; // 0x2e
+    field public static final int CENHOW = 10; // 0xa
+    field public static final int CENLEN = 24; // 0x18
+    field public static final int CENNAM = 28; // 0x1c
+    field public static final int CENOFF = 42; // 0x2a
+    field public static final long CENSIG = 33639248L; // 0x2014b50L
+    field public static final int CENSIZ = 20; // 0x14
+    field public static final int CENTIM = 12; // 0xc
+    field public static final int CENVEM = 4; // 0x4
+    field public static final int CENVER = 6; // 0x6
+    field public static final int ENDCOM = 20; // 0x14
+    field public static final int ENDHDR = 22; // 0x16
+    field public static final int ENDOFF = 16; // 0x10
+    field public static final long ENDSIG = 101010256L; // 0x6054b50L
+    field public static final int ENDSIZ = 12; // 0xc
+    field public static final int ENDSUB = 8; // 0x8
+    field public static final int ENDTOT = 10; // 0xa
+    field public static final int EXTCRC = 4; // 0x4
+    field public static final int EXTHDR = 16; // 0x10
+    field public static final int EXTLEN = 12; // 0xc
+    field public static final long EXTSIG = 134695760L; // 0x8074b50L
+    field public static final int EXTSIZ = 8; // 0x8
+    field public static final int LOCCRC = 14; // 0xe
+    field public static final int LOCEXT = 28; // 0x1c
+    field public static final int LOCFLG = 6; // 0x6
+    field public static final int LOCHDR = 30; // 0x1e
+    field public static final int LOCHOW = 8; // 0x8
+    field public static final int LOCLEN = 22; // 0x16
+    field public static final int LOCNAM = 26; // 0x1a
+    field public static final long LOCSIG = 67324752L; // 0x4034b50L
+    field public static final int LOCSIZ = 18; // 0x12
+    field public static final int LOCTIM = 10; // 0xa
+    field public static final int LOCVER = 4; // 0x4
   }
 
   public class ZipOutputStream extends java.util.zip.DeflaterOutputStream {
@@ -46666,7 +47387,47 @@
     method public void setComment(java.lang.String);
     method public void setLevel(int);
     method public void setMethod(int);
+    field public static final int CENATT = 36; // 0x24
+    field public static final int CENATX = 38; // 0x26
+    field public static final int CENCOM = 32; // 0x20
+    field public static final int CENCRC = 16; // 0x10
+    field public static final int CENDSK = 34; // 0x22
+    field public static final int CENEXT = 30; // 0x1e
+    field public static final int CENFLG = 8; // 0x8
+    field public static final int CENHDR = 46; // 0x2e
+    field public static final int CENHOW = 10; // 0xa
+    field public static final int CENLEN = 24; // 0x18
+    field public static final int CENNAM = 28; // 0x1c
+    field public static final int CENOFF = 42; // 0x2a
+    field public static final long CENSIG = 33639248L; // 0x2014b50L
+    field public static final int CENSIZ = 20; // 0x14
+    field public static final int CENTIM = 12; // 0xc
+    field public static final int CENVEM = 4; // 0x4
+    field public static final int CENVER = 6; // 0x6
     field public static final int DEFLATED = 8; // 0x8
+    field public static final int ENDCOM = 20; // 0x14
+    field public static final int ENDHDR = 22; // 0x16
+    field public static final int ENDOFF = 16; // 0x10
+    field public static final long ENDSIG = 101010256L; // 0x6054b50L
+    field public static final int ENDSIZ = 12; // 0xc
+    field public static final int ENDSUB = 8; // 0x8
+    field public static final int ENDTOT = 10; // 0xa
+    field public static final int EXTCRC = 4; // 0x4
+    field public static final int EXTHDR = 16; // 0x10
+    field public static final int EXTLEN = 12; // 0xc
+    field public static final long EXTSIG = 134695760L; // 0x8074b50L
+    field public static final int EXTSIZ = 8; // 0x8
+    field public static final int LOCCRC = 14; // 0xe
+    field public static final int LOCEXT = 28; // 0x1c
+    field public static final int LOCFLG = 6; // 0x6
+    field public static final int LOCHDR = 30; // 0x1e
+    field public static final int LOCHOW = 8; // 0x8
+    field public static final int LOCLEN = 22; // 0x16
+    field public static final int LOCNAM = 26; // 0x1a
+    field public static final long LOCSIG = 67324752L; // 0x4034b50L
+    field public static final int LOCSIZ = 18; // 0x12
+    field public static final int LOCTIM = 10; // 0xa
+    field public static final int LOCVER = 4; // 0x4
     field public static final int STORED = 0; // 0x0
   }
 
diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk
index cb7e1a0..7c25354 100644
--- a/cmds/app_process/Android.mk
+++ b/cmds/app_process/Android.mk
@@ -14,30 +14,11 @@
 	libandroid_runtime
 
 LOCAL_MODULE:= app_process
-LOCAL_32_BIT_ONLY := true
+LOCAL_MULTILIB := both
+LOCAL_MODULE_STEM_32 := app_process
+LOCAL_MODULE_STEM_64 := app_process64
 include $(BUILD_EXECUTABLE)
 
-ifeq ($(TARGET_IS_64_BIT),true)
-
-# 64-bit app_process64
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:= \
-	app_main.cpp
-
-LOCAL_SHARED_LIBRARIES := \
-	libcutils \
-	libutils \
-	liblog \
-	libbinder \
-	libandroid_runtime
-
-LOCAL_MODULE:= app_process64
-LOCAL_NO_2ND_ARCH := true
-include $(BUILD_EXECUTABLE)
-
-endif # TARGET_IS_64_BIT
-
 # Build a variant of app_process binary linked with ASan runtime.
 # ARM-only at the moment.
 ifeq ($(TARGET_ARCH),arm)
diff --git a/cmds/app_process/app_main.cpp b/cmds/app_process/app_main.cpp
index 8d2b739..859d83b 100644
--- a/cmds/app_process/app_main.cpp
+++ b/cmds/app_process/app_main.cpp
@@ -10,8 +10,9 @@
 #include <binder/IPCThreadState.h>
 #include <binder/ProcessState.h>
 #include <utils/Log.h>
-#include <cutils/process_name.h>
 #include <cutils/memory.h>
+#include <cutils/process_name.h>
+#include <cutils/properties.h>
 #include <cutils/trace.h>
 #include <android_runtime/AndroidRuntime.h>
 
@@ -30,31 +31,22 @@
 class AppRuntime : public AndroidRuntime
 {
 public:
-    AppRuntime()
-        : mParentDir(NULL)
-        , mClassName(NULL)
+    AppRuntime(char* argBlockStart, const size_t argBlockLength)
+        : AndroidRuntime(argBlockStart, argBlockLength)
         , mClass(NULL)
-        , mArgC(0)
-        , mArgV(NULL)
     {
     }
 
-#if 0
-    // this appears to be unused
-    const char* getParentDir() const
-    {
-        return mParentDir;
-    }
-#endif
-
-    const char* getClassName() const
-    {
-        return mClassName;
+    void setClassNameAndArgs(const String8& className, int argc, char * const *argv) {
+        mClassName = className;
+        for (int i = 0; i < argc; ++i) {
+             mArgs.add(String8(argv[i]));
+        }
     }
 
     virtual void onVmCreated(JNIEnv* env)
     {
-        if (mClassName == NULL) {
+        if (mClassName.isEmpty()) {
             return; // Zygote. Nothing to do here.
         }
 
@@ -71,10 +63,10 @@
          * executing boot class Java code and thereby deny ourselves access to
          * non-boot classes.
          */
-        char* slashClassName = toSlashClassName(mClassName);
+        char* slashClassName = toSlashClassName(mClassName.string());
         mClass = env->FindClass(slashClassName);
         if (mClass == NULL) {
-            ALOGE("ERROR: could not find class '%s'\n", mClassName);
+            ALOGE("ERROR: could not find class '%s'\n", mClassName.string());
         }
         free(slashClassName);
 
@@ -88,7 +80,7 @@
         proc->startThreadPool();
 
         AndroidRuntime* ar = AndroidRuntime::getRuntime();
-        ar->callMain(mClassName, mClass, mArgC, mArgV);
+        ar->callMain(mClassName, mClass, mArgs);
 
         IPCThreadState::self()->stopProcess();
     }
@@ -105,7 +97,7 @@
 
     virtual void onExit(int code)
     {
-        if (mClassName == NULL) {
+        if (mClassName.isEmpty()) {
             // if zygote
             IPCThreadState::self()->stopProcess();
         }
@@ -114,46 +106,72 @@
     }
 
 
-    const char* mParentDir;
-    const char* mClassName;
+    String8 mClassName;
+    Vector<String8> mArgs;
     jclass mClass;
-    int mArgC;
-    const char* const* mArgV;
 };
 
 }
 
 using namespace android;
 
-/*
- * sets argv0 to as much of newArgv0 as will fit
- */
-static void setArgv0(const char *argv0, const char *newArgv0)
-{
-    strlcpy(const_cast<char *>(argv0), newArgv0, strlen(argv0));
+static size_t computeArgBlockSize(int argc, char* const argv[]) {
+    // TODO: This assumes that all arguments are allocated in
+    // contiguous memory. There isn't any documented guarantee
+    // that this is the case, but this is how the kernel does it
+    // (see fs/exec.c).
+    //
+    // Also note that this is a constant for "normal" android apps.
+    // Since they're forked from zygote, the size of their command line
+    // is the size of the zygote command line.
+    //
+    // We change the process name of the process by over-writing
+    // the start of the argument block (argv[0]) with the new name of
+    // the process, so we'd mysteriously start getting truncated process
+    // names if the zygote command line decreases in size.
+    uintptr_t start = reinterpret_cast<uintptr_t>(argv[0]);
+    uintptr_t end = reinterpret_cast<uintptr_t>(argv[argc - 1]);
+    end += strlen(argv[argc - 1]);
+
+    return (end - start);
 }
 
+#if defined(__LP64__)
+static const char ABI_LIST_PROPERTY[] = "ro.product.cpu.abilist64";
+static const char ZYGOTE_NICE_NAME[] = "zygote64";
+#else
+static const char ABI_LIST_PROPERTY[] = "ro.product.cpu.abilist32";
+static const char ZYGOTE_NICE_NAME[] = "zygote";
+#endif
+
 int main(int argc, char* const argv[])
 {
-    // These are global variables in ProcessState.cpp
-    mArgC = argc;
-    mArgV = argv;
-
-    mArgLen = 0;
-    for (int i=0; i<argc; i++) {
-        mArgLen += strlen(argv[i]) + 1;
-    }
-    mArgLen--;
-
-    AppRuntime runtime;
-    const char* argv0 = argv[0];
-
+    AppRuntime runtime(argv[0], computeArgBlockSize(argc, argv));
     // Process command line arguments
     // ignore argv[0]
     argc--;
     argv++;
 
-    // Everything up to '--' or first non '-' arg goes to the vm
+    // Everything up to '--' or first non '-' arg goes to the vm.
+    //
+    // The first argument after the VM args is the "parent dir", which
+    // is currently unused.
+    //
+    // After the parent dir, we expect one or more the following internal
+    // arguments :
+    //
+    // --zygote : Start in zygote mode
+    // --start-system-server : Start the system server.
+    // --application : Start in application (stand alone, non zygote) mode.
+    // --nice-name : The nice name for this process.
+    //
+    // For non zygote starts, these arguments will be followed by
+    // the main class name. All remaining arguments are passed to
+    // the main method of this class.
+    //
+    // For zygote starts, all remaining arguments are passed to the zygote.
+    // main function.
+
 
     int i = runtime.addVmArguments(argc, argv);
 
@@ -161,45 +179,71 @@
     bool zygote = false;
     bool startSystemServer = false;
     bool application = false;
-    const char* parentDir = NULL;
     const char* niceName = NULL;
-    const char* className = NULL;
+    String8 className;
+
+    ++i;  // Skip unused "parent dir" argument.
     while (i < argc) {
         const char* arg = argv[i++];
-        if (!parentDir) {
-            parentDir = arg;
-        } else if (strcmp(arg, "--zygote") == 0) {
+        if (strcmp(arg, "--zygote") == 0) {
             zygote = true;
-            niceName = "zygote";
+            niceName = ZYGOTE_NICE_NAME;
         } else if (strcmp(arg, "--start-system-server") == 0) {
             startSystemServer = true;
         } else if (strcmp(arg, "--application") == 0) {
             application = true;
         } else if (strncmp(arg, "--nice-name=", 12) == 0) {
             niceName = arg + 12;
+        } else if (strncmp(arg, "--", 2) != 0) {
+            className.setTo(arg);
+            break;
         } else {
-            className = arg;
+            --i;
             break;
         }
     }
 
+    Vector<String8> args;
+    if (!className.isEmpty()) {
+        // We're not in zygote mode, the only argument we need to pass
+        // to RuntimeInit is the application argument.
+        //
+        // The Remainder of args get passed to startup class main(). Make
+        // copies of them before we overwrite them with the process name.
+        args.add(application ? String8("application") : String8("tool"));
+        runtime.setClassNameAndArgs(className, argc - i, argv + i);
+    } else {
+        if (startSystemServer) {
+            args.add(String8("start-system-server"));
+        }
+
+        char prop[PROP_VALUE_MAX];
+        if (property_get(ABI_LIST_PROPERTY, prop, NULL) == 0) {
+            LOG_ALWAYS_FATAL("app_process: Unable to deterimine ABI list from property %s.",
+                ABI_LIST_PROPERTY);
+            return 11;
+        }
+
+        String8 abiFlag("--abi-list=");
+        abiFlag.append(prop);
+        args.add(abiFlag);
+
+        // In zygote mode, pass all remaining arguments to the zygote
+        // main() method.
+        for (; i < argc; ++i) {
+            args.add(String8(argv[i]));
+        }
+    }
+
     if (niceName && *niceName) {
-        setArgv0(argv0, niceName);
+        runtime.setArgv0(niceName);
         set_process_name(niceName);
     }
 
-    runtime.mParentDir = parentDir;
-
     if (zygote) {
-        runtime.start("com.android.internal.os.ZygoteInit",
-                startSystemServer ? "start-system-server" : "");
+        runtime.start("com.android.internal.os.ZygoteInit", args);
     } else if (className) {
-        // Remainder of args get passed to startup class main()
-        runtime.mClassName = className;
-        runtime.mArgC = argc - i;
-        runtime.mArgV = argv + i;
-        runtime.start("com.android.internal.os.RuntimeInit",
-                application ? "application" : "tool");
+        runtime.start("com.android.internal.os.RuntimeInit", args);
     } else {
         fprintf(stderr, "Error: no class name or --zygote supplied.\n");
         app_usage();
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java
index 466dcd4..948c9a2 100644
--- a/cmds/content/src/com/android/commands/content/Content.java
+++ b/cmds/content/src/com/android/commands/content/Content.java
@@ -26,9 +26,17 @@
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.os.ParcelFileDescriptor;
 import android.os.UserHandle;
 import android.text.TextUtils;
 
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import libcore.io.IoUtils;
+
 /**
  * This class is a command line utility for manipulating content. A client
  * can insert, update, and remove records in a content provider. For example,
@@ -109,6 +117,12 @@
         + "  <METHOD> is the name of a provider-defined method\n"
         + "  <ARG> is an optional string argument\n"
         + "  <BINDING> is like --bind above, typed data of the form <KEY>:{b,s,i,l,f,d}:<VAL>\n"
+        + "\n"
+        + "usage: adb shell content read --uri <URI> [--user <USER_ID>]\n"
+        + "  Example:\n"
+        + "  # cat default ringtone to a file, then pull to host\n"
+        + "  adb shell 'content read --uri content://settings/system/ringtone >"
+                + " /mnt/sdcard/tmp.ogg' && adb pull /mnt/sdcard/tmp.ogg\n"
         + "\n";
 
     private static class Parser {
@@ -117,6 +131,7 @@
         private static final String ARGUMENT_UPDATE = "update";
         private static final String ARGUMENT_QUERY = "query";
         private static final String ARGUMENT_CALL = "call";
+        private static final String ARGUMENT_READ = "read";
         private static final String ARGUMENT_WHERE = "--where";
         private static final String ARGUMENT_BIND = "--bind";
         private static final String ARGUMENT_URI = "--uri";
@@ -154,6 +169,8 @@
                     return parseQueryCommand();
                 } else if (ARGUMENT_CALL.equals(operation)) {
                     return parseCallCommand();
+                } else if (ARGUMENT_READ.equals(operation)) {
+                    return parseReadCommand();
                 } else {
                     throw new IllegalArgumentException("Unsupported operation: " + operation);
                 }
@@ -273,6 +290,25 @@
             return new CallCommand(uri, userId, method, arg, values);
         }
 
+        private ReadCommand parseReadCommand() {
+            Uri uri = null;
+            int userId = UserHandle.USER_OWNER;
+            for (String argument; (argument = mTokenizer.nextArg())!= null;) {
+                if (ARGUMENT_URI.equals(argument)) {
+                    uri = Uri.parse(argumentValueRequired(argument));
+                } else if (ARGUMENT_USER.equals(argument)) {
+                    userId = Integer.parseInt(argumentValueRequired(argument));
+                } else {
+                    throw new IllegalArgumentException("Unsupported argument: " + argument);
+                }
+            }
+            if (uri == null) {
+                throw new IllegalArgumentException("Content provider URI not specified."
+                        + " Did you specify --uri argument?");
+            }
+            return new ReadCommand(uri, userId);
+        }
+
         public QueryCommand parseQueryCommand() {
             Uri uri = null;
             int userId = UserHandle.USER_OWNER;
@@ -458,6 +494,31 @@
         }
     }
 
+    private static class ReadCommand extends Command {
+        public ReadCommand(Uri uri, int userId) {
+            super(uri, userId);
+        }
+
+        @Override
+        public void onExecute(IContentProvider provider) throws Exception {
+            final ParcelFileDescriptor fd = provider.openFile(null, mUri, "r", null);
+            copy(new FileInputStream(fd.getFileDescriptor()), System.out);
+        }
+
+        private static void copy(InputStream is, OutputStream os) throws IOException {
+            final byte[] buffer = new byte[8 * 1024];
+            int read;
+            try {
+                while ((read = is.read(buffer)) > -1) {
+                    os.write(buffer, 0, read);
+                }
+            } finally {
+                IoUtils.closeQuietly(is);
+                IoUtils.closeQuietly(os);
+            }
+        }
+    }
+
     private static class QueryCommand extends DeleteCommand {
         final String[] mProjection;
         final String mSortOrder;
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java
index d513a10..5454b46 100644
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -25,7 +25,7 @@
 import android.content.pm.FeatureInfo;
 import android.content.pm.IPackageDataObserver;
 import android.content.pm.IPackageDeleteObserver;
-import android.content.pm.IPackageInstallObserver;
+import android.content.pm.IPackageInstallObserver2;
 import android.content.pm.IPackageManager;
 import android.content.pm.InstrumentationInfo;
 import android.content.pm.PackageInfo;
@@ -39,6 +39,7 @@
 import android.content.res.AssetManager;
 import android.content.res.Resources;
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.IUserManager;
 import android.os.Process;
 import android.os.RemoteException;
@@ -700,14 +701,23 @@
         ActivityManager.dumpPackageStateStatic(FileDescriptor.out, pkg);
     }
 
-    class PackageInstallObserver extends IPackageInstallObserver.Stub {
+    class PackageInstallObserver extends IPackageInstallObserver2.Stub {
         boolean finished;
         int result;
+        String extraPermission;
+        String extraPackage;
 
-        public void packageInstalled(String name, int status) {
+        @Override
+        public void packageInstalled(String name, Bundle extras, int status) {
             synchronized( this) {
                 finished = true;
                 result = status;
+                if (status == PackageManager.INSTALL_FAILED_DUPLICATE_PERMISSION) {
+                    extraPermission = extras.getString(
+                            PackageManager.EXTRA_FAILURE_EXISTING_PERMISSION);
+                    extraPackage = extras.getString(
+                            PackageManager.EXTRA_FAILURE_EXISTING_PACKAGE);
+                }
                 notifyAll();
             }
         }
@@ -717,7 +727,8 @@
      * Converts a failure code into a string by using reflection to find a matching constant
      * in PackageManager.
      */
-    private String installFailureToString(int result) {
+    private String installFailureToString(PackageInstallObserver obs) {
+        final int result = obs.result;
         Field[] fields = PackageManager.class.getFields();
         for (Field f: fields) {
             if (f.getType() == int.class) {
@@ -732,7 +743,16 @@
                         // get the int value and compare it to result.
                         try {
                             if (result == f.getInt(null)) {
-                                return fieldName;
+                                StringBuilder sb = new StringBuilder(64);
+                                sb.append(fieldName);
+                                if (obs.extraPermission != null) {
+                                    sb.append(" perm=");
+                                    sb.append(obs.extraPermission);
+                                }
+                                if (obs.extraPackage != null) {
+                                    sb.append(" pkg=" + obs.extraPackage);
+                                }
+                                return sb.toString();
                             }
                         } catch (IllegalAccessException e) {
                             // this shouldn't happen since we only look for public static fields.
@@ -956,7 +976,7 @@
             VerificationParams verificationParams = new VerificationParams(verificationURI,
                     originatingURI, referrerURI, VerificationParams.NO_UID, null);
 
-            mPm.installPackageWithVerificationAndEncryption(apkURI, obs, installFlags,
+            mPm.installPackageWithVerificationAndEncryptionEtc(apkURI, null, obs, installFlags,
                     installerPackageName, verificationParams, encryptionParams);
 
             synchronized (obs) {
@@ -970,7 +990,7 @@
                     System.out.println("Success");
                 } else {
                     System.err.println("Failure ["
-                            + installFailureToString(obs.result)
+                            + installFailureToString(obs)
                             + "]");
                 }
             }
@@ -1013,18 +1033,18 @@
 
     public void runCreateUser() {
         String name;
-        int relatedUserId = -1;
+        int userId = -1;
         int flags = 0;
         String opt;
         while ((opt = nextOption()) != null) {
-            if ("--relatedTo".equals(opt)) {
+            if ("--profileOf".equals(opt)) {
                 String optionData = nextOptionData();
                 if (optionData == null || !isNumber(optionData)) {
                     System.err.println("Error: no USER_ID specified");
                     showUsage();
                     return;
                 } else {
-                    relatedUserId = Integer.parseInt(optionData);
+                    userId = Integer.parseInt(optionData);
                 }
             } else if ("--managed".equals(opt)) {
                 flags |= UserInfo.FLAG_MANAGED_PROFILE;
@@ -1042,14 +1062,14 @@
         name = arg;
         try {
             UserInfo info = null;
-            if (relatedUserId < 0) {
+            if (userId < 0) {
                 info = mUm.createUser(name, flags);
             } else {
                 if (Process.myUid() != 0) {
                     System.err.println("Error: not running as root.");
                     return;
                 }
-                info = mUm.createRelatedUser(name, flags, relatedUserId);
+                info = mUm.createProfileForUser(name, flags, userId);
             }
             if (info != null) {
                 System.out.println("Success: created user id " + info.id);
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index b01d92c..2620c44 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -526,6 +526,31 @@
     }
 
     /**
+     * Find the view that has the specified focus type. The search is performed
+     * across all windows.
+     * <p>
+     * <strong>Note:</strong> In order to access the windows your service has
+     * to declare the capability to retrieve window content by setting the
+     * {@link android.R.styleable#AccessibilityService_canRetrieveWindowContent}
+     * property in its meta-data. For details refer to {@link #SERVICE_META_DATA}.
+     * Also the service has to opt-in to retrieve the interactive windows by
+     * setting the {@link AccessibilityServiceInfo#FLAG_RETRIEVE_INTERACTIVE_WINDOWS}
+     * flag.Otherwise, the search will be performed only in the active window.
+     * </p>
+     *
+     * @param focus The focus to find. One of {@link AccessibilityNodeInfo#FOCUS_INPUT} or
+     *         {@link AccessibilityNodeInfo#FOCUS_ACCESSIBILITY}.
+     * @return The node info of the focused view or null.
+     *
+     * @see AccessibilityNodeInfo#FOCUS_INPUT
+     * @see AccessibilityNodeInfo#FOCUS_ACCESSIBILITY
+     */
+    public AccessibilityNodeInfo findFocus(int focus) {
+        return AccessibilityInteractionClient.getInstance().findFocus(mConnectionId,
+                AccessibilityNodeInfo.ANY_WINDOW_ID, AccessibilityNodeInfo.ROOT_NODE_ID, focus);
+    }
+
+    /**
      * Gets the an {@link AccessibilityServiceInfo} describing this
      * {@link AccessibilityService}. This method is useful if one wants
      * to change some of the dynamically configurable properties at
diff --git a/core/java/android/alsa/AlsaCardsParser.java b/core/java/android/alsa/AlsaCardsParser.java
new file mode 100644
index 0000000..f9af979
--- /dev/null
+++ b/core/java/android/alsa/AlsaCardsParser.java
@@ -0,0 +1,116 @@
+/*
+ * 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.android.alsascan;
+
+import android.util.Slog;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Vector;
+
+/**
+ * @hide Retrieves information from an ALSA "cards" file.
+ */
+public class AlsaCardsParser {
+    private static final String TAG = "AlsaCardsParser";
+
+    private static LineTokenizer tokenizer_ = new LineTokenizer(" :[]");
+
+    public class AlsaCardRecord {
+        public int mCardNum = -1;
+        public String mField1 = "";
+        public String mCardName = "";
+        public String mCardDescription = "";
+
+        public AlsaCardRecord() {}
+
+        public boolean parse(String line, int lineIndex) {
+            int tokenIndex = 0;
+            int delimIndex = 0;
+            if (lineIndex == 0) {
+                // line # (skip)
+                tokenIndex = tokenizer_.nextToken(line, tokenIndex);
+                delimIndex = tokenizer_.nextDelimiter(line, tokenIndex);
+
+                // mField1
+                tokenIndex = tokenizer_.nextToken(line, delimIndex);
+                delimIndex = tokenizer_.nextDelimiter(line, tokenIndex);
+                mField1 = line.substring(tokenIndex, delimIndex);
+
+                // mCardName
+                tokenIndex = tokenizer_.nextToken(line, delimIndex);
+                // delimIndex = tokenizer_.nextDelimiter(line, tokenIndex);
+                mCardName = line.substring(tokenIndex);
+                // done
+              } else if (lineIndex == 1) {
+                  tokenIndex = tokenizer_.nextToken(line, 0);
+                  if (tokenIndex != -1) {
+                      mCardDescription = line.substring(tokenIndex);
+                  }
+            }
+
+            return true;
+        }
+
+        public String textFormat() {
+          return mCardName + " : " + mCardDescription;
+        }
+    }
+
+    private Vector<AlsaCardRecord> cardRecords_ = new Vector<AlsaCardRecord>();
+
+    public void scan() {
+          cardRecords_.clear();
+          final String cardsFilePath = "/proc/asound/cards";
+          File cardsFile = new File(cardsFilePath);
+          try {
+              FileReader reader = new FileReader(cardsFile);
+              BufferedReader bufferedReader = new BufferedReader(reader);
+              String line = "";
+              while ((line = bufferedReader.readLine()) != null) {
+                  AlsaCardRecord cardRecord = new AlsaCardRecord();
+                  cardRecord.parse(line, 0);
+                  cardRecord.parse(line = bufferedReader.readLine(), 1);
+                  cardRecords_.add(cardRecord);
+              }
+              reader.close();
+          } catch (FileNotFoundException e) {
+              e.printStackTrace();
+          } catch (IOException e) {
+              e.printStackTrace();
+          }
+      }
+
+      public AlsaCardRecord getCardRecordAt(int index) {
+          return cardRecords_.get(index);
+      }
+
+      public int getNumCardRecords() {
+          return cardRecords_.size();
+      }
+
+    public void Log() {
+      int numCardRecs = getNumCardRecords();
+      for (int index = 0; index < numCardRecs; ++index) {
+          Slog.w(TAG, "usb:" + getCardRecordAt(index).textFormat());
+      }
+    }
+
+    public AlsaCardsParser() {}
+}
diff --git a/core/java/android/alsa/AlsaDevicesParser.java b/core/java/android/alsa/AlsaDevicesParser.java
new file mode 100644
index 0000000..094c8a2
--- /dev/null
+++ b/core/java/android/alsa/AlsaDevicesParser.java
@@ -0,0 +1,275 @@
+/*
+ * 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.android.alsascan;
+
+import android.util.Slog;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Vector;
+
+/**
+ * @hide
+ * Retrieves information from an ALSA "devices" file.
+ */
+public class AlsaDevicesParser {
+    private static final String TAG = "AlsaDevicesParser";
+
+    private static final int kIndex_CardDeviceField = 5;
+    private static final int kStartIndex_CardNum = 6;
+    private static final int kEndIndex_CardNum = 8; // one past
+    private static final int kStartIndex_DeviceNum = 9;
+    private static final int kEndIndex_DeviceNum = 11; // one past
+    private static final int kStartIndex_Type = 14;
+
+    private static LineTokenizer mTokenizer = new LineTokenizer(" :[]-");
+
+    private boolean mHasCaptureDevices = false;
+    private boolean mHasPlaybackDevices = false;
+    private boolean mHasMIDIDevices = false;
+
+    public class AlsaDeviceRecord {
+        public static final int kDeviceType_Unknown = -1;
+        public static final int kDeviceType_Audio = 0;
+        public static final int kDeviceType_Control = 1;
+        public static final int kDeviceType_MIDI = 2;
+
+        public static final int kDeviceDir_Unknown = -1;
+        public static final int kDeviceDir_Capture = 0;
+        public static final int kDeviceDir_Playback = 1;
+
+        int mCardNum = -1;
+        int mDeviceNum = -1;
+        int mDeviceType = kDeviceType_Unknown;
+        int mDeviceDir = kDeviceDir_Unknown;
+
+        public AlsaDeviceRecord() {
+        }
+
+        public boolean parse(String line) {
+            // "0123456789012345678901234567890"
+            // "  2: [ 0-31]: digital audio playback"
+            // "  3: [ 0-30]: digital audio capture"
+            // " 35: [ 1]   : control"
+            // " 36: [ 2- 0]: raw midi"
+
+            final int kToken_LineNum = 0;
+            final int kToken_CardNum = 1;
+            final int kToken_DeviceNum = 2;
+            final int kToken_Type0 = 3; // "digital", "control", "raw"
+            final int kToken_Type1 = 4; // "audio", "midi"
+            final int kToken_Type2 = 5; // "capture", "playback"
+
+            int tokenOffset = 0;
+            int delimOffset = 0;
+            int tokenIndex = kToken_LineNum;
+            while (true) {
+                tokenOffset = mTokenizer.nextToken(line, delimOffset);
+                if (tokenOffset == LineTokenizer.kTokenNotFound) {
+                    break; // bail
+                }
+                delimOffset = mTokenizer.nextDelimiter(line, tokenOffset);
+                if (delimOffset == LineTokenizer.kTokenNotFound) {
+                    delimOffset = line.length();
+                }
+                String token = line.substring(tokenOffset, delimOffset);
+
+                switch (tokenIndex) {
+                case kToken_LineNum:
+                    // ignore
+                    break;
+
+                case kToken_CardNum:
+                    mCardNum = Integer.parseInt(token);
+                    if (line.charAt(delimOffset) != '-') {
+                        tokenIndex++; // no device # in the token stream
+                    }
+                    break;
+
+                case kToken_DeviceNum:
+                    mDeviceNum = Integer.parseInt(token);
+                    break;
+
+                case kToken_Type0:
+                    if (token.equals("digital")) {
+                        // NOP
+                    } else if (token.equals("control")) {
+                        mDeviceType = kDeviceType_Control;
+                    } else if (token.equals("raw")) {
+                        // NOP
+                    }
+                    break;
+
+                case kToken_Type1:
+                    if (token.equals("audio")) {
+                        mDeviceType = kDeviceType_Audio;
+                    } else if (token.equals("midi")) {
+                        mDeviceType = kDeviceType_MIDI;
+                        mHasMIDIDevices = true;
+                    }
+                    break;
+
+                case kToken_Type2:
+                    if (token.equals("capture")) {
+                        mDeviceDir = kDeviceDir_Capture;
+                        mHasCaptureDevices = true;
+                    } else if (token.equals("playback")) {
+                        mDeviceDir = kDeviceDir_Playback;
+                        mHasPlaybackDevices = true;
+                    }
+                    break;
+                } // switch (tokenIndex)
+
+                tokenIndex++;
+            } // while (true)
+
+            return true;
+        } // parse()
+
+        public String textFormat() {
+            StringBuilder sb = new StringBuilder();
+            sb.append("[" + mCardNum + ":" + mDeviceNum + "]");
+
+            switch (mDeviceType) {
+            case kDeviceType_Unknown:
+                sb.append(" N/A");
+                break;
+            case kDeviceType_Audio:
+                sb.append(" Audio");
+                break;
+            case kDeviceType_Control:
+                sb.append(" Control");
+                break;
+            case kDeviceType_MIDI:
+                sb.append(" MIDI");
+                break;
+            }
+
+            switch (mDeviceDir) {
+            case kDeviceDir_Unknown:
+                sb.append(" N/A");
+                break;
+            case kDeviceDir_Capture:
+                sb.append(" Capture");
+                break;
+            case kDeviceDir_Playback:
+                sb.append(" Playback");
+                break;
+            }
+
+            return sb.toString();
+        }
+    }
+
+    private Vector<AlsaDeviceRecord>
+            deviceRecords_ = new Vector<AlsaDeviceRecord>();
+
+    private boolean isLineDeviceRecord(String line) {
+        return line.charAt(kIndex_CardDeviceField) == '[';
+    }
+
+    public AlsaDevicesParser() {
+    }
+
+    public int getNumDeviceRecords() {
+        return deviceRecords_.size();
+    }
+
+    public AlsaDeviceRecord getDeviceRecordAt(int index) {
+        return deviceRecords_.get(index);
+    }
+
+    public void Log() {
+        int numDevRecs = getNumDeviceRecords();
+        for (int index = 0; index < numDevRecs; ++index) {
+            Slog.w(TAG, "usb:" + getDeviceRecordAt(index).textFormat());
+        }
+    }
+
+    public boolean hasPlaybackDevices() {
+        return mHasPlaybackDevices;
+    }
+
+    public boolean hasPlaybackDevices(int card) {
+        for (int index = 0; index < deviceRecords_.size(); index++) {
+            AlsaDeviceRecord deviceRecord = deviceRecords_.get(index);
+            if (deviceRecord.mCardNum == card &&
+                deviceRecord.mDeviceType == AlsaDeviceRecord.kDeviceType_Audio &&
+                deviceRecord.mDeviceDir == AlsaDeviceRecord.kDeviceDir_Playback) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean hasCaptureDevices() {
+        return mHasCaptureDevices;
+    }
+
+    public boolean hasCaptureDevices(int card) {
+        for (int index = 0; index < deviceRecords_.size(); index++) {
+            AlsaDeviceRecord deviceRecord = deviceRecords_.get(index);
+            if (deviceRecord.mCardNum == card &&
+                deviceRecord.mDeviceType == AlsaDeviceRecord.kDeviceType_Audio &&
+                deviceRecord.mDeviceDir == AlsaDeviceRecord.kDeviceDir_Capture) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean hasMIDIDevices() {
+        return mHasMIDIDevices;
+    }
+
+    public boolean hasMIDIDevices(int card) {
+        for (int index = 0; index < deviceRecords_.size(); index++) {
+            AlsaDeviceRecord deviceRecord = deviceRecords_.get(index);
+            if (deviceRecord.mCardNum == card &&
+                deviceRecord.mDeviceType == AlsaDeviceRecord.kDeviceType_MIDI) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public void scan() {
+        deviceRecords_.clear();
+
+        final String devicesFilePath = "/proc/asound/devices";
+        File devicesFile = new File(devicesFilePath);
+        try {
+            FileReader reader = new FileReader(devicesFile);
+            BufferedReader bufferedReader = new BufferedReader(reader);
+            String line = "";
+            while ((line = bufferedReader.readLine()) != null) {
+                if (isLineDeviceRecord(line)) {
+                    AlsaDeviceRecord deviceRecord = new AlsaDeviceRecord();
+                    deviceRecord.parse(line);
+                    deviceRecords_.add(deviceRecord);
+                }
+            }
+            reader.close();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+} // class AlsaDevicesParser
+
diff --git a/core/java/android/alsa/LineTokenizer.java b/core/java/android/alsa/LineTokenizer.java
new file mode 100644
index 0000000..c138fc5
--- /dev/null
+++ b/core/java/android/alsa/LineTokenizer.java
@@ -0,0 +1,57 @@
+/*
+ * 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.android.alsascan;
+
+/**
+ * @hide
+ * Breaks lines in an ALSA "cards" or "devices" file into tokens.
+ * TODO(pmclean) Look into replacing this with String.split().
+ */
+public class LineTokenizer {
+    public static final int kTokenNotFound = -1;
+
+    private String mDelimiters = "";
+
+    public LineTokenizer(String delimiters) {
+        mDelimiters = delimiters;
+    }
+
+    int nextToken(String line, int startIndex) {
+        int len = line.length();
+        int offset = startIndex;
+        for (; offset < len; offset++) {
+            if (mDelimiters.indexOf(line.charAt(offset)) == -1) {
+                // past a delimiter
+                break;
+            }
+      }
+
+      return offset < len ? offset : kTokenNotFound;
+    }
+
+    int nextDelimiter(String line, int startIndex) {
+        int len = line.length();
+        int offset = startIndex;
+        for (; offset < len; offset++) {
+            if (mDelimiters.indexOf(line.charAt(offset)) != -1) {
+                // past a delimiter
+                break;
+            }
+        }
+
+      return offset < len ? offset : kTokenNotFound;
+    }
+}
diff --git a/core/java/android/animation/RevealAnimator.java b/core/java/android/animation/RevealAnimator.java
new file mode 100644
index 0000000..77a536a
--- /dev/null
+++ b/core/java/android/animation/RevealAnimator.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 android.animation;
+
+import android.view.View;
+
+import java.util.ArrayList;
+
+/**
+ * Reveals a View with an animated clipping circle.
+ * The clipping is implemented efficiently by talking to a private reveal API on View.
+ * This hidden class currently only accessed by the {@link android.view.View}.
+ *
+ * @hide
+ */
+public class RevealAnimator extends ValueAnimator {
+    private final static String LOGTAG = "RevealAnimator";
+    private ValueAnimator.AnimatorListener mListener;
+    private ValueAnimator.AnimatorUpdateListener mUpdateListener;
+    private RevealCircle mReuseRevealCircle = new RevealCircle(0);
+    private RevealAnimator(final View clipView, final int x, final int y,
+            float startRadius, float endRadius, final boolean inverseClip) {
+
+        setObjectValues(new RevealCircle(startRadius), new RevealCircle(endRadius));
+        setEvaluator(new RevealCircleEvaluator(mReuseRevealCircle));
+
+        mUpdateListener = new ValueAnimator.AnimatorUpdateListener() {
+                @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                RevealCircle circle = (RevealCircle) animation.getAnimatedValue();
+                float radius = circle.getRadius();
+                clipView.setRevealClip(true, inverseClip, x, y, radius);
+            }
+        };
+        mListener = new AnimatorListenerAdapter() {
+                @Override
+            public void onAnimationCancel(Animator animation) {
+                clipView.setRevealClip(false, false, 0, 0, 0);
+            }
+
+                @Override
+            public void onAnimationEnd(Animator animation) {
+                clipView.setRevealClip(false, false, 0, 0, 0);
+            }
+        };
+        addUpdateListener(mUpdateListener);
+        addListener(mListener);
+    }
+
+    public static RevealAnimator ofRevealCircle(View clipView, int x, int y,
+            float startRadius, float endRadius, boolean inverseClip) {
+        RevealAnimator anim = new RevealAnimator(clipView, x, y,
+                startRadius, endRadius, inverseClip);
+        return anim;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void removeAllUpdateListeners() {
+        super.removeAllUpdateListeners();
+        addUpdateListener(mUpdateListener);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void removeAllListeners() {
+        super.removeAllListeners();
+        addListener(mListener);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public ArrayList<AnimatorListener> getListeners() {
+        ArrayList<AnimatorListener> allListeners =
+                (ArrayList<AnimatorListener>) super.getListeners().clone();
+        allListeners.remove(mListener);
+        return allListeners;
+    }
+
+    private class RevealCircle {
+        float mRadius;
+
+        public RevealCircle(float radius) {
+            mRadius = radius;
+        }
+
+        public void setRadius(float radius) {
+            mRadius = radius;
+        }
+
+        public float getRadius() {
+            return mRadius;
+        }
+    }
+
+    private class RevealCircleEvaluator implements TypeEvaluator<RevealCircle> {
+
+        private RevealCircle mRevealCircle;
+
+        public RevealCircleEvaluator() {
+        }
+
+        public RevealCircleEvaluator(RevealCircle reuseCircle) {
+            mRevealCircle = reuseCircle;
+        }
+
+        @Override
+        public RevealCircle evaluate(float fraction, RevealCircle startValue,
+                RevealCircle endValue) {
+            float currentRadius = startValue.mRadius
+                    + ((endValue.mRadius - startValue.mRadius) * fraction);
+            if (mRevealCircle == null) {
+                return new RevealCircle(currentRadius);
+            } else {
+                mRevealCircle.setRadius(currentRadius);
+                return mRevealCircle;
+            }
+        }
+    }
+}
diff --git a/core/java/android/annotation/AnimRes.java b/core/java/android/annotation/AnimRes.java
new file mode 100644
index 0000000..56f8acf
--- /dev/null
+++ b/core/java/android/annotation/AnimRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an anim resource reference (e.g. {@link android.R.anim#fade_in}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface AnimRes {
+}
diff --git a/core/java/android/annotation/AnimatorRes.java b/core/java/android/annotation/AnimatorRes.java
new file mode 100644
index 0000000..cd4c189
--- /dev/null
+++ b/core/java/android/annotation/AnimatorRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an animator resource reference (e.g. {@link android.R.animator#fade_in}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface AnimatorRes {
+}
diff --git a/core/java/android/annotation/AnyRes.java b/core/java/android/annotation/AnyRes.java
new file mode 100644
index 0000000..44411a0
--- /dev/null
+++ b/core/java/android/annotation/AnyRes.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a resource reference of any type. If the specific type is known, use
+ * one of the more specific annotations instead, such as {@link StringRes} or
+ * {@link DrawableRes}.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface AnyRes {
+}
diff --git a/core/java/android/annotation/ArrayRes.java b/core/java/android/annotation/ArrayRes.java
new file mode 100644
index 0000000..1407af1
--- /dev/null
+++ b/core/java/android/annotation/ArrayRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an array resource reference (e.g. {@link android.R.array#phoneTypes}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface ArrayRes {
+}
diff --git a/core/java/android/annotation/AttrRes.java b/core/java/android/annotation/AttrRes.java
new file mode 100644
index 0000000..285b80c
--- /dev/null
+++ b/core/java/android/annotation/AttrRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an attribute reference (e.g. {@link android.R.attr#action}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface AttrRes {
+}
diff --git a/core/java/android/annotation/BoolRes.java b/core/java/android/annotation/BoolRes.java
new file mode 100644
index 0000000..f50785b
--- /dev/null
+++ b/core/java/android/annotation/BoolRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a boolean resource reference.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface BoolRes {
+}
diff --git a/core/java/android/annotation/ColorRes.java b/core/java/android/annotation/ColorRes.java
new file mode 100644
index 0000000..061faa0
--- /dev/null
+++ b/core/java/android/annotation/ColorRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a color resource reference (e.g. {@link android.R.color#black}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface ColorRes {
+}
diff --git a/core/java/android/annotation/DimenRes.java b/core/java/android/annotation/DimenRes.java
new file mode 100644
index 0000000..02ae00c
--- /dev/null
+++ b/core/java/android/annotation/DimenRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a dimension resource reference (e.g. {@link android.R.dimen#app_icon_size}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface DimenRes {
+}
diff --git a/core/java/android/annotation/DrawableRes.java b/core/java/android/annotation/DrawableRes.java
new file mode 100644
index 0000000..ebefa1d
--- /dev/null
+++ b/core/java/android/annotation/DrawableRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a drawable resource reference (e.g. {@link android.R.attr#alertDialogIcon}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface DrawableRes {
+}
diff --git a/core/java/android/annotation/FractionRes.java b/core/java/android/annotation/FractionRes.java
new file mode 100644
index 0000000..fd84d3e
--- /dev/null
+++ b/core/java/android/annotation/FractionRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a fraction resource reference.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface FractionRes {
+}
diff --git a/core/java/android/annotation/IdRes.java b/core/java/android/annotation/IdRes.java
new file mode 100644
index 0000000..b286965
--- /dev/null
+++ b/core/java/android/annotation/IdRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an id resource reference (e.g. {@link android.R.id#copy}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface IdRes {
+}
diff --git a/core/java/android/annotation/IntegerRes.java b/core/java/android/annotation/IntegerRes.java
new file mode 100644
index 0000000..5313f4a
--- /dev/null
+++ b/core/java/android/annotation/IntegerRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an integer resource reference (e.g. {@link android.R.integer#config_shortAnimTime}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface IntegerRes {
+}
diff --git a/core/java/android/annotation/InterpolatorRes.java b/core/java/android/annotation/InterpolatorRes.java
new file mode 100644
index 0000000..8877a5f
--- /dev/null
+++ b/core/java/android/annotation/InterpolatorRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an interpolator resource reference (e.g. {@link android.R.interpolator#cycle}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface InterpolatorRes {
+}
diff --git a/core/java/android/annotation/LayoutRes.java b/core/java/android/annotation/LayoutRes.java
new file mode 100644
index 0000000..15ba86f
--- /dev/null
+++ b/core/java/android/annotation/LayoutRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a layout resource reference (e.g. {@link android.R.layout#list_content}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface LayoutRes {
+}
diff --git a/core/java/android/annotation/MenuRes.java b/core/java/android/annotation/MenuRes.java
new file mode 100644
index 0000000..b6dcc46
--- /dev/null
+++ b/core/java/android/annotation/MenuRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a menu resource reference.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface MenuRes {
+}
diff --git a/core/java/android/annotation/PluralsRes.java b/core/java/android/annotation/PluralsRes.java
new file mode 100644
index 0000000..31ac729
--- /dev/null
+++ b/core/java/android/annotation/PluralsRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a plurals resource reference.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface PluralsRes {
+}
diff --git a/core/java/android/annotation/RawRes.java b/core/java/android/annotation/RawRes.java
new file mode 100644
index 0000000..39970b3
--- /dev/null
+++ b/core/java/android/annotation/RawRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a raw resource reference.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface RawRes {
+}
diff --git a/core/java/android/annotation/StringRes.java b/core/java/android/annotation/StringRes.java
new file mode 100644
index 0000000..190b68a
--- /dev/null
+++ b/core/java/android/annotation/StringRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be a String resource reference (e.g. {@link android.R.string#ok}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface StringRes {
+}
diff --git a/core/java/android/annotation/StyleRes.java b/core/java/android/annotation/StyleRes.java
new file mode 100644
index 0000000..4453b8d
--- /dev/null
+++ b/core/java/android/annotation/StyleRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that a integer parameter, field or method return value is expected
+ * to be a style resource reference (e.g. {@link android.R.style#TextAppearance}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface StyleRes {
+}
diff --git a/core/java/android/annotation/StyleableRes.java b/core/java/android/annotation/StyleableRes.java
new file mode 100644
index 0000000..3c1895e
--- /dev/null
+++ b/core/java/android/annotation/StyleableRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that a integer parameter, field or method return value is expected
+ * to be a styleable resource reference (e.g. {@link android.R.styleable#TextView_text}).
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface StyleableRes {
+}
diff --git a/core/java/android/annotation/XmlRes.java b/core/java/android/annotation/XmlRes.java
new file mode 100644
index 0000000..5fb8a4a
--- /dev/null
+++ b/core/java/android/annotation/XmlRes.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 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 android.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Denotes that an integer parameter, field or method return value is expected
+ * to be an XML resource reference.
+ *
+ * {@hide}
+ */
+@Documented
+@Retention(SOURCE)
+@Target({METHOD, PARAMETER, FIELD})
+public @interface XmlRes {
+}
diff --git a/core/java/android/app/ActionBar.java b/core/java/android/app/ActionBar.java
index fbe8987..9818c33 100644
--- a/core/java/android/app/ActionBar.java
+++ b/core/java/android/app/ActionBar.java
@@ -20,9 +20,11 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
+import android.view.ActionMode;
 import android.view.Gravity;
 import android.view.View;
 import android.view.ViewDebug;
@@ -30,31 +32,57 @@
 import android.view.ViewGroup.MarginLayoutParams;
 import android.view.Window;
 import android.widget.SpinnerAdapter;
+import android.widget.Toolbar;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Map;
 
 /**
- * A window feature at the top of the activity that may display the activity title, navigation
- * modes, and other interactive items.
+ * A primary toolbar within the activity that may display the activity title, application-level
+ * navigation affordances, and other interactive items.
+ *
  * <p>Beginning with Android 3.0 (API level 11), the action bar appears at the top of an
  * activity's window when the activity uses the system's {@link
  * android.R.style#Theme_Holo Holo} theme (or one of its descendant themes), which is the default.
  * You may otherwise add the action bar by calling {@link
  * android.view.Window#requestFeature requestFeature(FEATURE_ACTION_BAR)} or by declaring it in a
  * custom theme with the {@link android.R.styleable#Theme_windowActionBar windowActionBar} property.
- * <p>By default, the action bar shows the application icon on
+ * </p>
+ *
+ * <p>Beginning with Android L (API level 21), the action bar may be represented by any
+ * Toolbar widget within the application layout. The application may signal to the Activity
+ * which Toolbar should be treated as the Activity's action bar. Activities that use this
+ * feature should use one of the supplied <code>.NoActionBar</code> themes, set the
+ * {@link android.R.styleable#Theme_windowActionBar windowActionBar} attribute to <code>false</code>
+ * or otherwise not request the window feature.</p>
+ *
+ * <p>By adjusting the window features requested by the theme and the layouts used for
+ * an Activity's content view, an app can use the standard system action bar on older platform
+ * releases and the newer inline toolbars on newer platform releases. The <code>ActionBar</code>
+ * object obtained from the Activity can be used to control either configuration transparently.</p>
+ *
+ * <p>When using the Holo themes the action bar shows the application icon on
  * the left, followed by the activity title. If your activity has an options menu, you can make
  * select items accessible directly from the action bar as "action items". You can also
  * modify various characteristics of the action bar or remove it completely.</p>
+ *
+ * <p>When using the Quantum themes (default in API 21 or newer) the navigation button
+ * (formerly "Home") takes over the space previously occupied by the application icon.
+ * Apps wishing to express a stronger branding should use their brand colors heavily
+ * in the action bar and other application chrome or use a {@link #setLogo(int) logo}
+ * in place of their standard title text.</p>
+ *
  * <p>From your activity, you can retrieve an instance of {@link ActionBar} by calling {@link
  * android.app.Activity#getActionBar getActionBar()}.</p>
+ *
  * <p>In some cases, the action bar may be overlayed by another bar that enables contextual actions,
  * using an {@link android.view.ActionMode}. For example, when the user selects one or more items in
  * your activity, you can enable an action mode that offers actions specific to the selected
  * items, with a UI that temporarily replaces the action bar. Although the UI may occupy the
  * same space, the {@link android.view.ActionMode} APIs are distinct and independent from those for
- * {@link ActionBar}.
+ * {@link ActionBar}.</p>
+ *
  * <div class="special reference">
  * <h3>Developer Guides</h3>
  * <p>For information about how to use the action bar, including how to add action items, navigation
@@ -73,6 +101,11 @@
      * and title text with an optional subtitle. Clicking any of these elements
      * will dispatch onOptionsItemSelected to the host Activity with
      * a MenuItem with item ID android.R.id.home.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public static final int NAVIGATION_MODE_STANDARD = 0;
     
@@ -80,12 +113,22 @@
      * List navigation mode. Instead of static title text this mode
      * presents a list menu for navigation within the activity.
      * e.g. this might be presented to the user as a dropdown list.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public static final int NAVIGATION_MODE_LIST = 1;
     
     /**
      * Tab navigation mode. Instead of static title text this mode
      * presents a series of tabs for navigation within the activity.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public static final int NAVIGATION_MODE_TABS = 2;
 
@@ -288,6 +331,11 @@
      *                within the dropdown navigation menu.
      * @param callback An OnNavigationListener that will receive events when the user
      *                 selects a navigation item.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void setListNavigationCallbacks(SpinnerAdapter adapter,
             OnNavigationListener callback);
@@ -296,6 +344,11 @@
      * Set the selected navigation item in list or tabbed navigation modes.
      *
      * @param position Position of the item to select.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void setSelectedNavigationItem(int position);
 
@@ -303,6 +356,11 @@
      * Get the position of the selected navigation item in list or tabbed navigation modes.
      *
      * @return Position of the selected item.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract int getSelectedNavigationIndex();
 
@@ -310,6 +368,11 @@
      * Get the number of navigation items present in the current navigation mode.
      *
      * @return Number of navigation items.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract int getNavigationItemCount();
 
@@ -507,6 +570,11 @@
      * </ul>
      *
      * @return The current navigation mode.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     @NavigationMode
     public abstract int getNavigationMode();
@@ -518,6 +586,11 @@
      * @see #NAVIGATION_MODE_STANDARD
      * @see #NAVIGATION_MODE_LIST
      * @see #NAVIGATION_MODE_TABS
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void setNavigationMode(@NavigationMode int mode);
 
@@ -539,6 +612,11 @@
      * @return A new Tab
      *
      * @see #addTab(Tab)
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract Tab newTab();
 
@@ -547,6 +625,11 @@
      * If this is the first tab to be added it will become the selected tab.
      *
      * @param tab Tab to add
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void addTab(Tab tab);
 
@@ -555,6 +638,11 @@
      *
      * @param tab Tab to add
      * @param setSelected True if the added tab should become the selected tab.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void addTab(Tab tab, boolean setSelected);
 
@@ -565,6 +653,11 @@
      *
      * @param tab The tab to add
      * @param position The new position of the tab
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void addTab(Tab tab, int position);
 
@@ -575,6 +668,11 @@
      * @param tab The tab to add
      * @param position The new position of the tab
      * @param setSelected True if the added tab should become the selected tab.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void addTab(Tab tab, int position, boolean setSelected);
 
@@ -583,6 +681,11 @@
      * and another tab will be selected if present.
      *
      * @param tab The tab to remove
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void removeTab(Tab tab);
 
@@ -591,11 +694,21 @@
      * and another tab will be selected if present.
      *
      * @param position Position of the tab to remove
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void removeTabAt(int position);
 
     /**
      * Remove all tabs from the action bar and deselect the current tab.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void removeAllTabs();
 
@@ -605,6 +718,11 @@
      * <p>Note: If you want to select by index, use {@link #setSelectedNavigationItem(int)}.</p>
      *
      * @param tab Tab to select
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract void selectTab(Tab tab);
 
@@ -613,6 +731,11 @@
      * one tab present.
      *
      * @return The currently selected tab or null
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract Tab getSelectedTab();
 
@@ -621,12 +744,22 @@
      *
      * @param index Index value in the range 0-get
      * @return
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract Tab getTabAt(int index);
 
     /**
      * Returns the number of tabs currently registered with the action bar.
      * @return Tab count
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public abstract int getTabCount();
 
@@ -799,8 +932,38 @@
      */
     public void setHomeActionContentDescription(int resId) { }
 
+    /** @hide */
+    public void setDefaultDisplayHomeAsUpEnabled(boolean enabled) {
+    }
+
+    /** @hide */
+    public void setShowHideAnimationEnabled(boolean enabled) {
+    }
+
+    /** @hide */
+    public void onConfigurationChanged(Configuration config) {
+    }
+
+    /** @hide */
+    public void dispatchMenuVisibilityChanged(boolean visible) {
+    }
+
+    /** @hide */
+    public void captureSharedElements(Map<String, View> sharedElements) {
+    }
+
+    /** @hide */
+    public ActionMode startActionMode(ActionMode.Callback callback) {
+        return null;
+    }
+
     /**
      * Listener interface for ActionBar navigation events.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public interface OnNavigationListener {
         /**
@@ -833,6 +996,11 @@
      * A tab in the action bar.
      *
      * <p>Tabs manage the hiding and showing of {@link Fragment}s.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public static abstract class Tab {
         /**
@@ -984,6 +1152,11 @@
 
     /**
      * Callback interface invoked when a tab is focused, unfocused, added, or removed.
+     *
+     * @deprecated Action bar navigation modes are deprecated and not supported by inline
+     * toolbar action bars. Consider using other
+     * <a href="http://developer.android.com/design/patterns/navigation.html">common
+     * navigation patterns</a> instead.
      */
     public interface TabListener {
         /**
@@ -1025,27 +1198,27 @@
      *
      * @attr ref android.R.styleable#ActionBar_LayoutParams_layout_gravity
      */
-    public static class LayoutParams extends MarginLayoutParams {
+    public static class LayoutParams extends ViewGroup.MarginLayoutParams {
         /**
          * Gravity for the view associated with these LayoutParams.
          *
          * @see android.view.Gravity
          */
         @ViewDebug.ExportedProperty(category = "layout", mapping = {
-            @ViewDebug.IntToString(from =  -1,                       to = "NONE"),
-            @ViewDebug.IntToString(from = Gravity.NO_GRAVITY,        to = "NONE"),
-            @ViewDebug.IntToString(from = Gravity.TOP,               to = "TOP"),
-            @ViewDebug.IntToString(from = Gravity.BOTTOM,            to = "BOTTOM"),
-            @ViewDebug.IntToString(from = Gravity.LEFT,              to = "LEFT"),
-            @ViewDebug.IntToString(from = Gravity.RIGHT,             to = "RIGHT"),
-            @ViewDebug.IntToString(from = Gravity.START,             to = "START"),
-            @ViewDebug.IntToString(from = Gravity.END,               to = "END"),
-            @ViewDebug.IntToString(from = Gravity.CENTER_VERTICAL,   to = "CENTER_VERTICAL"),
-            @ViewDebug.IntToString(from = Gravity.FILL_VERTICAL,     to = "FILL_VERTICAL"),
-            @ViewDebug.IntToString(from = Gravity.CENTER_HORIZONTAL, to = "CENTER_HORIZONTAL"),
-            @ViewDebug.IntToString(from = Gravity.FILL_HORIZONTAL,   to = "FILL_HORIZONTAL"),
-            @ViewDebug.IntToString(from = Gravity.CENTER,            to = "CENTER"),
-            @ViewDebug.IntToString(from = Gravity.FILL,              to = "FILL")
+                @ViewDebug.IntToString(from =  -1,                       to = "NONE"),
+                @ViewDebug.IntToString(from = Gravity.NO_GRAVITY,        to = "NONE"),
+                @ViewDebug.IntToString(from = Gravity.TOP,               to = "TOP"),
+                @ViewDebug.IntToString(from = Gravity.BOTTOM,            to = "BOTTOM"),
+                @ViewDebug.IntToString(from = Gravity.LEFT,              to = "LEFT"),
+                @ViewDebug.IntToString(from = Gravity.RIGHT,             to = "RIGHT"),
+                @ViewDebug.IntToString(from = Gravity.START,             to = "START"),
+                @ViewDebug.IntToString(from = Gravity.END,               to = "END"),
+                @ViewDebug.IntToString(from = Gravity.CENTER_VERTICAL,   to = "CENTER_VERTICAL"),
+                @ViewDebug.IntToString(from = Gravity.FILL_VERTICAL,     to = "FILL_VERTICAL"),
+                @ViewDebug.IntToString(from = Gravity.CENTER_HORIZONTAL, to = "CENTER_HORIZONTAL"),
+                @ViewDebug.IntToString(from = Gravity.FILL_HORIZONTAL,   to = "FILL_HORIZONTAL"),
+                @ViewDebug.IntToString(from = Gravity.CENTER,            to = "CENTER"),
+                @ViewDebug.IntToString(from = Gravity.FILL,              to = "FILL")
         })
         public int gravity = Gravity.NO_GRAVITY;
 
@@ -1062,11 +1235,11 @@
 
         public LayoutParams(int width, int height) {
             super(width, height);
-            this.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
         }
 
         public LayoutParams(int width, int height, int gravity) {
             super(width, height);
+
             this.gravity = gravity;
         }
 
@@ -1076,12 +1249,14 @@
 
         public LayoutParams(LayoutParams source) {
             super(source);
-
-            this.gravity = source.gravity;
         }
 
         public LayoutParams(ViewGroup.LayoutParams source) {
             super(source);
         }
+
+        public LayoutParams(MarginLayoutParams source) {
+            super(source);
+        }
     }
 }
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index e38bbb3..b18eb98 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -21,9 +21,10 @@
 import android.transition.Transition;
 import android.transition.TransitionManager;
 import android.util.ArrayMap;
-import android.util.Pair;
 import android.util.SuperNotCalledException;
-import com.android.internal.app.ActionBarImpl;
+import android.widget.Toolbar;
+import com.android.internal.app.WindowDecorActionBar;
+import com.android.internal.app.ToolbarActionBar;
 import com.android.internal.policy.PolicyManager;
 
 import android.annotation.IntDef;
@@ -723,7 +724,7 @@
     /*package*/ boolean mWindowAdded = false;
     /*package*/ boolean mVisibleFromServer = false;
     /*package*/ boolean mVisibleFromClient = true;
-    /*package*/ ActionBarImpl mActionBar = null;
+    /*package*/ ActionBar mActionBar = null;
     private boolean mEnableDefaultActionBarUp;
 
     private CharSequence mTitle;
@@ -772,7 +773,6 @@
 
     private Thread mUiThread;
     final Handler mHandler = new Handler();
-    private ActivityOptions mTransitionActivityOptions;
 
     /** Return the intent that started this activity. */
     public Intent getIntent() {
@@ -1398,6 +1398,9 @@
     protected void onStop() {
         if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this);
         if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false);
+        if (mWindow != null) {
+            mWindow.restoreViewVisibilityAfterTransitionToCallee();
+        }
         getApplication().dispatchActivityStopped(this);
         mTranslucentCallback = null;
         mCalled = true;
@@ -1906,15 +1909,39 @@
      */
     @Nullable
     public ActionBar getActionBar() {
-        initActionBar();
+        initWindowDecorActionBar();
         return mActionBar;
     }
+
+    /**
+     * Set a {@link android.widget.Toolbar Toolbar} to act as the {@link ActionBar} for this
+     * Activity window.
+     *
+     * <p>When set to a non-null value the {@link #getActionBar()} method will return
+     * an {@link ActionBar} object that can be used to control the given toolbar as if it were
+     * a traditional window decor action bar. The toolbar's menu will be populated with the
+     * Activity's options menu and the navigation button will be wired through the standard
+     * {@link android.R.id#home home} menu select action.</p>
+     *
+     * <p>In order to use a Toolbar within the Activity's window content the application
+     * must not request the window feature {@link Window#FEATURE_ACTION_BAR FEATURE_ACTION_BAR}.</p>
+     *
+     * @param actionBar Toolbar to set as the Activity's action bar
+     */
+    public void setActionBar(@Nullable Toolbar actionBar) {
+        if (getActionBar() instanceof WindowDecorActionBar) {
+            throw new IllegalStateException("This Activity already has an action bar supplied " +
+                    "by the window decor. Do not request Window.FEATURE_ACTION_BAR and set " +
+                    "android:windowActionBar to false in your theme to use a Toolbar instead.");
+        }
+        mActionBar = new ToolbarActionBar(actionBar);
+    }
     
     /**
      * Creates a new ActionBar, locates the inflated ActionBarView,
      * initializes the ActionBar with the view, and sets mActionBar.
      */
-    private void initActionBar() {
+    private void initWindowDecorActionBar() {
         Window window = getWindow();
 
         // Initializing the window decor can change window feature flags.
@@ -1925,7 +1952,7 @@
             return;
         }
 
-        mActionBar = new ActionBarImpl(this);
+        mActionBar = new WindowDecorActionBar(this);
         mActionBar.setDefaultDisplayHomeAsUpEnabled(mEnableDefaultActionBarUp);
 
         mWindow.setDefaultIcon(mActivityInfo.getIconResource());
@@ -1943,7 +1970,7 @@
      */
     public void setContentView(int layoutResID) {
         getWindow().setContentView(layoutResID);
-        initActionBar();
+        initWindowDecorActionBar();
     }
 
     /**
@@ -1963,7 +1990,7 @@
      */
     public void setContentView(View view) {
         getWindow().setContentView(view);
-        initActionBar();
+        initWindowDecorActionBar();
     }
 
     /**
@@ -1979,7 +2006,7 @@
      */
     public void setContentView(View view, ViewGroup.LayoutParams params) {
         getWindow().setContentView(view, params);
-        initActionBar();
+        initWindowDecorActionBar();
     }
 
     /**
@@ -1991,7 +2018,7 @@
      */
     public void addContentView(View view, ViewGroup.LayoutParams params) {
         getWindow().addContentView(view, params);
-        initActionBar();
+        initWindowDecorActionBar();
     }
 
     /**
@@ -2274,7 +2301,7 @@
      */
     public void onBackPressed() {
         if (!mFragments.popBackStackImmediate()) {
-            finish();
+            finishWithTransition();
         }
     }
 
@@ -2636,7 +2663,7 @@
      */
     public boolean onMenuOpened(int featureId, Menu menu) {
         if (featureId == Window.FEATURE_ACTION_BAR) {
-            initActionBar();
+            initWindowDecorActionBar();
             if (mActionBar != null) {
                 mActionBar.dispatchMenuVisibilityChanged(true);
             } else {
@@ -2717,7 +2744,7 @@
                 break;
 
             case Window.FEATURE_ACTION_BAR:
-                initActionBar();
+                initWindowDecorActionBar();
                 mActionBar.dispatchMenuVisibilityChanged(false);
                 break;
         }
@@ -3417,7 +3444,7 @@
     public MenuInflater getMenuInflater() {
         // Make sure that action views can get an appropriate theme.
         if (mMenuInflater == null) {
-            initActionBar();
+            initWindowDecorActionBar();
             if (mActionBar != null) {
                 mMenuInflater = new MenuInflater(mActionBar.getThemedContext(), this);
             } else {
@@ -3457,8 +3484,7 @@
     public void startActivityForResult(Intent intent, int requestCode) {
         Bundle options = null;
         if (mWindow.hasFeature(Window.FEATURE_CONTENT_TRANSITIONS)) {
-            final Pair<View, String>[] noSharedElements = null;
-            options = ActivityOptions.makeSceneTransitionAnimation(noSharedElements).toBundle();
+            options = ActivityOptions.makeSceneTransitionAnimation().toBundle();
         }
         startActivityForResult(intent, requestCode, options);
     }
@@ -3506,7 +3532,7 @@
                     mActionBar.captureSharedElements(sharedElementMap);
                     activityOptions.addSharedElements(sharedElementMap);
                 }
-                options = mWindow.startExitTransition(activityOptions);
+                options = mWindow.startExitTransitionToCallee(options);
             }
         }
         if (mParent == null) {
@@ -4361,6 +4387,23 @@
     }
 
     /**
+     * Reverses the Activity Scene entry Transition and triggers the calling Activity
+     * to reverse its exit Transition. When the exit Transition completes,
+     * {@link #finish()} is called. If no entry Transition was used, finish() is called
+     * immediately and the Activity exit Transition is run.
+     * @see android.view.Window#setTriggerEarlySceneTransition(boolean, boolean)
+     * @see android.app.ActivityOptions#makeSceneTransitionAnimation(android.view.View, String)
+     */
+    public void finishWithTransition() {
+        mWindow.startExitTransitionToCaller(new Runnable() {
+            @Override
+            public void run() {
+                finish();
+            }
+        });
+    }
+
+    /**
      * Force finish another activity that you had previously started with
      * {@link #startActivityForResult}.
      * 
@@ -4701,42 +4744,31 @@
     }
 
     /**
-     * Set a label to be used in the Recents task display. The activities of a task are traversed
-     * in order from the topmost activity to the bottommost. As soon as one activity returns a
-     * non-null Recents label the traversal is ended and that value will be used in
-     * {@link ActivityManager.RecentTaskInfo#activityLabel}
+     * Set a label and icon to be used in the Recents task display. When {@link
+     * ActivityManager#getRecentTasks} is called, the activities of each task are
+     * traversed in order from the topmost activity to the bottommost. As soon as one activity is
+     * found with either a non-null label or a non-null icon set by this call the traversal is
+     * ended. For each task those values will be returned in {@link
+     * ActivityManager.RecentTaskInfo#activityLabel} and {@link
+     * ActivityManager.RecentTaskInfo#activityIcon}.
      *
      * @see ActivityManager#getRecentTasks
+     * @see ActivityManager.RecentTaskInfo
      *
-     * @param recentsLabel The label to use in the RecentTaskInfo.
+     * @param activityLabel The label to use in the RecentTaskInfo.
+     * @param activityIcon The Bitmap to use in the RecentTaskInfo.
      */
-    public void setRecentsLabel(CharSequence recentsLabel) {
-        try {
-            ActivityManagerNative.getDefault().setRecentsLabel(mToken, recentsLabel);
-        } catch (RemoteException e) {
-        }
-    }
-
-    /**
-     * Set an icon to be used in the Recents task display. The activities of a task are traversed
-     * in order from the topmost activity to the bottommost. As soon as one activity returns a
-     * non-null Recents icon the traversal is ended and that value will be used in
-     * {@link ActivityManager.RecentTaskInfo#activityIcon}.
-     *
-     * @see ActivityManager#getRecentTasks
-     *
-     * @param recentsIcon The Bitmap to use in the RecentTaskInfo.
-     */
-    public void setRecentsIcon(Bitmap recentsIcon) {
+    public void setActivityLabelAndIcon(CharSequence activityLabel, Bitmap activityIcon) {
         final Bitmap scaledIcon;
-        if (recentsIcon != null) {
+        if (activityIcon != null) {
             final int size = ActivityManager.getLauncherLargeIconSizeInner(this);
-            scaledIcon = Bitmap.createScaledBitmap(recentsIcon, size, size, true);
+            scaledIcon = Bitmap.createScaledBitmap(activityIcon, size, size, true);
         } else {
             scaledIcon = null;
         }
         try {
-            ActivityManagerNative.getDefault().setRecentsIcon(mToken, scaledIcon);
+            ActivityManagerNative.getDefault().setActivityLabelAndIcon(mToken, activityLabel,
+                    scaledIcon);
         } catch (RemoteException e) {
         }
     }
@@ -5150,7 +5182,7 @@
     @Nullable
     @Override
     public ActionMode onWindowStartingActionMode(ActionMode.Callback callback) {
-        initActionBar();
+        initWindowDecorActionBar();
         if (mActionBar != null) {
             return mActionBar.startActionMode(callback);
         }
@@ -5381,43 +5413,34 @@
         }
         mWindowManager = mWindow.getWindowManager();
         mCurrentConfig = config;
-        mTransitionActivityOptions = null;
-        Window.SceneTransitionListener sceneTransitionListener = null;
-        if (options != null) {
-            ActivityOptions activityOptions = new ActivityOptions(options);
-            if (activityOptions.getAnimationType() == ActivityOptions.ANIM_SCENE_TRANSITION) {
-                mTransitionActivityOptions = activityOptions;
-                sceneTransitionListener = new Window.SceneTransitionListener() {
-                    @Override
-                    public void nullPendingTransition() {
-                        overridePendingTransition(0, 0);
-                    }
-
-                    @Override
-                    public void convertFromTranslucent() {
-                        Activity.this.convertFromTranslucent();
-                    }
-
-                    @Override
-                    public void convertToTranslucent() {
-                        Activity.this.convertToTranslucent(null);
-                    }
-
-                    @Override
-                    public void sharedElementStart(Transition transition) {
-                        Activity.this.onCaptureSharedElementStart(transition);
-                    }
-
-                    @Override
-                    public void sharedElementEnd() {
-                        Activity.this.onCaptureSharedElementEnd();
-                    }
-                };
-
+        Window.SceneTransitionListener sceneTransitionListener
+                = new Window.SceneTransitionListener() {
+            @Override
+            public void nullPendingTransition() {
+                overridePendingTransition(0, 0);
             }
-        }
 
-        mWindow.setTransitionOptions(mTransitionActivityOptions, sceneTransitionListener);
+            @Override
+            public void convertFromTranslucent() {
+                Activity.this.convertFromTranslucent();
+            }
+
+            @Override
+            public void convertToTranslucent() {
+                Activity.this.convertToTranslucent(null);
+            }
+
+            @Override
+            public void sharedElementStart(Transition transition) {
+                Activity.this.onCaptureSharedElementStart(transition);
+            }
+
+            @Override
+            public void sharedElementEnd() {
+                Activity.this.onCaptureSharedElementEnd();
+            }
+        };
+        mWindow.setTransitionOptions(options, sceneTransitionListener);
     }
 
     /** @hide */
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index d386eff..c027e99 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -516,14 +516,14 @@
         public int userId;
 
         /**
-         * The label of the highest activity in the task stack to have set a label
-         * {@link Activity#setRecentsLabel}.
+         * The label of the highest activity in the task stack to have set a label using
+         * {@link Activity#setActivityLabelAndIcon(CharSequence, android.graphics.Bitmap)}.
          */
         public CharSequence activityLabel;
 
         /**
          * The Bitmap icon of the highest activity in the task stack to set a Bitmap using
-         * {@link Activity#setRecentsIcon}.
+         * {@link Activity#setActivityLabelAndIcon(CharSequence, android.graphics.Bitmap)}.
          */
         public Bitmap activityIcon;
 
@@ -563,11 +563,7 @@
         public void readFromParcel(Parcel source) {
             id = source.readInt();
             persistentId = source.readInt();
-            if (source.readInt() != 0) {
-                baseIntent = Intent.CREATOR.createFromParcel(source);
-            } else {
-                baseIntent = null;
-            }
+            baseIntent = source.readInt() > 0 ? Intent.CREATOR.createFromParcel(source) : null;
             origActivity = ComponentName.readFromParcel(source);
             description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
             activityLabel = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
@@ -605,11 +601,11 @@
     public static final int RECENT_IGNORE_UNAVAILABLE = 0x0002;
 
     /**
-     * Provides a list that also contains recent tasks for user
-     * and related users.
+     * Provides a list that contains recent tasks for all
+     * profiles of a user.
      * @hide
      */
-    public static final int RECENT_INCLUDE_RELATED = 0x0004;
+    public static final int RECENT_INCLUDE_PROFILES = 0x0004;
 
     /**
      * Return a list of the tasks that the user has recently launched, with
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
new file mode 100644
index 0000000..5262a5f
--- /dev/null
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -0,0 +1,28 @@
+/*
+ * 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 android.app;
+
+/**
+ * Activity manager local system service interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class ActivityManagerInternal {
+    // Called by the power manager.
+    public abstract void goingToSleep();
+    public abstract void wakingUp();
+}
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 707a038..9f1b56e 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -1208,20 +1208,6 @@
             return true;
         }
 
-        case GOING_TO_SLEEP_TRANSACTION: {
-            data.enforceInterface(IActivityManager.descriptor);
-            goingToSleep();
-            reply.writeNoException();
-            return true;
-        }
-
-        case WAKING_UP_TRANSACTION: {
-            data.enforceInterface(IActivityManager.descriptor);
-            wakingUp();
-            reply.writeNoException();
-            return true;
-        }
-
         case SET_LOCK_SCREEN_SHOWN_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
             setLockScreenShown(data.readInt() != 0);
@@ -1294,17 +1280,6 @@
             return true;
         }
 
-        case START_RUNNING_TRANSACTION: {
-            data.enforceInterface(IActivityManager.descriptor);
-            String pkg = data.readString();
-            String cls = data.readString();
-            String action = data.readString();
-            String indata = data.readString();
-            startRunning(pkg, cls, action, indata);
-            reply.writeNoException();
-            return true;
-        }
-
         case HANDLE_APPLICATION_CRASH_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
             IBinder app = data.readStrongBinder();
@@ -2129,21 +2104,13 @@
             return true;
         }
 
-        case SET_RECENTS_LABEL_TRANSACTION: {
+        case SET_ACTIVITY_LABEL_ICON_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
             IBinder token = data.readStrongBinder();
-            CharSequence recentsLabel = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
-            setRecentsLabel(token, recentsLabel);
-            reply.writeNoException();
-            return true;
-        }
-
-        case SET_RECENTS_ICON_TRANSACTION: {
-            data.enforceInterface(IActivityManager.descriptor);
-            IBinder token = data.readStrongBinder();
-            Bitmap recentsIcon = data.readInt() != 0
+            CharSequence activityLabel = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
+            Bitmap activityIcon = data.readInt() > 0
                     ? Bitmap.CREATOR.createFromParcel(data) : null;
-            setRecentsIcon(token, recentsIcon);
+            setActivityLabelAndIcon(token, activityLabel, activityIcon);
             reply.writeNoException();
             return true;
         }
@@ -3680,26 +3647,6 @@
         reply.recycle();
         return pfd;
     }
-    public void goingToSleep() throws RemoteException
-    {
-        Parcel data = Parcel.obtain();
-        Parcel reply = Parcel.obtain();
-        data.writeInterfaceToken(IActivityManager.descriptor);
-        mRemote.transact(GOING_TO_SLEEP_TRANSACTION, data, reply, 0);
-        reply.readException();
-        data.recycle();
-        reply.recycle();
-    }
-    public void wakingUp() throws RemoteException
-    {
-        Parcel data = Parcel.obtain();
-        Parcel reply = Parcel.obtain();
-        data.writeInterfaceToken(IActivityManager.descriptor);
-        mRemote.transact(WAKING_UP_TRANSACTION, data, reply, 0);
-        reply.readException();
-        data.recycle();
-        reply.recycle();
-    }
     public void setLockScreenShown(boolean shown) throws RemoteException
     {
         Parcel data = Parcel.obtain();
@@ -3790,20 +3737,6 @@
         reply.recycle();
         return res;
     }
-    public void startRunning(String pkg, String cls, String action,
-            String indata) throws RemoteException {
-        Parcel data = Parcel.obtain();
-        Parcel reply = Parcel.obtain();
-        data.writeInterfaceToken(IActivityManager.descriptor);
-        data.writeString(pkg);
-        data.writeString(cls);
-        data.writeString(action);
-        data.writeString(indata);
-        mRemote.transact(START_RUNNING_TRANSACTION, data, reply, 0);
-        reply.readException();
-        data.recycle();
-        reply.recycle();
-    }
     public boolean testIsSystemReady()
     {
         /* this base class version is never called */
@@ -4918,32 +4851,22 @@
         return isInLockTaskMode;
     }
 
-    public void setRecentsLabel(IBinder token, CharSequence recentsLabel) throws RemoteException
+    @Override
+    public void setActivityLabelAndIcon(IBinder token, CharSequence activityLabel,
+            Bitmap activityIcon) throws RemoteException
     {
         Parcel data = Parcel.obtain();
         Parcel reply = Parcel.obtain();
         data.writeInterfaceToken(IActivityManager.descriptor);
         data.writeStrongBinder(token);
-        TextUtils.writeToParcel(recentsLabel, data, 0);
-        mRemote.transact(SET_RECENTS_LABEL_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
-        reply.readException();
-        data.recycle();
-        reply.recycle();
-    }
-
-    public void setRecentsIcon(IBinder token, Bitmap recentsBitmap) throws RemoteException
-    {
-        Parcel data = Parcel.obtain();
-        Parcel reply = Parcel.obtain();
-        data.writeInterfaceToken(IActivityManager.descriptor);
-        data.writeStrongBinder(token);
-        if (recentsBitmap != null) {
+        TextUtils.writeToParcel(activityLabel, data, 0);
+        if (activityIcon != null) {
             data.writeInt(1);
-            recentsBitmap.writeToParcel(data, 0);
+            activityIcon.writeToParcel(data, 0);
         } else {
             data.writeInt(0);
         }
-        mRemote.transact(SET_RECENTS_ICON_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
+        mRemote.transact(SET_ACTIVITY_LABEL_ICON_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
         reply.readException();
         data.recycle();
         reply.recycle();
diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java
index 07247ff..4384580 100644
--- a/core/java/android/app/ActivityOptions.java
+++ b/core/java/android/app/ActivityOptions.java
@@ -20,8 +20,10 @@
 import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.IRemoteCallback;
 import android.os.RemoteException;
+import android.os.ResultReceiver;
 import android.transition.Transition;
 import android.util.Log;
 import android.util.Pair;
@@ -136,6 +138,11 @@
     /** @hide */
     public static final int ANIM_SCENE_TRANSITION = 5;
 
+    private static final int MSG_SET_LISTENER = 100;
+    private static final int MSG_HIDE_SHARED_ELEMENTS = 101;
+    private static final int MSG_PREPARE_RESTORE = 102;
+    private static final int MSG_RESTORE = 103;
+
     private String mPackageName;
     private int mAnimationType = ANIM_NONE;
     private int mCustomEnterResId;
@@ -146,7 +153,7 @@
     private int mStartWidth;
     private int mStartHeight;
     private IRemoteCallback mAnimationStartedListener;
-    private IRemoteCallback mTransitionCompleteListener;
+    private ResultReceiver mTransitionCompleteListener;
     private ArrayList<String> mSharedElementNames;
     private ArrayList<String> mLocalElementNames;
 
@@ -428,8 +435,7 @@
                 break;
 
             case ANIM_SCENE_TRANSITION:
-                mTransitionCompleteListener = IRemoteCallback.Stub.asInterface(
-                        opts.getBinder(KEY_TRANSITION_COMPLETE_LISTENER));
+                mTransitionCompleteListener = opts.getParcelable(KEY_TRANSITION_COMPLETE_LISTENER);
                 mSharedElementNames = opts.getStringArrayList(KEY_SHARED_ELEMENT_NAMES);
                 mLocalElementNames = opts.getStringArrayList(KEY_LOCAL_ELEMENT_NAMES);
                 break;
@@ -495,7 +501,6 @@
     /** @hide */
     public void dispatchSceneTransitionStarted(final ActivityTransitionTarget target,
             ArrayList<String> sharedElementNames) {
-        boolean listenerSent = false;
         if (mTransitionCompleteListener != null) {
             IRemoteCallback callback = new IRemoteCallback.Stub() {
                 @Override
@@ -510,27 +515,28 @@
             Bundle bundle = new Bundle();
             bundle.putBinder(KEY_TRANSITION_TARGET_LISTENER, callback.asBinder());
             bundle.putStringArrayList(KEY_SHARED_ELEMENT_NAMES, sharedElementNames);
-            try {
-                mTransitionCompleteListener.sendResult(bundle);
-                listenerSent = true;
-            } catch (RemoteException e) {
-                Log.w(TAG, "Couldn't retrieve transition notifications", e);
-            }
-        }
-        if (!listenerSent) {
-            target.sharedElementTransitionComplete(null);
-            target.exitTransitionComplete();
+            mTransitionCompleteListener.send(MSG_SET_LISTENER, bundle);
         }
     }
 
     /** @hide */
     public void dispatchSharedElementsReady() {
         if (mTransitionCompleteListener != null) {
-            try {
-                mTransitionCompleteListener.sendResult(null);
-            } catch (RemoteException e) {
-                Log.w(TAG, "Couldn't synchronize shared elements", e);
-            }
+            mTransitionCompleteListener.send(MSG_HIDE_SHARED_ELEMENTS, null);
+        }
+    }
+
+    /** @hide */
+    public void dispatchPrepareRestore() {
+        if (mTransitionCompleteListener != null) {
+            mTransitionCompleteListener.send(MSG_PREPARE_RESTORE, null);
+        }
+    }
+
+    /** @hide */
+    public void dispatchRestore(Bundle sharedElementsArgs) {
+        if (mTransitionCompleteListener != null) {
+            mTransitionCompleteListener.send(MSG_RESTORE, sharedElementsArgs);
         }
     }
 
@@ -658,8 +664,7 @@
             case ANIM_SCENE_TRANSITION:
                 b.putInt(KEY_ANIM_TYPE, mAnimationType);
                 if (mTransitionCompleteListener != null) {
-                    b.putBinder(KEY_TRANSITION_COMPLETE_LISTENER,
-                            mTransitionCompleteListener.asBinder());
+                    b.putParcelable(KEY_TRANSITION_COMPLETE_LISTENER, mTransitionCompleteListener);
                 }
                 b.putStringArrayList(KEY_SHARED_ELEMENT_NAMES, mSharedElementNames);
                 b.putStringArrayList(KEY_LOCAL_ELEMENT_NAMES, mLocalElementNames);
@@ -710,13 +715,13 @@
         Bundle getSharedElementExitState();
         void acceptedSharedElements(ArrayList<String> sharedElementNames);
         void hideSharedElements();
+        void restore(Bundle sharedElementState);
+        void prepareForRestore();
     }
 
-    private static class ExitTransitionListener extends IRemoteCallback.Stub
+    private static class ExitTransitionListener extends ResultReceiver
             implements Transition.TransitionListener {
         private boolean mSharedElementNotified;
-        private Transition mExitTransition;
-        private Transition mSharedElementTransition;
         private IRemoteCallback mTransitionCompleteCallback;
         private boolean mExitComplete;
         private boolean mSharedElementComplete;
@@ -724,25 +729,40 @@
 
         public ExitTransitionListener(Transition exitTransition, Transition sharedElementTransition,
                 SharedElementSource sharedElementSource) {
+            super(null);
             mSharedElementSource = sharedElementSource;
-            mExitTransition = exitTransition;
-            mExitTransition.addListener(this);
-            mSharedElementTransition = sharedElementTransition;
-            mSharedElementTransition.addListener(this);
+            exitTransition.addListener(this);
+            sharedElementTransition.addListener(new Transition.TransitionListenerAdapter() {
+                @Override
+                public void onTransitionEnd(Transition transition) {
+                    mSharedElementComplete = true;
+                    notifySharedElement();
+                    transition.removeListener(this);
+                }
+            });
         }
 
         @Override
-        public void sendResult(Bundle data) throws RemoteException {
-            if (data != null) {
-                mTransitionCompleteCallback = IRemoteCallback.Stub.asInterface(
-                        data.getBinder(KEY_TRANSITION_TARGET_LISTENER));
-                ArrayList<String> sharedElementNames
-                        = data.getStringArrayList(KEY_SHARED_ELEMENT_NAMES);
-                mSharedElementSource.acceptedSharedElements(sharedElementNames);
-                notifySharedElement();
-                notifyExit();
-            } else {
-                mSharedElementSource.hideSharedElements();
+        protected void onReceiveResult(int resultCode, Bundle resultData) {
+            switch (resultCode) {
+                case MSG_SET_LISTENER:
+                    IBinder listener = resultData.getBinder(KEY_TRANSITION_TARGET_LISTENER);
+                    mTransitionCompleteCallback = IRemoteCallback.Stub.asInterface(listener);
+                    ArrayList<String> sharedElementNames
+                            = resultData.getStringArrayList(KEY_SHARED_ELEMENT_NAMES);
+                    mSharedElementSource.acceptedSharedElements(sharedElementNames);
+                    notifySharedElement();
+                    notifyExit();
+                    break;
+                case MSG_HIDE_SHARED_ELEMENTS:
+                    mSharedElementSource.hideSharedElements();
+                    break;
+                case MSG_PREPARE_RESTORE:
+                    mSharedElementSource.prepareForRestore();
+                    break;
+                case MSG_RESTORE:
+                    mSharedElementSource.restore(resultData);
+                    break;
             }
         }
 
@@ -752,15 +772,9 @@
 
         @Override
         public void onTransitionEnd(Transition transition) {
-            if (transition == mExitTransition) {
-                mExitComplete = true;
-                notifyExit();
-                mExitTransition.removeListener(this);
-            } else {
-                mSharedElementComplete = true;
-                notifySharedElement();
-                mSharedElementTransition.removeListener(this);
-            }
+            mExitComplete = true;
+            notifyExit();
+            transition.removeListener(this);
         }
 
         @Override
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 0615bd9..ab62427 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -29,6 +29,7 @@
 import android.content.pm.IPackageDataObserver;
 import android.content.pm.IPackageDeleteObserver;
 import android.content.pm.IPackageInstallObserver;
+import android.content.pm.IPackageInstallObserver2;
 import android.content.pm.IPackageManager;
 import android.content.pm.IPackageMoveObserver;
 import android.content.pm.IPackageStatsObserver;
@@ -127,6 +128,24 @@
     }
 
     @Override
+    public Intent getLeanbackLaunchIntentForPackage(String packageName) {
+        // Try to find a main leanback_launcher activity.
+        Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
+        intentToResolve.addCategory(Intent.CATEGORY_LEANBACK_LAUNCHER);
+        intentToResolve.setPackage(packageName);
+        List<ResolveInfo> ris = queryIntentActivities(intentToResolve, 0);
+
+        if (ris == null || ris.size() <= 0) {
+            return null;
+        }
+        Intent intent = new Intent(intentToResolve);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.setClassName(ris.get(0).activityInfo.packageName,
+                ris.get(0).activityInfo.name);
+        return intent;
+    }
+
+    @Override
     public int[] getPackageGids(String packageName)
             throws NameNotFoundException {
         try {
@@ -1073,7 +1092,7 @@
     public void installPackage(Uri packageURI, IPackageInstallObserver observer, int flags,
                                String installerPackageName) {
         try {
-            mPM.installPackage(packageURI, observer, flags, installerPackageName);
+            mPM.installPackageEtc(packageURI, observer, null, flags, installerPackageName);
         } catch (RemoteException e) {
             // Should never happen!
         }
@@ -1084,8 +1103,8 @@
             int flags, String installerPackageName, Uri verificationURI,
             ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) {
         try {
-            mPM.installPackageWithVerification(packageURI, observer, flags, installerPackageName,
-                    verificationURI, manifestDigest, encryptionParams);
+            mPM.installPackageWithVerificationEtc(packageURI, observer, null, flags,
+                    installerPackageName, verificationURI, manifestDigest, encryptionParams);
         } catch (RemoteException e) {
             // Should never happen!
         }
@@ -1096,8 +1115,46 @@
             IPackageInstallObserver observer, int flags, String installerPackageName,
             VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) {
         try {
-            mPM.installPackageWithVerificationAndEncryption(packageURI, observer, flags,
-                    installerPackageName, verificationParams, encryptionParams);
+            mPM.installPackageWithVerificationAndEncryptionEtc(packageURI, observer, null,
+                    flags, installerPackageName, verificationParams, encryptionParams);
+        } catch (RemoteException e) {
+            // Should never happen!
+        }
+    }
+
+    // Expanded observer-API versions
+    @Override
+    public void installPackage(Uri packageURI, PackageInstallObserver observer,
+            int flags, String installerPackageName) {
+        try {
+            mPM.installPackageEtc(packageURI, null, observer.mObserver,
+                    flags, installerPackageName);
+        } catch (RemoteException e) {
+            // Should never happen!
+        }
+    }
+
+    @Override
+    public void installPackageWithVerification(Uri packageURI,
+            PackageInstallObserver observer, int flags, String installerPackageName,
+            Uri verificationURI, ManifestDigest manifestDigest,
+            ContainerEncryptionParams encryptionParams) {
+        try {
+            mPM.installPackageWithVerificationEtc(packageURI, null, observer.mObserver, flags,
+                    installerPackageName, verificationURI, manifestDigest, encryptionParams);
+        } catch (RemoteException e) {
+            // Should never happen!
+        }
+    }
+
+    @Override
+    public void installPackageWithVerificationAndEncryption(Uri packageURI,
+            PackageInstallObserver observer, int flags, String installerPackageName,
+            VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) {
+        try {
+            mPM.installPackageWithVerificationAndEncryptionEtc(packageURI, null,
+                    observer.mObserver, flags, installerPackageName, verificationParams,
+                    encryptionParams);
         } catch (RemoteException e) {
             // Should never happen!
         }
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 589c82f..f444680 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -36,7 +36,9 @@
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.ILauncherApps;
 import android.content.pm.IPackageManager;
+import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.res.AssetManager;
@@ -75,9 +77,12 @@
 import android.net.nsd.NsdManager;
 import android.net.wifi.IWifiManager;
 import android.net.wifi.WifiManager;
+import android.net.wifi.hotspot.IWifiHotspotManager;
+import android.net.wifi.hotspot.WifiHotspotManager;
 import android.net.wifi.p2p.IWifiP2pManager;
 import android.net.wifi.p2p.WifiP2pManager;
 import android.nfc.NfcManager;
+import android.os.BatteryManager;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Debug;
@@ -101,6 +106,8 @@
 import android.print.IPrintManager;
 import android.print.PrintManager;
 import android.telephony.TelephonyManager;
+import android.tv.ITvInputManager;
+import android.tv.TvInputManager;
 import android.content.ClipboardManager;
 import android.util.AndroidRuntimeException;
 import android.util.ArrayMap;
@@ -117,6 +124,7 @@
 import android.accounts.AccountManager;
 import android.accounts.IAccountManager;
 import android.app.admin.DevicePolicyManager;
+import android.app.trust.TrustManager;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.app.IAppOpsService;
@@ -397,6 +405,11 @@
                     return new DownloadManager(ctx.getContentResolver(), ctx.getPackageName());
                 }});
 
+        registerService(BATTERY_SERVICE, new ServiceFetcher() {
+                public Object createService(ContextImpl ctx) {
+                    return new BatteryManager();
+                }});
+
         registerService(NFC_SERVICE, new ServiceFetcher() {
                 public Object createService(ContextImpl ctx) {
                     return new NfcManager(ctx);
@@ -465,7 +478,8 @@
                                         outerContext.getApplicationInfo().targetSdkVersion,
                                         com.android.internal.R.style.Theme_Dialog,
                                         com.android.internal.R.style.Theme_Holo_Dialog,
-                                        com.android.internal.R.style.Theme_DeviceDefault_Dialog)),
+                                        com.android.internal.R.style.Theme_DeviceDefault_Dialog,
+                                        com.android.internal.R.style.Theme_DeviceDefault_Light_Dialog)),
                         ctx.mMainThread.getHandler());
                 }});
 
@@ -552,6 +566,13 @@
                     return new WifiManager(ctx.getOuterContext(), service);
                 }});
 
+        registerService(WIFI_HOTSPOT_SERVICE, new ServiceFetcher() {
+                public Object createService(ContextImpl ctx) {
+                    IBinder b = ServiceManager.getService(WIFI_HOTSPOT_SERVICE);
+                    IWifiHotspotManager service = IWifiHotspotManager.Stub.asInterface(b);
+                    return new WifiHotspotManager(ctx.getOuterContext(), service);
+                }});
+
         registerService(WIFI_P2P_SERVICE, new ServiceFetcher() {
                 public Object createService(ContextImpl ctx) {
                     IBinder b = ServiceManager.getService(WIFI_P2P_SERVICE);
@@ -594,6 +615,14 @@
             }
         });
 
+        registerService(LAUNCHER_APPS_SERVICE, new ServiceFetcher() {
+            public Object createService(ContextImpl ctx) {
+                IBinder b = ServiceManager.getService(LAUNCHER_APPS_SERVICE);
+                ILauncherApps service = ILauncherApps.Stub.asInterface(b);
+                return new LauncherApps(ctx, service);
+            }
+        });
+
         registerService(PRINT_SERVICE, new ServiceFetcher() {
             public Object createService(ContextImpl ctx) {
                 IBinder iBinder = ServiceManager.getService(Context.PRINT_SERVICE);
@@ -612,6 +641,19 @@
                 return new MediaSessionManager(ctx);
             }
         });
+        registerService(TRUST_SERVICE, new ServiceFetcher() {
+            public Object createService(ContextImpl ctx) {
+                IBinder b = ServiceManager.getService(TRUST_SERVICE);
+                return new TrustManager(b);
+            }
+        });
+
+        registerService(TV_INPUT_SERVICE, new ServiceFetcher() {
+            public Object createService(ContextImpl ctx) {
+                IBinder iBinder = ServiceManager.getService(TV_INPUT_SERVICE);
+                ITvInputManager service = ITvInputManager.Stub.asInterface(iBinder);
+                return new TvInputManager(service, UserHandle.myUserId());
+            }});
     }
 
     static ContextImpl getImpl(Context context) {
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java
index fb96d8d..07583fd 100644
--- a/core/java/android/app/Dialog.java
+++ b/core/java/android/app/Dialog.java
@@ -17,7 +17,7 @@
 package android.app;
 
 import android.content.pm.ApplicationInfo;
-import com.android.internal.app.ActionBarImpl;
+import com.android.internal.app.WindowDecorActionBar;
 import com.android.internal.policy.PolicyManager;
 
 import android.content.ComponentName;
@@ -87,7 +87,7 @@
     final WindowManager mWindowManager;
     Window mWindow;
     View mDecor;
-    private ActionBarImpl mActionBar;
+    private ActionBar mActionBar;
     /**
      * This field should be made private, so it is hidden from the SDK.
      * {@hide}
@@ -280,7 +280,7 @@
             final ApplicationInfo info = mContext.getApplicationInfo();
             mWindow.setDefaultIcon(info.icon);
             mWindow.setDefaultLogo(info.logo);
-            mActionBar = new ActionBarImpl(this);
+            mActionBar = new WindowDecorActionBar(this);
         }
 
         WindowManager.LayoutParams l = mWindow.getAttributes();
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 3b56839..bfbd339 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -229,8 +229,6 @@
     public void forceStopPackage(final String packageName, int userId) throws RemoteException;
     
     // Note: probably don't want to allow applications access to these.
-    public void goingToSleep() throws RemoteException;
-    public void wakingUp() throws RemoteException;
     public void setLockScreenShown(boolean shown) throws RemoteException;
 
     public void unhandledBack() throws RemoteException;
@@ -251,8 +249,6 @@
     public boolean killProcessesBelowForeground(String reason) throws RemoteException;
 
     // Special low-level communication with activity manager.
-    public void startRunning(String pkg, String cls, String action,
-            String data) throws RemoteException;
     public void handleApplicationCrash(IBinder app,
             ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException;
     public boolean handleApplicationWtf(IBinder app, String tag,
@@ -437,10 +433,8 @@
     public boolean isInLockTaskMode() throws RemoteException;
 
     /** @hide */
-    public void setRecentsLabel(IBinder token, CharSequence recentsLabel) throws RemoteException;
-
-    /** @hide */
-    public void setRecentsIcon(IBinder token, Bitmap recentsBitmap) throws RemoteException;
+    public void setActivityLabelAndIcon(IBinder token, CharSequence activityLabel,
+            Bitmap activityBitmap) throws RemoteException;
 
     /*
      * Private non-Binder interfaces
@@ -548,7 +542,6 @@
 
     // Please keep these transaction codes the same -- they are also
     // sent by C++ code.
-    int START_RUNNING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
     int HANDLE_APPLICATION_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+1;
     int START_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+2;
     int UNHANDLED_BACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+3;
@@ -584,8 +577,6 @@
     int UNBIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+36;
     int PUBLISH_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+37;
     int ACTIVITY_RESUMED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+38;
-    int GOING_TO_SLEEP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+39;
-    int WAKING_UP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+40;
     int SET_DEBUG_APP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+41;
     int SET_ALWAYS_FINISH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+42;
     int START_INSTRUMENTATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+43;
@@ -741,6 +732,5 @@
     int START_LOCK_TASK_BY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+214;
     int STOP_LOCK_TASK_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+215;
     int IS_IN_LOCK_TASK_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+216;
-    int SET_RECENTS_LABEL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+217;
-    int SET_RECENTS_ICON_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+218;
+    int SET_ACTIVITY_LABEL_ICON_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+217;
 }
diff --git a/core/java/android/app/IBackupAgent.aidl b/core/java/android/app/IBackupAgent.aidl
index 4ca06ed..7036aea 100644
--- a/core/java/android/app/IBackupAgent.aidl
+++ b/core/java/android/app/IBackupAgent.aidl
@@ -124,4 +124,12 @@
             int type, String domain, String path, long mode, long mtime,
             int token, IBackupManager callbackBinder);
 
+    /**
+     * Out of band: instruct the agent to crash within the client process.  This is used
+     * when the backup infrastructure detects a semantic error post-hoc and needs to
+     * pass the problem back to the app.
+     *
+     * @param message The message to be passed to the agent's application in an exception.
+     */
+    void fail(String message);
 }
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index 9f933ca..9911467 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -45,7 +45,8 @@
     void unregisterListener(in INotificationListener listener, int userid);
 
     void cancelNotificationFromListener(in INotificationListener token, String pkg, String tag, int id);
-    void cancelAllNotificationsFromListener(in INotificationListener token);
+    void cancelNotificationsFromListener(in INotificationListener token, in String[] keys);
 
-    StatusBarNotification[] getActiveNotificationsFromListener(in INotificationListener token);
+    StatusBarNotification[] getActiveNotificationsFromListener(in INotificationListener token, in String[] keys);
+    String[] getActiveNotificationKeysFromListener(in INotificationListener token);
 }
\ No newline at end of file
diff --git a/core/java/android/app/IUiAutomationConnection.aidl b/core/java/android/app/IUiAutomationConnection.aidl
index 09bf829..347de97 100644
--- a/core/java/android/app/IUiAutomationConnection.aidl
+++ b/core/java/android/app/IUiAutomationConnection.aidl
@@ -19,6 +19,8 @@
 import android.accessibilityservice.IAccessibilityServiceClient;
 import android.graphics.Bitmap;
 import android.view.InputEvent;
+import android.view.WindowContentFrameStats;
+import android.view.WindowAnimationFrameStats;
 import android.os.ParcelFileDescriptor;
 
 /**
@@ -26,7 +28,7 @@
  * on behalf of an instrumentation that it runs. These operations require
  * special permissions which the shell user has but the instrumentation does
  * not. Running privileged operations by the shell user on behalf of an
- * instrumentation is needed for running UiTestCases. 
+ * instrumentation is needed for running UiTestCases.
  *
  * {@hide}
  */
@@ -37,4 +39,8 @@
     boolean setRotation(int rotation);
     Bitmap takeScreenshot(int width, int height);
     void shutdown();
+    boolean clearWindowContentFrameStats(int windowId);
+    WindowContentFrameStats getWindowContentFrameStats(int windowId);
+    void clearWindowAnimationFrameStats();
+    WindowAnimationFrameStats getWindowAnimationFrameStats();
 }
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 13e74da..fe629f6 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -17,12 +17,14 @@
 package android.app;
 
 import com.android.internal.R;
+import com.android.internal.util.LegacyNotificationUtil;
 
 import android.annotation.IntDef;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
+import android.graphics.PorterDuff;
 import android.media.AudioManager;
 import android.net.Uri;
 import android.os.BadParcelableException;
@@ -653,13 +655,6 @@
     public static final String EXTRA_AS_HEADS_UP = "headsup";
 
     /**
-     * Extra added from {@link Notification.Builder} to indicate that the remote views were inflated
-     * from the builder, as opposed to being created directly from the application.
-     * @hide
-     */
-    public static final String EXTRA_BUILDER_REMOTE_VIEWS = "android.builderRemoteViews";
-
-    /**
      * Allow certain system-generated notifications to appear before the device is provisioned.
      * Only available to notifications coming from the android package.
      * @hide
@@ -1315,6 +1310,8 @@
         private int mVisibility = VISIBILITY_PRIVATE;
         private Notification mPublicVersion = null;
         private boolean mQuantumTheme;
+        private final LegacyNotificationUtil mLegacyNotificationUtil;
+        private ArrayList<String> mPeople;
 
         /**
          * Constructs a new Builder with the defaults:
@@ -1342,9 +1339,14 @@
             mWhen = System.currentTimeMillis();
             mAudioStreamType = STREAM_DEFAULT;
             mPriority = PRIORITY_DEFAULT;
+            mPeople = new ArrayList<String>();
 
             // TODO: Decide on targetSdk from calling app whether to use quantum theme.
             mQuantumTheme = true;
+
+            // TODO: Decide on targetSdk from calling app whether to instantiate the processor at
+            // all.
+            mLegacyNotificationUtil = LegacyNotificationUtil.getInstance();
         }
 
         /**
@@ -1723,6 +1725,16 @@
         }
 
         /**
+         * Add a person that is relevant to this notification.
+         *
+         * @see Notification#EXTRA_PEOPLE
+         */
+        public Builder addPerson(String handle) {
+            mPeople.add(handle);
+            return this;
+        }
+
+        /**
          * Merge additional metadata into this notification.
          *
          * <p>Values within the Bundle will replace existing extras values in this Builder.
@@ -1846,42 +1858,50 @@
             boolean showLine3 = false;
             boolean showLine2 = false;
             int smallIconImageViewId = R.id.icon;
-            if (mLargeIcon != null) {
-                contentView.setImageViewBitmap(R.id.icon, mLargeIcon);
-                smallIconImageViewId = R.id.right_icon;
-            }
             if (!mQuantumTheme && mPriority < PRIORITY_LOW) {
                 contentView.setInt(R.id.icon,
                         "setBackgroundResource", R.drawable.notification_template_icon_low_bg);
                 contentView.setInt(R.id.status_bar_latest_event_content,
                         "setBackgroundResource", R.drawable.notification_bg_low);
             }
+            if (mLargeIcon != null) {
+                contentView.setImageViewBitmap(R.id.icon, mLargeIcon);
+                processLegacyLargeIcon(mLargeIcon, contentView);
+                smallIconImageViewId = R.id.right_icon;
+            }
             if (mSmallIcon != 0) {
                 contentView.setImageViewResource(smallIconImageViewId, mSmallIcon);
                 contentView.setViewVisibility(smallIconImageViewId, View.VISIBLE);
+                if (mLargeIcon != null) {
+                    processLegacySmallIcon(mSmallIcon, smallIconImageViewId, contentView);
+                } else {
+                    processLegacyLargeIcon(mSmallIcon, contentView);
+                }
+
             } else {
                 contentView.setViewVisibility(smallIconImageViewId, View.GONE);
             }
             if (mContentTitle != null) {
-                contentView.setTextViewText(R.id.title, mContentTitle);
+                contentView.setTextViewText(R.id.title, processLegacyText(mContentTitle));
             }
             if (mContentText != null) {
-                contentView.setTextViewText(R.id.text, mContentText);
+                contentView.setTextViewText(R.id.text, processLegacyText(mContentText));
                 showLine3 = true;
             }
             if (mContentInfo != null) {
-                contentView.setTextViewText(R.id.info, mContentInfo);
+                contentView.setTextViewText(R.id.info, processLegacyText(mContentInfo));
                 contentView.setViewVisibility(R.id.info, View.VISIBLE);
                 showLine3 = true;
             } else if (mNumber > 0) {
                 final int tooBig = mContext.getResources().getInteger(
                         R.integer.status_bar_notification_info_maxnum);
                 if (mNumber > tooBig) {
-                    contentView.setTextViewText(R.id.info, mContext.getResources().getString(
-                                R.string.status_bar_notification_info_overflow));
+                    contentView.setTextViewText(R.id.info, processLegacyText(
+                            mContext.getResources().getString(
+                                    R.string.status_bar_notification_info_overflow)));
                 } else {
                     NumberFormat f = NumberFormat.getIntegerInstance();
-                    contentView.setTextViewText(R.id.info, f.format(mNumber));
+                    contentView.setTextViewText(R.id.info, processLegacyText(f.format(mNumber)));
                 }
                 contentView.setViewVisibility(R.id.info, View.VISIBLE);
                 showLine3 = true;
@@ -1891,9 +1911,9 @@
 
             // Need to show three lines?
             if (mSubText != null) {
-                contentView.setTextViewText(R.id.text, mSubText);
+                contentView.setTextViewText(R.id.text, processLegacyText(mSubText));
                 if (mContentText != null) {
-                    contentView.setTextViewText(R.id.text2, mContentText);
+                    contentView.setTextViewText(R.id.text2, processLegacyText(mContentText));
                     contentView.setViewVisibility(R.id.text2, View.VISIBLE);
                     showLine2 = true;
                 } else {
@@ -2001,15 +2021,78 @@
                     tombstone ? getActionTombstoneLayoutResource()
                               : getActionLayoutResource());
             button.setTextViewCompoundDrawablesRelative(R.id.action0, action.icon, 0, 0, 0);
-            button.setTextViewText(R.id.action0, action.title);
+            button.setTextViewText(R.id.action0, processLegacyText(action.title));
             if (!tombstone) {
                 button.setOnClickPendingIntent(R.id.action0, action.actionIntent);
             }
             button.setContentDescription(R.id.action0, action.title);
+            processLegacyAction(action, button);
             return button;
         }
 
         /**
+         * @return Whether we are currently building a notification from a legacy (an app that
+         *         doesn't create quantum notifications by itself) app.
+         */
+        private boolean isLegacy() {
+            return mLegacyNotificationUtil != null;
+        }
+
+        private void processLegacyAction(Action action, RemoteViews button) {
+            if (isLegacy()) {
+                if (mLegacyNotificationUtil.isGrayscale(mContext, action.icon)) {
+                    button.setTextViewCompoundDrawablesRelativeColorFilter(R.id.action0, 0,
+                            mContext.getResources().getColor(
+                                    R.color.notification_action_legacy_color_filter),
+                            PorterDuff.Mode.MULTIPLY);
+                }
+            }
+        }
+
+        private CharSequence processLegacyText(CharSequence charSequence) {
+            if (isLegacy()) {
+                return mLegacyNotificationUtil.invertCharSequenceColors(charSequence);
+            } else {
+                return charSequence;
+            }
+        }
+
+        private void processLegacyLargeIcon(int largeIconId, RemoteViews contentView) {
+            if (isLegacy()) {
+                processLegacyLargeIcon(
+                        mLegacyNotificationUtil.isGrayscale(mContext, largeIconId),
+                        contentView);
+            }
+        }
+
+        private void processLegacyLargeIcon(Bitmap largeIcon, RemoteViews contentView) {
+            if (isLegacy()) {
+                processLegacyLargeIcon(
+                        mLegacyNotificationUtil.isGrayscale(largeIcon),
+                        contentView);
+            }
+        }
+
+        private void processLegacyLargeIcon(boolean isGrayscale, RemoteViews contentView) {
+            if (isLegacy() && isGrayscale) {
+                contentView.setInt(R.id.icon, "setBackgroundResource",
+                        R.drawable.notification_icon_legacy_bg_inset);
+            }
+        }
+
+        private void processLegacySmallIcon(int smallIconDrawableId, int smallIconImageViewId,
+                RemoteViews contentView) {
+            if (isLegacy()) {
+                if (mLegacyNotificationUtil.isGrayscale(mContext, smallIconDrawableId)) {
+                    contentView.setDrawableParameters(smallIconImageViewId, false, -1,
+                            mContext.getResources().getColor(
+                                    R.color.notification_action_legacy_color_filter),
+                            PorterDuff.Mode.MULTIPLY, -1);
+                }
+            }
+        }
+
+        /**
          * Apply the unstyled operations and return a new {@link Notification} object.
          * @hide
          */
@@ -2075,10 +2158,12 @@
             extras.putBoolean(EXTRA_PROGRESS_INDETERMINATE, mProgressIndeterminate);
             extras.putBoolean(EXTRA_SHOW_CHRONOMETER, mUseChronometer);
             extras.putBoolean(EXTRA_SHOW_WHEN, mShowWhen);
-            extras.putBoolean(EXTRA_BUILDER_REMOTE_VIEWS, mContentView == null);
             if (mLargeIcon != null) {
                 extras.putParcelable(EXTRA_LARGE_ICON, mLargeIcon);
             }
+            if (!mPeople.isEmpty()) {
+                extras.putStringArray(EXTRA_PEOPLE, mPeople.toArray(new String[mPeople.size()]));
+            }
         }
 
         /**
@@ -2226,7 +2311,7 @@
                     mSummaryTextSet ? mSummaryText
                                     : mBuilder.mSubText;
             if (overflowText != null) {
-                contentView.setTextViewText(R.id.text, overflowText);
+                contentView.setTextViewText(R.id.text, mBuilder.processLegacyText(overflowText));
                 contentView.setViewVisibility(R.id.overflow_divider, View.VISIBLE);
                 contentView.setViewVisibility(R.id.line3, View.VISIBLE);
             } else {
@@ -2437,7 +2522,7 @@
                 contentView.setViewPadding(R.id.line1, 0, 0, 0, 0);
             }
 
-            contentView.setTextViewText(R.id.big_text, mBigText);
+            contentView.setTextViewText(R.id.big_text, mBuilder.processLegacyText(mBigText));
             contentView.setViewVisibility(R.id.big_text, View.VISIBLE);
             contentView.setViewVisibility(R.id.text2, View.GONE);
 
@@ -2542,7 +2627,7 @@
                 CharSequence str = mTexts.get(i);
                 if (str != null && !str.equals("")) {
                     contentView.setViewVisibility(rowIds[i], View.VISIBLE);
-                    contentView.setTextViewText(rowIds[i], str);
+                    contentView.setTextViewText(rowIds[i], mBuilder.processLegacyText(str));
                 }
                 i++;
             }
diff --git a/core/java/android/app/PackageInstallObserver.java b/core/java/android/app/PackageInstallObserver.java
new file mode 100644
index 0000000..dacffb4
--- /dev/null
+++ b/core/java/android/app/PackageInstallObserver.java
@@ -0,0 +1,49 @@
+/*
+ * 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 android.app;
+
+import android.content.pm.IPackageInstallObserver2;
+import android.os.Bundle;
+import android.os.RemoteException;
+
+/**
+ * @hide
+ *
+ * New-style observer for package installers to use.
+ */
+public class PackageInstallObserver {
+    IPackageInstallObserver2.Stub mObserver = new IPackageInstallObserver2.Stub() {
+        @Override
+        public void packageInstalled(String pkgName, Bundle extras, int result)
+                throws RemoteException {
+            PackageInstallObserver.this.packageInstalled(pkgName, extras, result);
+        }
+    };
+
+    /**
+     * This method will be called to report the result of the package installation attempt.
+     *
+     * @param pkgName Name of the package whose installation was attempted
+     * @param extras If non-null, this Bundle contains extras providing additional information
+     *        about an install failure.  See {@link android.content.pm.PackageManager} for
+     *        documentation about which extras apply to various failures; in particular the
+     *        strings named EXTRA_FAILURE_*.
+     * @param result The numeric success or failure code indicating the basic outcome
+     */
+    public void packageInstalled(String pkgName, Bundle extras, int result) {
+    }
+}
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index 8efc14f..cf14202 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -121,8 +121,8 @@
      */
     public static final int FLAG_ONE_SHOT = 1<<30;
     /**
-     * Flag indicating that if the described PendingIntent already
-     * exists, then simply return null instead of creating it.
+     * Flag indicating that if the described PendingIntent does not
+     * already exist, then simply return null instead of creating it.
      * For use with {@link #getActivity}, {@link #getBroadcast}, and
      * {@link #getService}.
      */
diff --git a/core/java/android/app/UiAutomation.java b/core/java/android/app/UiAutomation.java
index 354a19f..9405325 100644
--- a/core/java/android/app/UiAutomation.java
+++ b/core/java/android/app/UiAutomation.java
@@ -33,6 +33,8 @@
 import android.view.InputEvent;
 import android.view.KeyEvent;
 import android.view.Surface;
+import android.view.WindowAnimationFrameStats;
+import android.view.WindowContentFrameStats;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityInteractionClient;
 import android.view.accessibility.AccessibilityNodeInfo;
@@ -295,6 +297,28 @@
     }
 
     /**
+     * Find the view that has the specified focus type. The search is performed
+     * across all windows.
+     * <p>
+     * <strong>Note:</strong> In order to access the windows you have to opt-in
+     * to retrieve the interactive windows by setting the
+     * {@link AccessibilityServiceInfo#FLAG_RETRIEVE_INTERACTIVE_WINDOWS} flag.
+     * Otherwise, the search will be performed only in the active window.
+     * </p>
+     *
+     * @param focus The focus to find. One of {@link AccessibilityNodeInfo#FOCUS_INPUT} or
+     *         {@link AccessibilityNodeInfo#FOCUS_ACCESSIBILITY}.
+     * @return The node info of the focused view or null.
+     *
+     * @see AccessibilityNodeInfo#FOCUS_INPUT
+     * @see AccessibilityNodeInfo#FOCUS_ACCESSIBILITY
+     */
+    public AccessibilityNodeInfo findFocus(int focus) {
+        return AccessibilityInteractionClient.getInstance().findFocus(mConnectionId,
+                AccessibilityNodeInfo.ANY_WINDOW_ID, AccessibilityNodeInfo.ROOT_NODE_ID, focus);
+    }
+
+    /**
      * Gets the an {@link AccessibilityServiceInfo} describing this UiAutomation.
      * This method is useful if one wants to change some of the dynamically
      * configurable properties at runtime.
@@ -674,6 +698,148 @@
         }
     }
 
+    /**
+     * Clears the frame statistics for the content of a given window. These
+     * statistics contain information about the most recently rendered content
+     * frames.
+     *
+     * @param windowId The window id.
+     * @return Whether the window is present and its frame statistics
+     *         were cleared.
+     *
+     * @see android.view.WindowContentFrameStats
+     * @see #getWindowContentFrameStats(int)
+     * @see #getWindows()
+     * @see AccessibilityWindowInfo#getId() AccessibilityWindowInfo.getId()
+     */
+    public boolean clearWindowContentFrameStats(int windowId) {
+        synchronized (mLock) {
+            throwIfNotConnectedLocked();
+        }
+        try {
+            if (DEBUG) {
+                Log.i(LOG_TAG, "Clearing content frame stats for window: " + windowId);
+            }
+            // Calling out without a lock held.
+            return mUiAutomationConnection.clearWindowContentFrameStats(windowId);
+        } catch (RemoteException re) {
+            Log.e(LOG_TAG, "Error clearing window content frame stats!", re);
+        }
+        return false;
+    }
+
+    /**
+     * Gets the frame statistics for a given window. These statistics contain
+     * information about the most recently rendered content frames.
+     * <p>
+     * A typical usage requires clearing the window frame statistics via {@link
+     * #clearWindowContentFrameStats(int)} followed by an interaction with the UI and
+     * finally getting the window frame statistics via calling this method.
+     * </p>
+     * <pre>
+     * // Assume we have at least one window.
+     * final int windowId = getWindows().get(0).getId();
+     *
+     * // Start with a clean slate.
+     * uiAutimation.clearWindowContentFrameStats(windowId);
+     *
+     * // Do stuff with the UI.
+     *
+     * // Get the frame statistics.
+     * WindowContentFrameStats stats = uiAutomation.getWindowContentFrameStats(windowId);
+     * </pre>
+     *
+     * @param windowId The window id.
+     * @return The window frame statistics, or null if the window is not present.
+     *
+     * @see android.view.WindowContentFrameStats
+     * @see #clearWindowContentFrameStats(int)
+     * @see #getWindows()
+     * @see AccessibilityWindowInfo#getId() AccessibilityWindowInfo.getId()
+     */
+    public WindowContentFrameStats getWindowContentFrameStats(int windowId) {
+        synchronized (mLock) {
+            throwIfNotConnectedLocked();
+        }
+        try {
+            if (DEBUG) {
+                Log.i(LOG_TAG, "Getting content frame stats for window: " + windowId);
+            }
+            // Calling out without a lock held.
+            return mUiAutomationConnection.getWindowContentFrameStats(windowId);
+        } catch (RemoteException re) {
+            Log.e(LOG_TAG, "Error getting window content frame stats!", re);
+        }
+        return null;
+    }
+
+    /**
+     * Clears the window animation rendering statistics. These statistics contain
+     * information about the most recently rendered window animation frames, i.e.
+     * for window transition animations.
+     *
+     * @see android.view.WindowAnimationFrameStats
+     * @see #getWindowAnimationFrameStats()
+     * @see android.R.styleable#WindowAnimation
+     */
+    public void clearWindowAnimationFrameStats() {
+        synchronized (mLock) {
+            throwIfNotConnectedLocked();
+        }
+        try {
+            if (DEBUG) {
+                Log.i(LOG_TAG, "Clearing window animation frame stats");
+            }
+            // Calling out without a lock held.
+            mUiAutomationConnection.clearWindowAnimationFrameStats();
+        } catch (RemoteException re) {
+            Log.e(LOG_TAG, "Error clearing window animation frame stats!", re);
+        }
+    }
+
+    /**
+     * Gets the window animation frame statistics. These statistics contain
+     * information about the most recently rendered window animation frames, i.e.
+     * for window transition animations.
+     *
+     * <p>
+     * A typical usage requires clearing the window animation frame statistics via
+     * {@link #clearWindowAnimationFrameStats()} followed by an interaction that causes
+     * a window transition which uses a window animation and finally getting the window
+     * animation frame statistics by calling this method.
+     * </p>
+     * <pre>
+     * // Start with a clean slate.
+     * uiAutimation.clearWindowAnimationFrameStats();
+     *
+     * // Do stuff to trigger a window transition.
+     *
+     * // Get the frame statistics.
+     * WindowAnimationFrameStats stats = uiAutomation.getWindowAnimationFrameStats();
+     * </pre>
+     *
+     * @return The window animation frame statistics.
+     *
+     * @see android.view.WindowAnimationFrameStats
+     * @see #clearWindowAnimationFrameStats()
+     * @see android.R.styleable#WindowAnimation
+     */
+    public WindowAnimationFrameStats getWindowAnimationFrameStats() {
+        synchronized (mLock) {
+            throwIfNotConnectedLocked();
+        }
+        try {
+            if (DEBUG) {
+                Log.i(LOG_TAG, "Getting window animation frame stats");
+            }
+            // Calling out without a lock held.
+            return mUiAutomationConnection.getWindowAnimationFrameStats();
+        } catch (RemoteException re) {
+            Log.e(LOG_TAG, "Error getting window animation frame stats!", re);
+        }
+        return null;
+    }
+
     private static float getDegreesForRotation(int value) {
         switch (value) {
             case Surface.ROTATION_90: {
diff --git a/core/java/android/app/UiAutomationConnection.java b/core/java/android/app/UiAutomationConnection.java
index 91b0d7c..fa40286 100644
--- a/core/java/android/app/UiAutomationConnection.java
+++ b/core/java/android/app/UiAutomationConnection.java
@@ -22,12 +22,15 @@
 import android.graphics.Bitmap;
 import android.hardware.input.InputManager;
 import android.os.Binder;
+import android.os.IBinder;
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.view.IWindowManager;
 import android.view.InputEvent;
 import android.view.SurfaceControl;
+import android.view.WindowAnimationFrameStats;
+import android.view.WindowContentFrameStats;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.IAccessibilityManager;
 
@@ -47,6 +50,9 @@
     private final IWindowManager mWindowManager = IWindowManager.Stub.asInterface(
             ServiceManager.getService(Service.WINDOW_SERVICE));
 
+    private final IAccessibilityManager mAccessibilityManager = IAccessibilityManager.Stub.asInterface(
+            ServiceManager.getService(Service.ACCESSIBILITY_SERVICE));
+
     private final Object mLock = new Object();
 
     private final Binder mToken = new Binder();
@@ -144,6 +150,76 @@
     }
 
     @Override
+    public boolean clearWindowContentFrameStats(int windowId) throws RemoteException {
+        synchronized (mLock) {
+            throwIfCalledByNotTrustedUidLocked();
+            throwIfShutdownLocked();
+            throwIfNotConnectedLocked();
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            IBinder token = mAccessibilityManager.getWindowToken(windowId);
+            if (token == null) {
+                return false;
+            }
+            return mWindowManager.clearWindowContentFrameStats(token);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public WindowContentFrameStats getWindowContentFrameStats(int windowId) throws RemoteException {
+        synchronized (mLock) {
+            throwIfCalledByNotTrustedUidLocked();
+            throwIfShutdownLocked();
+            throwIfNotConnectedLocked();
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            IBinder token = mAccessibilityManager.getWindowToken(windowId);
+            if (token == null) {
+                return null;
+            }
+            return mWindowManager.getWindowContentFrameStats(token);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void clearWindowAnimationFrameStats() {
+        synchronized (mLock) {
+            throwIfCalledByNotTrustedUidLocked();
+            throwIfShutdownLocked();
+            throwIfNotConnectedLocked();
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            SurfaceControl.clearAnimationFrameStats();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public WindowAnimationFrameStats getWindowAnimationFrameStats() {
+        synchronized (mLock) {
+            throwIfCalledByNotTrustedUidLocked();
+            throwIfShutdownLocked();
+            throwIfNotConnectedLocked();
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            WindowAnimationFrameStats stats = new WindowAnimationFrameStats();
+            SurfaceControl.getAnimationFrameStats(stats);
+            return stats;
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public void shutdown() {
         synchronized (mLock) {
             if (isConnectedLocked()) {
diff --git a/core/java/android/app/UiModeManager.java b/core/java/android/app/UiModeManager.java
index 0c22740..c6731c9 100644
--- a/core/java/android/app/UiModeManager.java
+++ b/core/java/android/app/UiModeManager.java
@@ -166,9 +166,11 @@
     /**
      * Return the current running mode type.  May be one of
      * {@link Configuration#UI_MODE_TYPE_NORMAL Configuration.UI_MODE_TYPE_NORMAL},
-     * {@link Configuration#UI_MODE_TYPE_DESK Configuration.UI_MODE_TYPE_DESK}, or
-     * {@link Configuration#UI_MODE_TYPE_CAR Configuration.UI_MODE_TYPE_CAR}, or
-     * {@link Configuration#UI_MODE_TYPE_TELEVISION Configuration.UI_MODE_TYPE_APPLIANCE}.
+     * {@link Configuration#UI_MODE_TYPE_DESK Configuration.UI_MODE_TYPE_DESK},
+     * {@link Configuration#UI_MODE_TYPE_CAR Configuration.UI_MODE_TYPE_CAR},
+     * {@link Configuration#UI_MODE_TYPE_TELEVISION Configuration.UI_MODE_TYPE_TELEVISION},
+     * {@link Configuration#UI_MODE_TYPE_APPLIANCE Configuration.UI_MODE_TYPE_APPLIANCE}, or
+     * {@link Configuration#UI_MODE_TYPE_WATCH Configuration.UI_MODE_TYPE_WATCH}.
      */
     public int getCurrentModeType() {
         if (mService != null) {
diff --git a/core/java/android/app/admin/DeviceAdminInfo.java b/core/java/android/app/admin/DeviceAdminInfo.java
index 66fc816..3074b49 100644
--- a/core/java/android/app/admin/DeviceAdminInfo.java
+++ b/core/java/android/app/admin/DeviceAdminInfo.java
@@ -52,6 +52,22 @@
     static final String TAG = "DeviceAdminInfo";
 
     /**
+     * A type of policy that this device admin can use: device owner meta-policy
+     * for an admin that is designated as owner of the device.
+     *
+     * @hide
+     */
+    public static final int USES_POLICY_DEVICE_OWNER = -2;
+
+    /**
+     * A type of policy that this device admin can use: profile owner meta-policy
+     * for admins that have been installed as owner of some user profile.
+     *
+     * @hide
+     */
+    public static final int USES_POLICY_PROFILE_OWNER = -1;
+
+    /**
      * A type of policy that this device admin can use: limit the passwords
      * that the user can select, via {@link DevicePolicyManager#setPasswordQuality}
      * and {@link DevicePolicyManager#setPasswordMinimumLength}.
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 30c84f6..725f808 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -1534,10 +1534,10 @@
     /**
      * @hide
      */
-    public void setActiveAdmin(ComponentName policyReceiver, boolean refreshing) {
+    public void setActiveAdmin(ComponentName policyReceiver, boolean refreshing, int userHandle) {
         if (mService != null) {
             try {
-                mService.setActiveAdmin(policyReceiver, refreshing, UserHandle.myUserId());
+                mService.setActiveAdmin(policyReceiver, refreshing, userHandle);
             } catch (RemoteException e) {
                 Log.w(TAG, "Failed talking with device policy service", e);
             }
@@ -1545,6 +1545,13 @@
     }
 
     /**
+     * @hide
+     */
+    public void setActiveAdmin(ComponentName policyReceiver, boolean refreshing) {
+        setActiveAdmin(policyReceiver, refreshing, UserHandle.myUserId());
+    }
+
+    /**
      * Returns the DeviceAdminInfo as defined by the administrator's package info & meta-data
      * @hide
      */
@@ -1749,8 +1756,26 @@
     }
 
     /**
+     * Sets the enabled state of the profile. A profile should be enabled only once it is ready to
+     * be used. Only the profile owner can call this.
+     *
+     * @see #isPRofileOwnerApp
+     *
+     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+     */
+    public void setProfileEnabled(ComponentName admin) {
+        if (mService != null) {
+            try {
+                mService.setProfileEnabled(admin);
+            } catch (RemoteException e) {
+                Log.w(TAG, "Failed talking with device policy service", e);
+            }
+        }
+    }
+
+    /**
      * Used to determine if a particular package is registered as the Profile Owner for the
-     * current user. A profile owner is a special device admin that has additional priviledges
+     * current user. A profile owner is a special device admin that has additional privileges
      * within the managed profile.
      *
      * @param packageName The package name of the app to compare with the registered profile owner.
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 8119585..e4b2adc 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -107,6 +107,7 @@
     boolean setProfileOwner(String packageName, String ownerName, int userHandle);
     String getProfileOwner(int userHandle);
     String getProfileOwnerName(int userHandle);
+    void setProfileEnabled(in ComponentName who);
 
     boolean installCaCert(in byte[] certBuffer);
     void uninstallCaCert(in byte[] certBuffer);
diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java
index 67c772b..3c31f8d 100644
--- a/core/java/android/app/backup/BackupAgent.java
+++ b/core/java/android/app/backup/BackupAgent.java
@@ -128,6 +128,13 @@
 
     Handler mHandler = null;
 
+    Handler getHandler() {
+        if (mHandler == null) {
+            mHandler = new Handler(Looper.getMainLooper());
+        }
+        return mHandler;
+    }
+
     class SharedPrefsSynchronizer implements Runnable {
         public final CountDownLatch mLatch = new CountDownLatch(1);
 
@@ -140,12 +147,9 @@
 
     // Syncing shared preferences deferred writes needs to happen on the main looper thread
     private void waitForSharedPrefs() {
-        if (mHandler == null) {
-            mHandler = new Handler(Looper.getMainLooper());
-        }
-
+        Handler h = getHandler();
         final SharedPrefsSynchronizer s = new SharedPrefsSynchronizer();
-        mHandler.postAtFrontOfQueue(s);
+        h.postAtFrontOfQueue(s);
         try {
             s.mLatch.await();
         } catch (InterruptedException e) { /* ignored */ }
@@ -680,5 +684,23 @@
                 }
             }
         }
+
+        @Override
+        public void fail(String message) {
+            getHandler().post(new FailRunnable(message));
+        }
+    }
+
+    static class FailRunnable implements Runnable {
+        private String mMessage;
+
+        FailRunnable(String message) {
+            mMessage = message;
+        }
+
+        @Override
+        public void run() {
+            throw new IllegalStateException(mMessage);
+        }
     }
 }
diff --git a/core/java/android/app/backup/BackupDataOutput.java b/core/java/android/app/backup/BackupDataOutput.java
index 845784f..fc5fb3d 100644
--- a/core/java/android/app/backup/BackupDataOutput.java
+++ b/core/java/android/app/backup/BackupDataOutput.java
@@ -85,11 +85,6 @@
      * @throws IOException if the write failed
      */
     public int writeEntityHeader(String key, int dataSize) throws IOException {
-        if (key != null && key.charAt(0) >= 0xff00) {
-            if (Process.myUid() != Process.SYSTEM_UID) {
-                throw new IllegalArgumentException("Invalid key " + key);
-            }
-        }
         int result = writeEntityHeader_native(mBackupWriter, key, dataSize);
         if (result >= 0) {
             return result;
diff --git a/core/java/android/app/trust/ITrustListener.aidl b/core/java/android/app/trust/ITrustListener.aidl
new file mode 100644
index 0000000..4680043
--- /dev/null
+++ b/core/java/android/app/trust/ITrustListener.aidl
@@ -0,0 +1,26 @@
+/*
+**
+** 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.
+*/
+package android.app.trust;
+
+/**
+ * Private API to be notified about trust changes.
+ *
+ * {@hide}
+ */
+oneway interface ITrustListener {
+    void onTrustChanged(boolean enabled, int userId);
+}
\ No newline at end of file
diff --git a/core/java/android/app/trust/ITrustManager.aidl b/core/java/android/app/trust/ITrustManager.aidl
new file mode 100644
index 0000000..ad4ccbb
--- /dev/null
+++ b/core/java/android/app/trust/ITrustManager.aidl
@@ -0,0 +1,31 @@
+/*
+**
+** 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.
+*/
+package android.app.trust;
+
+import android.app.trust.ITrustListener;
+
+/**
+ * System private API to comunicate with trust service.
+ *
+ * {@hide}
+ */
+interface ITrustManager {
+    void reportUnlockAttempt(boolean successful, int userId);
+    void reportEnabledTrustAgentsChanged(int userId);
+    void registerTrustListener(in ITrustListener trustListener);
+    void unregisterTrustListener(in ITrustListener trustListener);
+}
diff --git a/core/java/android/app/trust/TrustManager.java b/core/java/android/app/trust/TrustManager.java
new file mode 100644
index 0000000..e31c624
--- /dev/null
+++ b/core/java/android/app/trust/TrustManager.java
@@ -0,0 +1,134 @@
+/*
+ * 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 android.app.trust;
+
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.RemoteException;
+import android.util.ArrayMap;
+import android.util.Log;
+
+/**
+ * See {@link com.android.server.trust.TrustManagerService}
+ * @hide
+ */
+public class TrustManager {
+
+    private static final int MSG_TRUST_CHANGED = 1;
+
+    private static final String TAG = "TrustManager";
+
+    private final ITrustManager mService;
+    private final ArrayMap<TrustListener, ITrustListener> mTrustListeners;
+
+    public TrustManager(IBinder b) {
+        mService = ITrustManager.Stub.asInterface(b);
+        mTrustListeners = new ArrayMap<TrustListener, ITrustListener>();
+    }
+
+    /**
+     * Reports that user {@param userId} has tried to unlock the device.
+     *
+     * @param successful if true, the unlock attempt was successful.
+     *
+     * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission.
+     */
+    public void reportUnlockAttempt(boolean successful, int userId) {
+        try {
+            mService.reportUnlockAttempt(successful, userId);
+        } catch (RemoteException e) {
+            onError(e);
+        }
+    }
+
+    /**
+     * Reports that the list of enabled trust agents changed for user {@param userId}.
+     *
+     * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission.
+     */
+    public void reportEnabledTrustAgentsChanged(int userId) {
+        try {
+            mService.reportEnabledTrustAgentsChanged(userId);
+        } catch (RemoteException e) {
+            onError(e);
+        }
+    }
+
+    /**
+     * Registers a listener for trust events.
+     *
+     * Requires the {@link android.Manifest.permission#TRUST_LISTENER} permission.
+     */
+    public void registerTrustListener(final TrustListener trustListener) {
+        try {
+            ITrustListener.Stub iTrustListener = new ITrustListener.Stub() {
+                @Override
+                public void onTrustChanged(boolean enabled, int userId) throws RemoteException {
+                    mHandler.obtainMessage(MSG_TRUST_CHANGED, (enabled ? 1 : 0), userId,
+                            trustListener).sendToTarget();
+                }
+            };
+            mService.registerTrustListener(iTrustListener);
+            mTrustListeners.put(trustListener, iTrustListener);
+        } catch (RemoteException e) {
+            onError(e);
+        }
+    }
+
+    /**
+     * Unregisters a listener for trust events.
+     *
+     * Requires the {@link android.Manifest.permission#TRUST_LISTENER} permission.
+     */
+    public void unregisterTrustListener(final TrustListener trustListener) {
+        ITrustListener iTrustListener = mTrustListeners.remove(trustListener);
+        if (iTrustListener != null) {
+            try {
+                mService.unregisterTrustListener(iTrustListener);
+            } catch (RemoteException e) {
+                onError(e);
+            }
+        }
+    }
+
+    private void onError(Exception e) {
+        Log.e(TAG, "Error while calling TrustManagerService", e);
+    }
+
+    private final Handler mHandler = new Handler(Looper.getMainLooper()) {
+        @Override
+        public void handleMessage(Message msg) {
+            switch(msg.what) {
+                case MSG_TRUST_CHANGED:
+                    ((TrustListener)msg.obj).onTrustChanged(msg.arg1 != 0, msg.arg2);
+                    break;
+            }
+        }
+    };
+
+    public interface TrustListener {
+
+        /**
+         * Reports that the trust state has changed.
+         * @param enabled if true, the system believes the environment to be trusted.
+         * @param userId the user, for which the trust changed.
+         */
+        void onTrustChanged(boolean enabled, int userId);
+    }
+}
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index a4374b8..e79deec 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -567,7 +567,7 @@
     }
 
     /**
-     * Stop BLE advertising.
+     * Stop BLE advertising. The callback has to be the same one used for start advertising.
      *
      * @param callback - {@link AdvertiseCallback}
      * @return true if BLE advertising stops, false otherwise.
@@ -1986,7 +1986,13 @@
         public void onAdvertiseStateChange(int advertiseState, int status) {
             Log.d(TAG, "on advertise call back, state: " + advertiseState + " status: " + status);
             if (advertiseState == STATE_ADVERTISE_STARTED) {
-                mAdvertiseCallback.onAdvertiseStart(status);
+                if (status == ADVERTISE_CALLBACK_SUCCESS) {
+                    mAdvertiseCallback.onAdvertiseStart(status);
+                } else {
+                    // If status is unsuccessful and advertise state is started, it means stop
+                    // advertising fails.
+                    mAdvertiseCallback.onAdvertiseStop(status);
+                }
             } else {
                 synchronized (this) {
                     if (status == ADVERTISE_CALLBACK_SUCCESS) {
@@ -2008,8 +2014,22 @@
                         }
                     }
                 }
-                mAdvertiseCallback.onAdvertiseStop(status);
+                if (status == ADVERTISE_CALLBACK_SUCCESS) {
+                    mAdvertiseCallback.onAdvertiseStop(status);
+                } else{
+                    // If status is unsuccesful and advertise state is stopped, it means start
+                    // advertising fails.
+                    mAdvertiseCallback.onAdvertiseStart(status);
+                }
             }
         }
+
+        /**
+         * Callback reporting LE ATT MTU.
+         * @hide
+         */
+        public void onConfigureMTU(String address, int mtu, int status) {
+            // no op
+        }
     }
 }
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java
index 39305b0..ff3af7c 100644
--- a/core/java/android/bluetooth/BluetoothGatt.java
+++ b/core/java/android/bluetooth/BluetoothGatt.java
@@ -50,6 +50,7 @@
     private boolean mAutoConnect;
     private int mConnState;
     private final Object mStateLock = new Object();
+    private Boolean mDeviceBusy = false;
 
     private static final int CONN_STATE_IDLE = 0;
     private static final int CONN_STATE_CONNECTING = 1;
@@ -166,6 +167,10 @@
                         mConnState = CONN_STATE_IDLE;
                     }
                 }
+
+                synchronized(mDeviceBusy) {
+                    mDeviceBusy = false;
+                }
             }
 
             /**
@@ -301,6 +306,11 @@
                 if (!address.equals(mDevice.getAddress())) {
                     return;
                 }
+
+                synchronized(mDeviceBusy) {
+                    mDeviceBusy = false;
+                }
+
                 if ((status == GATT_INSUFFICIENT_AUTHENTICATION
                   || status == GATT_INSUFFICIENT_ENCRYPTION)
                   && mAuthRetry == false) {
@@ -348,6 +358,11 @@
                 if (!address.equals(mDevice.getAddress())) {
                     return;
                 }
+
+                synchronized(mDeviceBusy) {
+                    mDeviceBusy = false;
+                }
+
                 BluetoothGattService service = getService(mDevice, srvcUuid.getUuid(),
                                                           srvcInstId, srvcType);
                 if (service == null) return;
@@ -425,6 +440,11 @@
                 if (!address.equals(mDevice.getAddress())) {
                     return;
                 }
+
+                synchronized(mDeviceBusy) {
+                    mDeviceBusy = false;
+                }
+
                 BluetoothGattService service = getService(mDevice, srvcUuid.getUuid(),
                                                           srvcInstId, srvcType);
                 if (service == null) return;
@@ -474,6 +494,11 @@
                 if (!address.equals(mDevice.getAddress())) {
                     return;
                 }
+
+                synchronized(mDeviceBusy) {
+                    mDeviceBusy = false;
+                }
+
                 BluetoothGattService service = getService(mDevice, srvcUuid.getUuid(),
                                                           srvcInstId, srvcType);
                 if (service == null) return;
@@ -519,6 +544,11 @@
                 if (!address.equals(mDevice.getAddress())) {
                     return;
                 }
+
+                synchronized(mDeviceBusy) {
+                    mDeviceBusy = false;
+                }
+
                 try {
                     mCallback.onReliableWriteCompleted(BluetoothGatt.this, status);
                 } catch (Exception ex) {
@@ -550,6 +580,23 @@
             public void onAdvertiseStateChange(int state, int status) {
                 if (DBG) Log.d(TAG, "onAdvertiseStateChange() - state = "
                         + state + " status=" + status);
+	    }
+
+            /**
+             * Callback invoked when the MTU for a given connection changes
+             * @hide
+             */
+            public void onConfigureMTU(String address, int mtu, int status) {
+                if (DBG) Log.d(TAG, "onConfigureMTU() - Device=" + address +
+                            " mtu=" + mtu + " status=" + status);
+                if (!address.equals(mDevice.getAddress())) {
+                    return;
+                }
+                try {
+                    mCallback.onConfigureMTU(BluetoothGatt.this, mtu, status);
+                } catch (Exception ex) {
+                    Log.w(TAG, "Unhandled exception in callback", ex);
+                }
             }
         };
 
@@ -834,6 +881,11 @@
         BluetoothDevice device = service.getDevice();
         if (device == null) return false;
 
+        synchronized(mDeviceBusy) {
+            if (mDeviceBusy) return false;
+            mDeviceBusy = true;
+        }
+
         try {
             mService.readCharacteristic(mClientIf, device.getAddress(),
                 service.getType(), service.getInstanceId(),
@@ -841,6 +893,7 @@
                 new ParcelUuid(characteristic.getUuid()), AUTHENTICATION_NONE);
         } catch (RemoteException e) {
             Log.e(TAG,"",e);
+            mDeviceBusy = false;
             return false;
         }
 
@@ -873,6 +926,11 @@
         BluetoothDevice device = service.getDevice();
         if (device == null) return false;
 
+        synchronized(mDeviceBusy) {
+            if (mDeviceBusy) return false;
+            mDeviceBusy = true;
+        }
+
         try {
             mService.writeCharacteristic(mClientIf, device.getAddress(),
                 service.getType(), service.getInstanceId(),
@@ -882,6 +940,7 @@
                 characteristic.getValue());
         } catch (RemoteException e) {
             Log.e(TAG,"",e);
+            mDeviceBusy = false;
             return false;
         }
 
@@ -913,6 +972,11 @@
         BluetoothDevice device = service.getDevice();
         if (device == null) return false;
 
+        synchronized(mDeviceBusy) {
+            if (mDeviceBusy) return false;
+            mDeviceBusy = true;
+        }
+
         try {
             mService.readDescriptor(mClientIf, device.getAddress(), service.getType(),
                 service.getInstanceId(), new ParcelUuid(service.getUuid()),
@@ -921,6 +985,7 @@
                 AUTHENTICATION_NONE);
         } catch (RemoteException e) {
             Log.e(TAG,"",e);
+            mDeviceBusy = false;
             return false;
         }
 
@@ -951,6 +1016,11 @@
         BluetoothDevice device = service.getDevice();
         if (device == null) return false;
 
+        synchronized(mDeviceBusy) {
+            if (mDeviceBusy) return false;
+            mDeviceBusy = true;
+        }
+
         try {
             mService.writeDescriptor(mClientIf, device.getAddress(), service.getType(),
                 service.getInstanceId(), new ParcelUuid(service.getUuid()),
@@ -960,6 +1030,7 @@
                 descriptor.getValue());
         } catch (RemoteException e) {
             Log.e(TAG,"",e);
+            mDeviceBusy = false;
             return false;
         }
 
@@ -1017,10 +1088,16 @@
         if (DBG) Log.d(TAG, "executeReliableWrite() - device: " + mDevice.getAddress());
         if (mService == null || mClientIf == 0) return false;
 
+        synchronized(mDeviceBusy) {
+            if (mDeviceBusy) return false;
+            mDeviceBusy = true;
+        }
+
         try {
             mService.endReliableWrite(mClientIf, mDevice.getAddress(), true);
         } catch (RemoteException e) {
             Log.e(TAG,"",e);
+            mDeviceBusy = false;
             return false;
         }
 
@@ -1137,6 +1214,36 @@
     }
 
     /**
+     * Configure the MTU used for a given connection.
+     *
+     * <p>When performing a write request operation (write without response),
+     * the data sent is truncated to the MTU size. This function may be used
+     * to request a larget MTU size to be able to send more data at once.
+     *
+     * <p>A {@link BluetoothGattCallback#onConfigureMTU} callback will indicate
+     * whether this operation was successful.
+     *
+     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
+     *
+     * @return true, if the new MTU value has been requested successfully
+     * @hide
+     */
+    public boolean configureMTU(int mtu) {
+        if (DBG) Log.d(TAG, "configureMTU() - device: " + mDevice.getAddress()
+                            + " mtu: " + mtu);
+        if (mService == null || mClientIf == 0) return false;
+
+        try {
+            mService.configureMTU(mClientIf, mDevice.getAddress(), mtu);
+        } catch (RemoteException e) {
+            Log.e(TAG,"",e);
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
      * Not supported - please use {@link BluetoothManager#getConnectedDevices(int)}
      * with {@link BluetoothProfile#GATT} as argument
      *
diff --git a/core/java/android/bluetooth/BluetoothGattCallback.java b/core/java/android/bluetooth/BluetoothGattCallback.java
index 80ea4a6..5180259 100644
--- a/core/java/android/bluetooth/BluetoothGattCallback.java
+++ b/core/java/android/bluetooth/BluetoothGattCallback.java
@@ -138,4 +138,19 @@
      */
     public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
     }
+
+    /**
+     * Callback indicating the MTU for a given device connection has changed.
+     *
+     * This callback is triggered in response to the
+     * {@link BluetoothGatt#configureMTU} function, or in response to a connection
+     * event.
+     *
+     * @param gatt GATT client invoked {@link BluetoothGatt#configureMTU}
+     * @param mtu The new MTU size
+     * @param status {@link BluetoothGatt#GATT_SUCCESS} if the MTU has been changed successfully
+     * @hide
+     */
+    public void onConfigureMTU(BluetoothGatt gatt, int mtu, int status) {
+    }
 }
diff --git a/core/java/android/bluetooth/IBluetoothGatt.aidl b/core/java/android/bluetooth/IBluetoothGatt.aidl
index 784cdcc..c6b5c3d 100644
--- a/core/java/android/bluetooth/IBluetoothGatt.aidl
+++ b/core/java/android/bluetooth/IBluetoothGatt.aidl
@@ -73,6 +73,7 @@
     void beginReliableWrite(in int clientIf, in String address);
     void endReliableWrite(in int clientIf, in String address, in boolean execute);
     void readRemoteRssi(in int clientIf, in String address);
+    void configureMTU(in int clientIf, in String address, in int mtu);
 
     void registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback);
     void unregisterServer(in int serverIf);
diff --git a/core/java/android/bluetooth/IBluetoothGattCallback.aidl b/core/java/android/bluetooth/IBluetoothGattCallback.aidl
index 7c69a06..a78c29b 100644
--- a/core/java/android/bluetooth/IBluetoothGattCallback.aidl
+++ b/core/java/android/bluetooth/IBluetoothGattCallback.aidl
@@ -64,4 +64,5 @@
                              in byte[] value);
     void onReadRemoteRssi(in String address, in int rssi, in int status);
     oneway void onAdvertiseStateChange(in int advertiseState, in int status);
+    void onConfigureMTU(in String address, in int mtu, in int status);
 }
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 9f0c384..15cb9e9 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -573,6 +573,9 @@
      * Open a private file associated with this Context's application package
      * for writing.  Creates the file if it doesn't already exist.
      *
+     * <p>No permissions are required to invoke this method, since it uses internal
+     * storage.
+     *
      * @param name The name of the file to open; can not contain path
      *             separators.
      * @param mode Operating mode.  Use 0 or {@link #MODE_PRIVATE} for the
@@ -630,6 +633,9 @@
      * Returns the absolute path to the directory on the filesystem where
      * files created with {@link #openFileOutput} are stored.
      *
+     * <p>No permissions are required to read or write to the returned path, since this
+     * path is internal storage.
+     *
      * @return The path of the directory holding application files.
      *
      * @see #openFileOutput
@@ -1974,6 +1980,7 @@
             //@hide: NETWORK_STATS_SERVICE,
             //@hide: NETWORK_POLICY_SERVICE,
             WIFI_SERVICE,
+            WIFI_HOTSPOT_SERVICE,
             WIFI_P2P_SERVICE,
             NSD_SERVICE,
             AUDIO_SERVICE,
@@ -1992,6 +1999,7 @@
             BLUETOOTH_SERVICE,
             //@hide: SIP_SERVICE,
             USB_SERVICE,
+            LAUNCHER_APPS_SERVICE,
             //@hide: SERIAL_SERVICE,
             INPUT_SERVICE,
             DISPLAY_SERVICE,
@@ -2001,6 +2009,7 @@
             CAMERA_SERVICE,
             PRINT_SERVICE,
             MEDIA_SESSION_SERVICE,
+            BATTERY_SERVICE,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface ServiceName {}
@@ -2052,6 +2061,8 @@
      * <dd> An {@link android.app.UiModeManager} for controlling UI modes.
      * <dt> {@link #DOWNLOAD_SERVICE} ("download")
      * <dd> A {@link android.app.DownloadManager} for requesting HTTP downloads
+     * <dt> {@link #BATTERY_SERVICE} ("batterymanager")
+     * <dd> A {@link android.os.BatteryManager} for managing battery state
      * </dl>
      *
      * <p>Note:  System services obtained via this API may be closely associated with
@@ -2105,6 +2116,8 @@
      * @see android.app.UiModeManager
      * @see #DOWNLOAD_SERVICE
      * @see android.app.DownloadManager
+     * @see #BATTERY_SERVICE
+     * @see android.os.BatteryManager
      */
     public abstract Object getSystemService(@ServiceName @NonNull String name);
 
@@ -2324,6 +2337,16 @@
 
     /**
      * Use with {@link #getSystemService} to retrieve a {@link
+     * android.net.wifi.hotspot.WifiHotspotManager} for handling management of
+     * Wi-Fi hotspot access.
+     *
+     * @see #getSystemService
+     * @see android.net.wifi.hotspot.WifiHotspotManager
+     */
+    public static final String WIFI_HOTSPOT_SERVICE = "wifihotspot";
+
+    /**
+     * Use with {@link #getSystemService} to retrieve a {@link
      * android.net.wifi.p2p.WifiP2pManager} for handling management of
      * Wi-Fi peer-to-peer connections.
      *
@@ -2463,6 +2486,14 @@
 
     /**
      * Use with {@link #getSystemService} to retrieve a
+     * {@link android.os.BatteryManager} for managing battery state.
+     *
+     * @see #getSystemService
+     */
+    public static final String BATTERY_SERVICE = "batterymanager";
+
+    /**
+     * Use with {@link #getSystemService} to retrieve a
      * {@link android.nfc.NfcManager} for using NFC.
      *
      * @see #getSystemService
@@ -2546,6 +2577,16 @@
 
     /**
      * Use with {@link #getSystemService} to retrieve a
+     * {@link android.content.pm.LauncherApps} for querying and monitoring launchable apps across
+     * profiles of a user.
+     *
+     * @see #getSystemService
+     * @see android.content.pm.LauncherApps
+     */
+    public static final String LAUNCHER_APPS_SERVICE = "launcherapps";
+
+    /**
+     * Use with {@link #getSystemService} to retrieve a
      * {@link android.app.AppOpsManager} for tracking application operations
      * on the device.
      *
@@ -2584,6 +2625,24 @@
     public static final String CONSUMER_IR_SERVICE = "consumer_ir";
 
     /**
+     * {@link android.app.trust.TrustManager} for managing trust agents.
+     * @see #getSystemService
+     * @see android.app.trust.TrustManager
+     * @hide
+     */
+    public static final String TRUST_SERVICE = "trust";
+
+    /**
+     * Use with {@link #getSystemService} to retrieve a
+     * {@link android.tv.TvInputManager} for interacting with TV inputs on the
+     * device.
+     *
+     * @see #getSystemService
+     * @see android.tv.TvInputManager
+     */
+    public static final String TV_INPUT_SERVICE = "tv_input";
+
+    /**
      * Determine whether the given permission is allowed for a particular
      * process and user ID running in the system.
      *
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 0175d62..a7d5606 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1417,15 +1417,38 @@
     // Standard intent broadcast actions (see action variable).
 
     /**
-     * Broadcast Action: Sent after the screen turns off.
+     * Broadcast Action: Sent when the device goes to sleep and becomes non-interactive.
+     * <p>
+     * For historical reasons, the name of this broadcast action refers to the power
+     * state of the screen but it is actually sent in response to changes in the
+     * overall interactive state of the device.
+     * </p><p>
+     * This broadcast is sent when the device becomes non-interactive which may have
+     * nothing to do with the screen turning off.  To determine the
+     * actual state of the screen, use {@link android.view.Display#getState}.
+     * </p><p>
+     * See {@link android.os.PowerManager#isInteractive} for details.
+     * </p>
      *
      * <p class="note">This is a protected intent that can only be sent
      * by the system.
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_SCREEN_OFF = "android.intent.action.SCREEN_OFF";
+
     /**
-     * Broadcast Action: Sent after the screen turns on.
+     * Broadcast Action: Sent when the device wakes up and becomes interactive.
+     * <p>
+     * For historical reasons, the name of this broadcast action refers to the power
+     * state of the screen but it is actually sent in response to changes in the
+     * overall interactive state of the device.
+     * </p><p>
+     * This broadcast is sent when the device becomes interactive which may have
+     * nothing to do with the screen turning on.  To determine the
+     * actual state of the screen, use {@link android.view.Display#getState}.
+     * </p><p>
+     * See {@link android.os.PowerManager#isInteractive} for details.
+     * </p>
      *
      * <p class="note">This is a protected intent that can only be sent
      * by the system.
@@ -2173,6 +2196,11 @@
     /**
      * Broadcast Action: Wired Headset plugged in or unplugged.
      *
+     * You <em>cannot</em> receive this through components declared
+     * in manifests, only by explicitly registering for it with
+     * {@link Context#registerReceiver(BroadcastReceiver, IntentFilter)
+     * Context.registerReceiver()}.
+     *
      * <p>The intent will have the following extra values:
      * <ul>
      *   <li><em>state</em> - 0 for unplugged, 1 for plugged. </li>
@@ -2603,6 +2631,23 @@
             "android.intent.action.USER_INFO_CHANGED";
 
     /**
+     * Broadcast sent to the primary user when an associated managed profile is added (the profile
+     * was created and is ready to be used). Carries an extra {@link #EXTRA_USER} that specifies
+     * the UserHandle of the profile that was added. This is only sent to registered receivers,
+     * not manifest receivers.
+     */
+    public static final String ACTION_MANAGED_PROFILE_ADDED =
+            "android.intent.action.MANAGED_PROFILE_ADDED";
+
+    /**
+     * Broadcast sent to the primary user when an associated managed profile is removed. Carries an
+     * extra {@link #EXTRA_USER} that specifies the UserHandle of the profile that was removed. This
+     * is only sent to registered receivers, not manifest receivers.
+     */
+    public static final String ACTION_MANAGED_PROFILE_REMOVED =
+            "android.intent.action.MANAGED_PROFILE_REMOVED";
+
+    /**
      * Sent when the user taps on the clock widget in the system's "quick settings" area.
      */
     public static final String ACTION_QUICK_CLOCK =
@@ -2879,6 +2924,14 @@
     @SdkConstant(SdkConstantType.INTENT_CATEGORY)
     public static final String CATEGORY_CAR_MODE = "android.intent.category.CAR_MODE";
 
+    /**
+     * An activity that provides a user interface for adjusting notification preferences for its
+     * containing application. Optional but recommended for apps that post
+     * {@link android.app.Notification Notifications}.
+     */
+    @SdkConstant(SdkConstantType.INTENT_CATEGORY)
+    public static final String CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
+
     // ---------------------------------------------------------------------
     // ---------------------------------------------------------------------
     // Application launch intent categories (see addCategory()).
@@ -3288,15 +3341,23 @@
             "android.intent.extra.ALLOW_MULTIPLE";
 
     /**
-     * The userHandle carried with broadcast intents related to addition, removal and switching of
-     * users
-     * - {@link #ACTION_USER_ADDED}, {@link #ACTION_USER_REMOVED} and {@link #ACTION_USER_SWITCHED}.
+     * The integer userHandle carried with broadcast intents related to addition, removal and
+     * switching of users and managed profiles - {@link #ACTION_USER_ADDED},
+     * {@link #ACTION_USER_REMOVED} and {@link #ACTION_USER_SWITCHED}.
+     *
      * @hide
      */
     public static final String EXTRA_USER_HANDLE =
             "android.intent.extra.user_handle";
 
     /**
+     * The UserHandle carried with broadcasts intents related to addition and removal of managed
+     * profiles - {@link #ACTION_MANAGED_PROFILE_ADDED} and {@link #ACTION_MANAGED_PROFILE_REMOVED}.
+     */
+    public static final String EXTRA_USER =
+            "android.intent.extra.user";
+
+    /**
      * Extra used in the response from a BroadcastReceiver that handles
      * {@link #ACTION_GET_RESTRICTION_ENTRIES}. The type of the extra is
      * <code>ArrayList&lt;RestrictionEntry&gt;</code>.
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 40275d8..9916476 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -189,6 +189,13 @@
      */
     public static final int FLAG_IMMERSIVE = 0x0800;
     /**
+     * Bit in {@link #flags} indicating that this activity is to be persisted across
+     * reboots for display in the Recents list.
+     * {@link android.R.attr#persistable}
+     * @hide
+     */
+    public static final int FLAG_PERSISTABLE = 0x1000;
+    /**
      * @hide Bit in {@link #flags}: If set, this component will only be seen
      * by the primary user.  Only works with broadcast receivers.  Set from the
      * {@link android.R.attr#primaryUserOnly} attribute.
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 5d02ae9..0d1b262 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -447,6 +447,15 @@
     public String nativeLibraryDir;
 
     /**
+     * The ABI that this application requires, This is inferred from the ABIs
+     * of the native JNI libraries the application bundles. Will be {@code null}
+     * if this application does not require any particular ABI.
+     *
+     * {@hide}
+     */
+    public String requiredCpuAbi;
+
+    /**
      * The kernel user-ID that has been assigned to this application;
      * currently this is not a unique ID (multiple applications can have
      * the same uid).
@@ -583,6 +592,7 @@
         sourceDir = orig.sourceDir;
         publicSourceDir = orig.publicSourceDir;
         nativeLibraryDir = orig.nativeLibraryDir;
+        requiredCpuAbi = orig.requiredCpuAbi;
         resourceDirs = orig.resourceDirs;
         seinfo = orig.seinfo;
         sharedLibraryFiles = orig.sharedLibraryFiles;
@@ -624,6 +634,7 @@
         dest.writeString(sourceDir);
         dest.writeString(publicSourceDir);
         dest.writeString(nativeLibraryDir);
+        dest.writeString(requiredCpuAbi);
         dest.writeStringArray(resourceDirs);
         dest.writeString(seinfo);
         dest.writeStringArray(sharedLibraryFiles);
@@ -664,6 +675,7 @@
         sourceDir = source.readString();
         publicSourceDir = source.readString();
         nativeLibraryDir = source.readString();
+        requiredCpuAbi = source.readString();
         resourceDirs = source.readStringArray();
         seinfo = source.readString();
         sharedLibraryFiles = source.readStringArray();
diff --git a/core/java/android/content/pm/ILauncherApps.aidl b/core/java/android/content/pm/ILauncherApps.aidl
new file mode 100644
index 0000000..796b113
--- /dev/null
+++ b/core/java/android/content/pm/ILauncherApps.aidl
@@ -0,0 +1,38 @@
+/**
+ * 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 android.content.pm;
+
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.pm.IOnAppsChangedListener;
+import android.content.pm.ResolveInfo;
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.os.UserHandle;
+import java.util.List;
+
+/**
+ * {@hide}
+ */
+interface ILauncherApps {
+    void addOnAppsChangedListener(in IOnAppsChangedListener listener);
+    void removeOnAppsChangedListener(in IOnAppsChangedListener listener);
+    List<ResolveInfo> getLauncherActivities(String packageName, in UserHandle user);
+    ResolveInfo resolveActivity(in Intent intent, in UserHandle user);
+    void startActivityAsUser(in ComponentName component, in Rect sourceBounds,
+            in Bundle opts, in UserHandle user);
+}
diff --git a/core/java/android/content/pm/IOnAppsChangedListener.aidl b/core/java/android/content/pm/IOnAppsChangedListener.aidl
new file mode 100644
index 0000000..796b58d
--- /dev/null
+++ b/core/java/android/content/pm/IOnAppsChangedListener.aidl
@@ -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.
+ */
+
+package android.content.pm;
+
+import android.os.UserHandle;
+
+/**
+ * {@hide}
+ */
+oneway interface IOnAppsChangedListener {
+    void onPackageRemoved(in UserHandle user, String packageName);
+    void onPackageAdded(in UserHandle user, String packageName);
+    void onPackageChanged(in UserHandle user, String packageName);
+    void onPackagesAvailable(in UserHandle user, in String[] packageNames, boolean replacing);
+    void onPackagesUnavailable(in UserHandle user, in String[] packageNames, boolean replacing);
+}
diff --git a/core/java/android/content/pm/IPackageInstallObserver2.aidl b/core/java/android/content/pm/IPackageInstallObserver2.aidl
new file mode 100644
index 0000000..2602ab5
--- /dev/null
+++ b/core/java/android/content/pm/IPackageInstallObserver2.aidl
@@ -0,0 +1,45 @@
+/*
+**
+** 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.
+*/
+
+package android.content.pm;
+
+import android.os.Bundle;
+
+/**
+ * API for installation callbacks from the Package Manager.  In certain result cases
+ * additional information will be provided.
+ * @hide
+ */
+oneway interface IPackageInstallObserver2 {
+    /**
+     * The install operation has completed.  {@code returnCode} holds a numeric code
+     * indicating success or failure.  In certain cases the {@code extras} Bundle will
+     * contain additional details:
+     *
+     * <p><table>
+     * <tr>
+     *   <td>INSTALL_FAILED_DUPLICATE_PERMISSION</td>
+     *   <td>Two strings are provided in the extras bundle: EXTRA_EXISTING_PERMISSION
+     *       is the name of the permission that the app is attempting to define, and
+     *       EXTRA_EXISTING_PACKAGE is the package name of the app which has already
+     *       defined the permission.</td>
+     * </tr>
+     * </table>
+     */
+    void packageInstalled(in String packageName, in Bundle extras, int returnCode);
+}
+
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index c9fb530..ae0899f 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -25,6 +25,7 @@
 import android.content.pm.ContainerEncryptionParams;
 import android.content.pm.FeatureInfo;
 import android.content.pm.IPackageInstallObserver;
+import android.content.pm.IPackageInstallObserver2;
 import android.content.pm.IPackageDeleteObserver;
 import android.content.pm.IPackageDataObserver;
 import android.content.pm.IPackageMoveObserver;
@@ -406,6 +407,21 @@
             in VerificationParams verificationParams,
             in ContainerEncryptionParams encryptionParams);
 
+    /** Expanded observer versions */
+    void installPackageEtc(in Uri packageURI, IPackageInstallObserver observer,
+            IPackageInstallObserver2 observer2, int flags, in String installerPackageName);
+
+    void installPackageWithVerificationEtc(in Uri packageURI,
+            in IPackageInstallObserver observer, IPackageInstallObserver2 observer2,
+            int flags, in String installerPackageName, in Uri verificationURI,
+            in ManifestDigest manifestDigest, in ContainerEncryptionParams encryptionParams);
+
+    void installPackageWithVerificationAndEncryptionEtc(in Uri packageURI,
+            in IPackageInstallObserver observer, in IPackageInstallObserver2 observer2,
+            int flags, in String installerPackageName,
+            in VerificationParams verificationParams,
+            in ContainerEncryptionParams encryptionParams);
+
     int installExistingPackageAsUser(String packageName, int userId);
 
     void verifyPendingInstall(int id, int verificationCode);
diff --git a/core/java/android/content/pm/LauncherActivityInfo.java b/core/java/android/content/pm/LauncherActivityInfo.java
new file mode 100644
index 0000000..92b9146
--- /dev/null
+++ b/core/java/android/content/pm/LauncherActivityInfo.java
@@ -0,0 +1,146 @@
+/*
+ * 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 android.content.pm;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Bitmap.Config;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.Log;
+
+/**
+ * A representation of an activity that can belong to this user or a managed
+ * profile associated with this user. It can be used to query the label, icon
+ * and badged icon for the activity.
+ */
+public class LauncherActivityInfo {
+    private static final boolean DEBUG = false;
+    private final PackageManager mPm;
+    private final UserManager mUm;
+
+    private ActivityInfo mActivityInfo;
+    private ComponentName mComponentName;
+    private UserHandle mUser;
+    // TODO: Fetch this value from PM
+    private long mFirstInstallTime;
+
+    /**
+     * Create a launchable activity object for a given ResolveInfo and user.
+     * 
+     * @param context The context for fetching resources.
+     * @param info ResolveInfo from which to create the LauncherActivityInfo.
+     * @param user The UserHandle of the profile to which this activity belongs.
+     */
+    LauncherActivityInfo(Context context, ResolveInfo info, UserHandle user) {
+        this(context);
+        this.mActivityInfo = info.activityInfo;
+        this.mComponentName = LauncherApps.getComponentName(info);
+        this.mUser = user;
+    }
+
+    LauncherActivityInfo(Context context) {
+        mPm = context.getPackageManager();
+        mUm = UserManager.get(context);
+    }
+
+    /**
+     * Returns the component name of this activity.
+     *
+     * @return ComponentName of the activity
+     */
+    public ComponentName getComponentName() {
+        return mComponentName;
+    }
+
+    /**
+     * Returns the user handle of the user profile that this activity belongs to.
+     *
+     * @return The UserHandle of the profile.
+     */
+    public UserHandle getUser() {
+        return mUser;
+    }
+
+    /**
+     * Retrieves the label for the activity.
+     * 
+     * @return The label for the activity.
+     */
+    public CharSequence getLabel() {
+        return mActivityInfo.loadLabel(mPm);
+    }
+
+    /**
+     * Returns the icon for this activity, without any badging for the profile.
+     * @param density The preferred density of the icon, zero for default density.
+     * @see #getBadgedIcon(int)
+     * @return The drawable associated with the activity
+     */
+    public Drawable getIcon(int density) {
+        // TODO: Use density
+        return mActivityInfo.loadIcon(mPm);
+    }
+
+    /**
+     * Returns the application flags from the ApplicationInfo of the activity.
+     * 
+     * @return Application flags
+     */
+    public int getApplicationFlags() {
+        return mActivityInfo.applicationInfo.flags;
+    }
+
+    /**
+     * Returns the time at which the package was first installed.
+     * @return The time of installation of the package, in milliseconds.
+     */
+    public long getFirstInstallTime() {
+        return mFirstInstallTime;
+    }
+
+    /**
+     * Returns the activity icon with badging appropriate for the profile.
+     * @param density Optional density for the icon, or 0 to use the default density.
+     * @return A badged icon for the activity.
+     */
+    public Drawable getBadgedIcon(int density) {
+        // TODO: Handle density
+        if (mUser.equals(android.os.Process.myUserHandle())) {
+            return mActivityInfo.loadIcon(mPm);
+        }
+        Drawable originalIcon = mActivityInfo.loadIcon(mPm);
+        if (originalIcon == null) {
+            if (DEBUG) {
+                Log.w("LauncherActivityInfo", "Couldn't find icon for activity");
+            }
+            originalIcon = mPm.getDefaultActivityIcon();
+        }
+        if (originalIcon instanceof BitmapDrawable) {
+            return mUm.getBadgedDrawableForUser(
+                    originalIcon, mUser);
+        }
+        return originalIcon;
+    }
+}
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
new file mode 100644
index 0000000..5187181
--- /dev/null
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -0,0 +1,286 @@
+/*
+ * 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 android.content.pm;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ILauncherApps;
+import android.content.pm.IOnAppsChangedListener;
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Class for retrieving a list of launchable activities for the current user and any associated
+ * managed profiles. This is mainly for use by launchers. Apps can be queried for each user profile.
+ * Since the PackageManager will not deliver package broadcasts for other profiles, you can register
+ * for package changes here.
+ */
+public class LauncherApps {
+
+    static final String TAG = "LauncherApps";
+    static final boolean DEBUG = false;
+
+    private Context mContext;
+    private ILauncherApps mService;
+
+    private List<OnAppsChangedListener> mListeners
+            = new ArrayList<OnAppsChangedListener>();
+
+    /**
+     * Callbacks for changes to this and related managed profiles.
+     */
+    public interface OnAppsChangedListener {
+        /**
+         * Indicates that a package was removed from the specified profile.
+         *
+         * @param user The UserHandle of the profile that generated the change.
+         * @param packageName The name of the package that was removed.
+         */
+        void onPackageRemoved(UserHandle user, String packageName);
+
+        /**
+         * Indicates that a package was added to the specified profile.
+         *
+         * @param user The UserHandle of the profile that generated the change.
+         * @param packageName The name of the package that was added.
+         */
+        void onPackageAdded(UserHandle user, String packageName);
+
+        /**
+         * Indicates that a package was modified in the specified profile.
+         *
+         * @param user The UserHandle of the profile that generated the change.
+         * @param packageName The name of the package that has changed.
+         */
+        void onPackageChanged(UserHandle user, String packageName);
+
+        /**
+         * Indicates that one or more packages have become available. For
+         * example, this can happen when a removable storage card has
+         * reappeared.
+         *
+         * @param user The UserHandle of the profile that generated the change.
+         * @param packageNames The names of the packages that have become
+         *            available.
+         * @param replacing Indicates whether these packages are replacing
+         *            existing ones.
+         */
+        void onPackagesAvailable(UserHandle user, String[] packageNames, boolean replacing);
+
+        /**
+         * Indicates that one or more packages have become unavailable. For
+         * example, this can happen when a removable storage card has been
+         * removed.
+         *
+         * @param user The UserHandle of the profile that generated the change.
+         * @param packageNames The names of the packages that have become
+         *            unavailable.
+         * @param replacing Indicates whether the packages are about to be
+         *            replaced with new versions.
+         */
+        void onPackagesUnavailable(UserHandle user, String[] packageNames, boolean replacing);
+    }
+
+    /** @hide */
+    public LauncherApps(Context context, ILauncherApps service) {
+        mContext = context;
+        mService = service;
+    }
+
+    /**
+     * Retrieves a list of launchable activities that match {@link Intent#ACTION_MAIN} and
+     * {@link Intent#CATEGORY_LAUNCHER}, for a specified user.
+     *
+     * @param packageName The specific package to query. If null, it checks all installed packages
+     *            in the profile.
+     * @param user The UserHandle of the profile.
+     * @return List of launchable activities. Can be an empty list but will not be null.
+     */
+    public List<LauncherActivityInfo> getActivityList(String packageName, UserHandle user) {
+        List<ResolveInfo> activities = null;
+        try {
+            activities = mService.getLauncherActivities(packageName, user);
+        } catch (RemoteException re) {
+        }
+        if (activities == null) {
+            return Collections.EMPTY_LIST;
+        }
+        ArrayList<LauncherActivityInfo> lais = new ArrayList<LauncherActivityInfo>();
+        final int count = activities.size();
+        for (int i = 0; i < count; i++) {
+            ResolveInfo ri = activities.get(i);
+            LauncherActivityInfo lai = new LauncherActivityInfo(mContext, ri, user);
+            if (DEBUG) {
+                Log.v(TAG, "Returning activity for profile " + user + " : "
+                        + lai.getComponentName());
+            }
+            lais.add(lai);
+        }
+        return lais;
+    }
+
+    static ComponentName getComponentName(ResolveInfo ri) {
+        return new ComponentName(ri.activityInfo.packageName, ri.activityInfo.name);
+    }
+
+    /**
+     * Returns the activity info for a given intent and user handle, if it resolves. Otherwise it
+     * returns null.
+     *
+     * @param intent The intent to find a match for.
+     * @param user The profile to look in for a match.
+     * @return An activity info object if there is a match.
+     */
+    public LauncherActivityInfo resolveActivity(Intent intent, UserHandle user) {
+        try {
+            ResolveInfo ri = mService.resolveActivity(intent, user);
+            if (ri != null) {
+                LauncherActivityInfo info = new LauncherActivityInfo(mContext, ri, user);
+                return info;
+            }
+        } catch (RemoteException re) {
+            return null;
+        }
+        return null;
+    }
+
+    /**
+     * Starts an activity in the specified profile.
+     *
+     * @param component The ComponentName of the activity to launch
+     * @param sourceBounds The Rect containing the source bounds of the clicked icon
+     * @param opts Options to pass to startActivity
+     * @param user The UserHandle of the profile
+     */
+    public void startActivityForProfile(ComponentName component, Rect sourceBounds,
+            Bundle opts, UserHandle user) {
+        if (DEBUG) {
+            Log.i(TAG, "StartActivityForProfile " + component + " " + user.getIdentifier());
+        }
+        try {
+            mService.startActivityAsUser(component, sourceBounds, opts, user);
+        } catch (RemoteException re) {
+            // Oops!
+        }
+    }
+
+    /**
+     * Adds a listener for changes to packages in current and managed profiles.
+     *
+     * @param listener The listener to add.
+     */
+    public synchronized void addOnAppsChangedListener(OnAppsChangedListener listener) {
+        if (listener != null && !mListeners.contains(listener)) {
+            mListeners.add(listener);
+            if (mListeners.size() == 1) {
+                try {
+                    mService.addOnAppsChangedListener(mAppsChangedListener);
+                } catch (RemoteException re) {
+                }
+            }
+        }
+    }
+
+    /**
+     * Removes a listener that was previously added.
+     *
+     * @param listener The listener to remove.
+     * @see #addOnAppsChangedListener(OnAppsChangedListener)
+     */
+    public synchronized void removeOnAppsChangedListener(OnAppsChangedListener listener) {
+        mListeners.remove(listener);
+        if (mListeners.size() == 0) {
+            try {
+                mService.removeOnAppsChangedListener(mAppsChangedListener);
+            } catch (RemoteException re) {
+            }
+        }
+    }
+
+    private IOnAppsChangedListener.Stub mAppsChangedListener = new IOnAppsChangedListener.Stub() {
+
+        @Override
+        public void onPackageRemoved(UserHandle user, String packageName) throws RemoteException {
+            if (DEBUG) {
+                Log.d(TAG, "onPackageRemoved " + user.getIdentifier() + "," + packageName);
+            }
+            synchronized (LauncherApps.this) {
+                for (OnAppsChangedListener listener : mListeners) {
+                    listener.onPackageRemoved(user, packageName);
+                }
+            }
+        }
+
+        @Override
+        public void onPackageChanged(UserHandle user, String packageName) throws RemoteException {
+            if (DEBUG) {
+                Log.d(TAG, "onPackageChanged " + user.getIdentifier() + "," + packageName);
+            }
+            synchronized (LauncherApps.this) {
+                for (OnAppsChangedListener listener : mListeners) {
+                    listener.onPackageChanged(user, packageName);
+                }
+            }
+        }
+
+        @Override
+        public void onPackageAdded(UserHandle user, String packageName) throws RemoteException {
+            if (DEBUG) {
+                Log.d(TAG, "onPackageAdded " + user.getIdentifier() + "," + packageName);
+            }
+            synchronized (LauncherApps.this) {
+                for (OnAppsChangedListener listener : mListeners) {
+                    listener.onPackageAdded(user, packageName);
+                }
+            }
+        }
+
+        @Override
+        public void onPackagesAvailable(UserHandle user, String[] packageNames, boolean replacing)
+                throws RemoteException {
+            if (DEBUG) {
+                Log.d(TAG, "onPackagesAvailable " + user.getIdentifier() + "," + packageNames);
+            }
+            synchronized (LauncherApps.this) {
+                for (OnAppsChangedListener listener : mListeners) {
+                    listener.onPackagesAvailable(user, packageNames, replacing);
+                }
+            }
+        }
+
+        @Override
+        public void onPackagesUnavailable(UserHandle user, String[] packageNames, boolean replacing)
+                throws RemoteException {
+            if (DEBUG) {
+                Log.d(TAG, "onPackagesUnavailable " + user.getIdentifier() + "," + packageNames);
+            }
+            synchronized (LauncherApps.this) {
+                for (OnAppsChangedListener listener : mListeners) {
+                    listener.onPackagesUnavailable(user, packageNames, replacing);
+                }
+            }
+        }
+    };
+}
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index e86833b..d981cc1 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
+import android.app.PackageInstallObserver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -683,6 +684,39 @@
     public static final int INSTALL_FAILED_USER_RESTRICTED = -111;
 
     /**
+     * Installation failed return code: this is passed to the {@link IPackageInstallObserver} by
+     * {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)}
+     * if the system failed to install the package because it is attempting to define a
+     * permission that is already defined by some existing package.
+     *
+     * <p>The package name of the app which has already defined the permission is passed to
+     * a {@link IPackageInstallObserver2}, if any, as the {@link #EXTRA_EXISTING_PACKAGE}
+     * string extra; and the name of the permission being redefined is passed in the
+     * {@link #EXTRA_EXISTING_PERMISSION} string extra.
+     * @hide
+     */
+    public static final int INSTALL_FAILED_DUPLICATE_PERMISSION = -112;
+
+    /**
+     * Installation failed return code: this is passed to the {@link IPackageInstallObserver} by
+     * {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)}
+     * if the system failed to install the package because its packaged native code did not
+     * match any of the ABIs supported by the system.
+     *
+     * @hide
+     */
+    public static final int INSTALL_FAILED_NO_MATCHING_ABIS = -113;
+
+    /**
+     * Internal return code for NativeLibraryHelper methods to indicate that the package
+     * being processed did not contain any native code. This is placed here only so that
+     * it can belong to the same value space as the other install failure codes.
+     *
+     * @hide
+     */
+    public static final int NO_NATIVE_LIBRARIES = -114;
+
+    /**
      * Flag parameter for {@link #deletePackage} to indicate that you don't want to delete the
      * package's data directory.
      *
@@ -978,6 +1012,7 @@
      * @hide
      * @deprecated
      */
+    @Deprecated
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_NFC_HCE = "android.hardware.nfc.hce";
 
@@ -1274,6 +1309,7 @@
      * something like a DPAD, not through touch or mouse.
      * @deprecated use {@link #FEATURE_LEANBACK} instead.
      */
+    @Deprecated
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_TELEVISION = "android.hardware.type.television";
 
@@ -1301,6 +1337,13 @@
     public static final String FEATURE_BACKUP = "android.software.backup";
 
     /**
+     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
+     * The device supports managed profiles for enterprise users.
+     */
+    @SdkConstant(SdkConstantType.FEATURE)
+    public static final String FEATURE_MANAGEDPROFILES = "android.software.managedprofiles";
+
+    /**
      * Action to external storage service to clean out removed apps.
      * @hide
      */
@@ -1390,6 +1433,24 @@
             = "android.content.pm.extra.PERMISSION_LIST";
 
     /**
+     * String extra for {@link IPackageInstallObserver2} in the 'extras' Bundle in case of
+     * {@link #INSTALL_FAILED_DUPLICATE_PERMISSION}.  This extra names the package which provides
+     * the existing definition for the permission.
+     * @hide
+     */
+    public static final String EXTRA_FAILURE_EXISTING_PACKAGE
+            = "android.content.pm.extra.FAILURE_EXISTING_PACKAGE";
+
+    /**
+     * String extra for {@link IPackageInstallObserver2} in the 'extras' Bundle in case of
+     * {@link #INSTALL_FAILED_DUPLICATE_PERMISSION}.  This extra names the permission that is
+     * being redundantly defined by the package being installed.
+     * @hide
+     */
+    public static final String EXTRA_FAILURE_EXISTING_PERMISSION
+            = "android.content.pm.extra.FAILURE_EXISTING_PERMISSION";
+
+    /**
      * Retrieve overall information about an application package that is
      * installed on the system.
      * <p>
@@ -1463,17 +1524,33 @@
     public abstract Intent getLaunchIntentForPackage(String packageName);
 
     /**
-     * Return an array of all of the secondary group-ids that have been
-     * assigned to a package.
-     *
-     * <p>Throws {@link NameNotFoundException} if a package with the given
-     * name cannot be found on the system.
-     *
+     * Return a "good" intent to launch a front-door Leanback activity in a
+     * package, for use for example to implement an "open" button when browsing
+     * through packages. The current implementation will look for a main
+     * activity in the category {@link Intent#CATEGORY_LEANBACK_LAUNCHER}, or
+     * return null if no main leanback activities are found.
+     * <p>
+     * Throws {@link NameNotFoundException} if a package with the given name
+     * cannot be found on the system.
+     * 
+     * @param packageName The name of the package to inspect.
+     * @return Returns either a fully-qualified Intent that can be used to launch
+     *         the main Leanback activity in the package, or null if the package
+     *         does not contain such an activity.
+     */
+    public abstract Intent getLeanbackLaunchIntentForPackage(String packageName);
+
+    /**
+     * Return an array of all of the secondary group-ids that have been assigned
+     * to a package.
+     * <p>
+     * Throws {@link NameNotFoundException} if a package with the given name
+     * cannot be found on the system.
+     * 
      * @param packageName The full name (i.e. com.google.apps.contacts) of the
-     *                    desired package.
-     *
-     * @return Returns an int array of the assigned gids, or null if there
-     * are none.
+     *            desired package.
+     * @return Returns an int array of the assigned gids, or null if there are
+     *         none.
      */
     public abstract int[] getPackageGids(String packageName)
             throws NameNotFoundException;
@@ -2457,7 +2534,7 @@
     /**
      * Return the generic icon for an activity that is used when no specific
      * icon is defined.
-     * 
+     *
      * @return Drawable Image of the icon.
      */
     public abstract Drawable getDefaultActivityIcon();
@@ -2752,11 +2829,14 @@
      * 'content:' URI.
      * @param observer An observer callback to get notified when the package installation is
      * complete. {@link IPackageInstallObserver#packageInstalled(String, int)} will be
-     * called when that happens.  observer may be null to indicate that no callback is desired.
+     * called when that happens.  This parameter must not be null.
      * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
      * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
      * @param installerPackageName Optional package name of the application that is performing the
      * installation. This identifies which market the package came from.
+     * @deprecated Use {@link #installPackage(Uri, IPackageInstallObserver2, int, String)}
+     * instead.  This method will continue to be supported but the older observer interface
+     * will not get additional failure details.
      */
     public abstract void installPackage(
             Uri packageURI, IPackageInstallObserver observer, int flags,
@@ -2772,11 +2852,9 @@
      * @param observer An observer callback to get notified when the package
      *            installation is complete.
      *            {@link IPackageInstallObserver#packageInstalled(String, int)}
-     *            will be called when that happens. observer may be null to
-     *            indicate that no callback is desired.
+     *            will be called when that happens. This parameter must not be null.
      * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
-     *            {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}
-     *            .
+     *            {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
      * @param installerPackageName Optional package name of the application that
      *            is performing the installation. This identifies which market
      *            the package came from.
@@ -2789,6 +2867,10 @@
      *            these parameters describing the encryption and authentication
      *            used. May be {@code null}.
      * @hide
+     * @deprecated Use {@link #installPackageWithVerification(Uri, IPackageInstallObserver2,
+     * int, String, Uri, ManifestDigest, ContainerEncryptionParams)} instead.  This method will
+     * continue to be supported but the older observer interface will not get additional failure
+     * details.
      */
     public abstract void installPackageWithVerification(Uri packageURI,
             IPackageInstallObserver observer, int flags, String installerPackageName,
@@ -2805,11 +2887,99 @@
      * @param observer An observer callback to get notified when the package
      *            installation is complete.
      *            {@link IPackageInstallObserver#packageInstalled(String, int)}
-     *            will be called when that happens. observer may be null to
-     *            indicate that no callback is desired.
+     *            will be called when that happens. This parameter must not be null.
      * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
-     *            {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}
-     *            .
+     *            {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
+     * @param installerPackageName Optional package name of the application that
+     *            is performing the installation. This identifies which market
+     *            the package came from.
+     * @param verificationParams an object that holds signal information to
+     *            assist verification. May be {@code null}.
+     * @param encryptionParams if the package to be installed is encrypted,
+     *            these parameters describing the encryption and authentication
+     *            used. May be {@code null}.
+     *
+     * @hide
+     * @deprecated Use {@link #installPackageWithVerificationAndEncryption(Uri,
+     * IPackageInstallObserver2, int, String, VerificationParams,
+     * ContainerEncryptionParams)} instead.  This method will continue to be
+     * supported but the older observer interface will not get additional failure details.
+     */
+    @Deprecated
+    public abstract void installPackageWithVerificationAndEncryption(Uri packageURI,
+            IPackageInstallObserver observer, int flags, String installerPackageName,
+            VerificationParams verificationParams,
+            ContainerEncryptionParams encryptionParams);
+
+    // Package-install variants that take the new, expanded form of observer interface.
+    // Note that these *also* take the original observer type and will redundantly
+    // report the same information to that observer if supplied; but it is not required.
+
+    /**
+     * @hide
+     *
+     * Install a package. Since this may take a little while, the result will
+     * be posted back to the given observer.  An installation will fail if the calling context
+     * lacks the {@link android.Manifest.permission#INSTALL_PACKAGES} permission, if the
+     * package named in the package file's manifest is already installed, or if there's no space
+     * available on the device.
+     *
+     * @param packageURI The location of the package file to install.  This can be a 'file:' or a
+     * 'content:' URI.
+     * @param observer An observer callback to get notified when the package installation is
+     * complete. {@link PackageInstallObserver#packageInstalled(String, Bundle, int)} will be
+     * called when that happens. This parameter must not be null.
+     * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
+     * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
+     * @param installerPackageName Optional package name of the application that is performing the
+     * installation. This identifies which market the package came from.
+     */
+    public abstract void installPackage(
+            Uri packageURI, PackageInstallObserver observer,
+            int flags, String installerPackageName);
+
+    /**
+     * Similar to
+     * {@link #installPackage(Uri, IPackageInstallObserver, int, String)} but
+     * with an extra verification file provided.
+     *
+     * @param packageURI The location of the package file to install. This can
+     *            be a 'file:' or a 'content:' URI.
+     * @param observer An observer callback to get notified when the package installation is
+     * complete. {@link PackageInstallObserver#packageInstalled(String, Bundle, int)} will be
+     * called when that happens. This parameter must not be null.
+     * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
+     *            {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
+     * @param installerPackageName Optional package name of the application that
+     *            is performing the installation. This identifies which market
+     *            the package came from.
+     * @param verificationURI The location of the supplementary verification
+     *            file. This can be a 'file:' or a 'content:' URI. May be
+     *            {@code null}.
+     * @param manifestDigest an object that holds the digest of the package
+     *            which can be used to verify ownership. May be {@code null}.
+     * @param encryptionParams if the package to be installed is encrypted,
+     *            these parameters describing the encryption and authentication
+     *            used. May be {@code null}.
+     * @hide
+     */
+    public abstract void installPackageWithVerification(Uri packageURI,
+            PackageInstallObserver observer, int flags, String installerPackageName,
+            Uri verificationURI, ManifestDigest manifestDigest,
+            ContainerEncryptionParams encryptionParams);
+
+    /**
+     * Similar to
+     * {@link #installPackage(Uri, IPackageInstallObserver, int, String)} but
+     * with an extra verification information provided.
+     *
+     * @param packageURI The location of the package file to install. This can
+     *            be a 'file:' or a 'content:' URI.
+     * @param observer An observer callback to get notified when the package installation is
+     * complete. {@link PackageInstallObserver#packageInstalled(String, Bundle, int)} will be
+     * called when that happens. This parameter must not be null.
+     * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
+     *            {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
      * @param installerPackageName Optional package name of the application that
      *            is performing the installation. This identifies which market
      *            the package came from.
@@ -2822,9 +2992,8 @@
      * @hide
      */
     public abstract void installPackageWithVerificationAndEncryption(Uri packageURI,
-            IPackageInstallObserver observer, int flags, String installerPackageName,
-            VerificationParams verificationParams,
-            ContainerEncryptionParams encryptionParams);
+            PackageInstallObserver observer, int flags, String installerPackageName,
+            VerificationParams verificationParams, ContainerEncryptionParams encryptionParams);
 
     /**
      * If there is already an application with the given package name installed
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index cf44ad8..8d8d220 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -57,7 +57,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.jar.JarEntry;
 import java.util.jar.StrictJarFile;
 import java.util.zip.ZipEntry;
 
@@ -1010,13 +1009,14 @@
             pkg.mSharedUserLabel = sa.getResourceId(
                     com.android.internal.R.styleable.AndroidManifest_sharedUserLabel, 0);
         }
-        sa.recycle();
 
         pkg.installLocation = sa.getInteger(
                 com.android.internal.R.styleable.AndroidManifest_installLocation,
                 PARSE_DEFAULT_INSTALL_LOCATION);
         pkg.applicationInfo.installLocation = pkg.installLocation;
 
+        sa.recycle();
+
         /* Set the global "forward lock" flag */
         if ((flags & PARSE_FORWARD_LOCK) != 0) {
             pkg.applicationInfo.flags |= ApplicationInfo.FLAG_FORWARD_LOCK;
@@ -1105,7 +1105,6 @@
                 if (!parseUsesPermission(pkg, res, parser, attrs, outError)) {
                     return null;
                 }
-
             } else if (tagName.equals("uses-configuration")) {
                 ConfigurationInfo cPref = new ConfigurationInfo();
                 sa = res.obtainAttributes(attrs,
@@ -2448,6 +2447,11 @@
             a.info.flags |= ActivityInfo.FLAG_IMMERSIVE;
         }
 
+        if (sa.getBoolean(
+                com.android.internal.R.styleable.AndroidManifestActivity_persistable, false)) {
+            a.info.flags |= ActivityInfo.FLAG_PERSISTABLE;
+        }
+
         if (!receiver) {
             if (sa.getBoolean(
                     com.android.internal.R.styleable.AndroidManifestActivity_hardwareAccelerated,
@@ -3288,19 +3292,23 @@
         if (packageName == null || packageName.length() == 0) {
             Slog.i(TAG, "verifier package name was null; skipping");
             return null;
-        } else if (encodedPublicKey == null) {
-            Slog.i(TAG, "verifier " + packageName + " public key was null; skipping");
         }
 
-        PublicKey publicKey = parsePublicKey(encodedPublicKey);
-        if (publicKey != null) {
-            return new VerifierInfo(packageName, publicKey);
+        final PublicKey publicKey = parsePublicKey(encodedPublicKey);
+        if (publicKey == null) {
+            Slog.i(TAG, "Unable to parse verifier public key for " + packageName);
+            return null;
         }
 
-        return null;
+        return new VerifierInfo(packageName, publicKey);
     }
 
-    public static final PublicKey parsePublicKey(String encodedPublicKey) {
+    public static final PublicKey parsePublicKey(final String encodedPublicKey) {
+        if (encodedPublicKey == null) {
+            Slog.i(TAG, "Could not parse null public key");
+            return null;
+        }
+
         EncodedKeySpec keySpec;
         try {
             final byte[] encoded = Base64.decode(encodedPublicKey, Base64.DEFAULT);
diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java
index 6f1d4f8..f53aa4c 100644
--- a/core/java/android/content/pm/UserInfo.java
+++ b/core/java/android/content/pm/UserInfo.java
@@ -71,7 +71,7 @@
     public static final int FLAG_MANAGED_PROFILE = 0x00000020;
 
 
-    public static final int NO_RELATED_GROUP_ID = -1;
+    public static final int NO_PROFILE_GROUP_ID = -1;
 
     public int id;
     public int serialNumber;
@@ -80,7 +80,7 @@
     public int flags;
     public long creationTime;
     public long lastLoggedInTime;
-    public int relatedGroupId;
+    public int profileGroupId;
 
     /** User is only partially created. */
     public boolean partial;
@@ -94,7 +94,7 @@
         this.name = name;
         this.flags = flags;
         this.iconPath = iconPath;
-        this.relatedGroupId = NO_RELATED_GROUP_ID;
+        this.profileGroupId = NO_PROFILE_GROUP_ID;
     }
 
     public boolean isPrimary() {
@@ -137,7 +137,7 @@
         creationTime = orig.creationTime;
         lastLoggedInTime = orig.lastLoggedInTime;
         partial = orig.partial;
-        relatedGroupId = orig.relatedGroupId;
+        profileGroupId = orig.profileGroupId;
     }
 
     public UserHandle getUserHandle() {
@@ -162,7 +162,7 @@
         dest.writeLong(creationTime);
         dest.writeLong(lastLoggedInTime);
         dest.writeInt(partial ? 1 : 0);
-        dest.writeInt(relatedGroupId);
+        dest.writeInt(profileGroupId);
     }
 
     public static final Parcelable.Creator<UserInfo> CREATOR
@@ -184,6 +184,6 @@
         creationTime = source.readLong();
         lastLoggedInTime = source.readLong();
         partial = source.readInt() != 0;
-        relatedGroupId = source.readInt();
+        profileGroupId = source.readInt();
     }
 }
diff --git a/core/java/android/content/res/ColorStateList.java b/core/java/android/content/res/ColorStateList.java
index 419abf2..5674154 100644
--- a/core/java/android/content/res/ColorStateList.java
+++ b/core/java/android/content/res/ColorStateList.java
@@ -19,6 +19,7 @@
 import android.graphics.Color;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
@@ -181,10 +182,9 @@
         final int innerDepth = parser.getDepth()+1;
         int depth;
 
-        int listAllocated = 20;
+        int[][] stateSpecList = ArrayUtils.newUnpaddedArray(int[].class, 20);
+        int[] colorList = new int[stateSpecList.length];
         int listSize = 0;
-        int[] colorList = new int[listAllocated];
-        int[][] stateSpecList = new int[listAllocated][];
 
         while ((type=parser.next()) != XmlPullParser.END_DOCUMENT
                && ((depth=parser.getDepth()) >= innerDepth
@@ -248,21 +248,8 @@
                 mDefaultColor = color;
             }
 
-            if (listSize + 1 >= listAllocated) {
-                listAllocated = ArrayUtils.idealIntArraySize(listSize + 1);
-
-                int[] ncolor = new int[listAllocated];
-                System.arraycopy(colorList, 0, ncolor, 0, listSize);
-
-                int[][] nstate = new int[listAllocated][];
-                System.arraycopy(stateSpecList, 0, nstate, 0, listSize);
-
-                colorList = ncolor;
-                stateSpecList = nstate;
-            }
-
-            colorList[listSize] = color;
-            stateSpecList[listSize] = stateSpec;
+            colorList = GrowingArrayUtils.append(colorList, listSize, color);
+            stateSpecList = GrowingArrayUtils.append(stateSpecList, listSize, stateSpec);
             listSize++;
         }
 
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index 48b6fca..a07fc97 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -440,6 +440,11 @@
      * <a href="{@docRoot}guide/topics/resources/providing-resources.html#UiModeQualifier">appliance</a>
      * resource qualifier. */
     public static final int UI_MODE_TYPE_APPLIANCE = 0x05;
+    /** Constant for {@link #uiMode}: a {@link #UI_MODE_TYPE_MASK}
+     * value that corresponds to the
+     * <a href="{@docRoot}guide/topics/resources/providing-resources.html#UiModeQualifier">watch</a>
+     * resource qualifier. */
+    public static final int UI_MODE_TYPE_WATCH = 0x06;
 
     /** Constant for {@link #uiMode}: bits that encode the night mode. */
     public static final int UI_MODE_NIGHT_MASK = 0x30;
@@ -462,8 +467,8 @@
      * <p>The {@link #UI_MODE_TYPE_MASK} bits define the overall ui mode of the
      * device. They may be one of {@link #UI_MODE_TYPE_UNDEFINED},
      * {@link #UI_MODE_TYPE_NORMAL}, {@link #UI_MODE_TYPE_DESK},
-     * {@link #UI_MODE_TYPE_CAR}, {@link #UI_MODE_TYPE_TELEVISION}, or
-     * {@link #UI_MODE_TYPE_APPLIANCE}.
+     * {@link #UI_MODE_TYPE_CAR}, {@link #UI_MODE_TYPE_TELEVISION},
+     * {@link #UI_MODE_TYPE_APPLIANCE}, or {@link #UI_MODE_TYPE_WATCH}.
      *
      * <p>The {@link #UI_MODE_NIGHT_MASK} defines whether the screen
      * is in a special mode. They may be one of {@link #UI_MODE_NIGHT_UNDEFINED},
@@ -700,6 +705,7 @@
             case UI_MODE_TYPE_CAR: sb.append(" car"); break;
             case UI_MODE_TYPE_TELEVISION: sb.append(" television"); break;
             case UI_MODE_TYPE_APPLIANCE: sb.append(" appliance"); break;
+            case UI_MODE_TYPE_WATCH: sb.append(" watch"); break;
             default: sb.append(" uimode="); sb.append(uiMode&UI_MODE_TYPE_MASK); break;
         }
         switch ((uiMode&UI_MODE_NIGHT_MASK)) {
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index affc784..4879c23 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -114,7 +114,6 @@
     private boolean mPreloading;
 
     private TypedArray mCachedStyledAttributes = null;
-    private RuntimeException mLastRetrievedAttrs = null;
 
     private int mLastCachedXmlBlockIndex = -1;
     private final int[] mCachedXmlBlockIds = { 0, 0, 0, 0 };
@@ -136,17 +135,31 @@
         sPreloadedDrawables[1] = new LongSparseArray<ConstantState>();
     }
 
-    /** @hide */
+    /**
+     * Returns the most appropriate default theme for the specified target SDK version.
+     * <ul>
+     * <li>Below API 11: Gingerbread
+     * <li>APIs 11 thru 14: Holo
+     * <li>APIs 14 thru XX: Device default dark
+     * <li>API XX and above: Device default light with dark action bar
+     * </ul>
+     *
+     * @param curTheme The current theme, or 0 if not specified.
+     * @param targetSdkVersion The target SDK version.
+     * @return A theme resource identifier
+     * @hide
+     */
     public static int selectDefaultTheme(int curTheme, int targetSdkVersion) {
         return selectSystemTheme(curTheme, targetSdkVersion,
                 com.android.internal.R.style.Theme,
                 com.android.internal.R.style.Theme_Holo,
-                com.android.internal.R.style.Theme_DeviceDefault);
+                com.android.internal.R.style.Theme_DeviceDefault,
+                com.android.internal.R.style.Theme_DeviceDefault_Light_DarkActionBar);
     }
-    
+
     /** @hide */
-    public static int selectSystemTheme(int curTheme, int targetSdkVersion,
-            int orig, int holo, int deviceDefault) {
+    public static int selectSystemTheme(int curTheme, int targetSdkVersion, int orig, int holo,
+            int dark, int deviceDefault) {
         if (curTheme != 0) {
             return curTheme;
         }
@@ -156,9 +169,12 @@
         if (targetSdkVersion < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
             return holo;
         }
+        if (targetSdkVersion < Build.VERSION_CODES.CUR_DEVELOPMENT) {
+            return dark;
+        }
         return deviceDefault;
     }
-    
+
     /**
      * This exception is thrown by the resource APIs when a requested resource
      * can not be found.
@@ -1253,12 +1269,9 @@
         public void applyStyle(int resid, boolean force) {
             AssetManager.applyThemeStyle(mTheme, resid, force);
 
-            if (!mHasStyle) {
-                mHasStyle = true;
-                mThemeResId = resid;
-            } else if (resid != mThemeResId) {
-                mThemeResId = 0;
-            }
+            // TODO: In very rare cases, we may end up with a hybrid theme
+            // that can't map to a single theme ID.
+            mThemeResId = resid;
         }
 
         /**
@@ -1273,7 +1286,6 @@
         public void setTo(Theme other) {
             AssetManager.copyTheme(mTheme, other.mTheme);
 
-            mHasStyle = other.mHasStyle;
             mThemeResId = other.mThemeResId;
         }
 
@@ -1562,10 +1574,6 @@
             mAssets.releaseTheme(mTheme);
         }
 
-        /*package*/ boolean canCacheDrawables() {
-            return mHasStyle && mThemeResId != 0;
-        }
-
         /*package*/ Theme() {
             mAssets = Resources.this.mAssets;
             mTheme = mAssets.createTheme();
@@ -1575,12 +1583,17 @@
         private final AssetManager mAssets;
         private final long mTheme;
 
-        /**
-         * Resource identifier for the theme. If multiple styles have been
-         * applied to this theme, this value will be 0 (invalid).
-         */
+        /** Resource identifier for the theme. */
         private int mThemeResId = 0;
-        private boolean mHasStyle = false;
+
+        // Needed by layoutlib.
+        /*package*/ long getNativeTheme() {
+            return mTheme;
+        }
+
+        /*package*/ int getAppliedStyleResId() {
+            return mThemeResId;
+        }
     }
 
     /**
@@ -2260,11 +2273,6 @@
             return;
         }
 
-        // Abort if the drawable is themed, but the theme cannot be cached.
-        if (dr.canApplyTheme() && theme != null && !theme.canCacheDrawables()) {
-            return;
-        }
-
         if (mPreloading) {
             // Preloaded drawables never have a theme, but may be themeable.
             final int changingConfigs = cs.getChangingConfigurations();
@@ -2289,11 +2297,7 @@
         } else {
             synchronized (mAccessLock) {
                 final LongSparseArray<WeakReference<ConstantState>> themedCache;
-                if (!dr.canApplyTheme()) {
-                    themedCache = caches.getUnthemed(true);
-                } else {
-                    themedCache = caches.getOrCreate(theme == null ? 0 : theme.mThemeResId);
-                }
+                themedCache = caches.getOrCreate(theme == null ? 0 : theme.mThemeResId);
                 themedCache.put(key, new WeakReference<ConstantState>(cs));
             }
         }
@@ -2354,21 +2358,6 @@
 
     private Drawable getCachedDrawable(ThemedCaches<ConstantState> caches, long key, Theme theme) {
         synchronized (mAccessLock) {
-            // First, check for a matching unthemed drawable.
-            final LongSparseArray<WeakReference<ConstantState>> unthemed = caches.getUnthemed(false);
-            if (unthemed != null) {
-                final Drawable unthemedDrawable = getCachedDrawableLocked(unthemed, key);
-                if (unthemedDrawable != null) {
-                    return unthemedDrawable;
-                }
-            }
-
-            final boolean themeCannotCache = theme != null && !theme.canCacheDrawables();
-            if (themeCannotCache) {
-                return null;
-            }
-
-            // Next, check for a matching themed drawable.
             final int themeKey = theme != null ? theme.mThemeResId : 0;
             final LongSparseArray<WeakReference<ConstantState>> themedCache = caches.get(themeKey);
             if (themedCache != null) {
@@ -2606,18 +2595,6 @@
     }
 
     static class ThemedCaches<T> extends SparseArray<LongSparseArray<WeakReference<T>>> {
-        private LongSparseArray<WeakReference<T>> mUnthemed = null;
-
-        /**
-         * Returns the cache of drawables with no themeable attributes.
-         */
-        public LongSparseArray<WeakReference<T>> getUnthemed(boolean autoCreate) {
-            if (mUnthemed == null && autoCreate) {
-                mUnthemed = new LongSparseArray<WeakReference<T>>(1);
-            }
-            return mUnthemed;
-        }
-
         /**
          * Returns the cache of drawables styled for the specified theme.
          * <p>
diff --git a/core/java/android/content/res/TypedArray.java b/core/java/android/content/res/TypedArray.java
index 9fb2846..15337ce 100644
--- a/core/java/android/content/res/TypedArray.java
+++ b/core/java/android/content/res/TypedArray.java
@@ -32,7 +32,7 @@
  * {@link Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int)}
  * or {@link Resources#obtainAttributes}.  Be
  * sure to call {@link #recycle} when done with them.
- * 
+ *
  * The indices used to retrieve values from this structure correspond to
  * the positions of the attributes given to obtainStyledAttributes.
  */
@@ -46,6 +46,7 @@
             attrs.mResources = res;
             attrs.mMetrics = res.getDisplayMetrics();
             attrs.mAssets = res.getAssets();
+            attrs.mRecycled = false;
 
             final int fullLen = len * AssetManager.STYLE_NUM_ENTRIES;
             if (attrs.mData.length >= fullLen) {
@@ -65,6 +66,8 @@
     private Resources mResources;
     private DisplayMetrics mMetrics;
     private AssetManager mAssets;
+    private boolean mRecycled;
+
     /*package*/ XmlBlock.Parser mXml;
     /*package*/ Resources.Theme mTheme;
     /*package*/ int[] mData;
@@ -76,45 +79,65 @@
      * Return the number of values in this array.
      */
     public int length() {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         return mLength;
     }
-    
+
     /**
      * Return the number of indices in the array that actually have data.
      */
     public int getIndexCount() {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         return mIndices[0];
     }
-    
+
     /**
      * Return an index in the array that has data.
-     * 
+     *
      * @param at The index you would like to returned, ranging from 0 to
      * {@link #getIndexCount()}.
-     * 
+     *
      * @return The index at the given offset, which can be used with
      * {@link #getValue} and related APIs.
      */
     public int getIndex(int at) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         return mIndices[1+at];
     }
-    
+
     /**
      * Return the Resources object this array was loaded from.
      */
     public Resources getResources() {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         return mResources;
     }
-    
+
     /**
      * Retrieve the styled string value for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
-     * @return CharSequence holding string data.  May be styled.  Returns 
+     *
+     * @return CharSequence holding string data.  May be styled.  Returns
      *         null if the attribute is not defined.
      */
     public CharSequence getText(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -136,13 +159,17 @@
 
     /**
      * Retrieve the string value for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return String holding string data.  Any styling information is
      * removed.  Returns null if the attribute is not defined.
      */
     public String getString(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -170,14 +197,18 @@
      * attributes, or conversions from other types.  As such, this method
      * will only return strings for TypedArray objects that come from
      * attributes in an XML file.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return String holding string data.  Any styling information is
      * removed.  Returns null if the attribute is not defined or is not
      * an immediate string value.
      */
     public String getNonResourceString(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -190,12 +221,12 @@
         }
         return null;
     }
-    
+
     /**
      * @hide
      * Retrieve the string value for the attribute at <var>index</var> that is
      * not allowed to change with the given configurations.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param allowedChangingConfigs Bit mask of configurations from
      * {@link Configuration}.NATIVE_CONFIG_* that are allowed to change.
@@ -204,6 +235,10 @@
      * removed.  Returns null if the attribute is not defined.
      */
     public String getNonConfigurationString(int index, int allowedChangingConfigs) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -229,13 +264,17 @@
 
     /**
      * Retrieve the boolean value for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined.
-     * 
+     *
      * @return Attribute boolean value, or defValue if not defined.
      */
     public boolean getBoolean(int index, boolean defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -259,13 +298,17 @@
 
     /**
      * Retrieve the integer value for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined.
-     * 
+     *
      * @return Attribute int value, or defValue if not defined.
      */
     public int getInt(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -289,12 +332,16 @@
 
     /**
      * Retrieve the float value for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return Attribute float value, or defValue if not defined..
      */
     public float getFloat(int index, float defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -319,20 +366,24 @@
               + Integer.toHexString(type));
         return defValue;
     }
-    
+
     /**
      * Retrieve the color value for the attribute at <var>index</var>.  If
      * the attribute references a color resource holding a complex
      * {@link android.content.res.ColorStateList}, then the default color from
      * the set is returned.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
+     *
      * @return Attribute color value, or defValue if not defined.
      */
     public int getColor(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -359,12 +410,16 @@
      * Retrieve the ColorStateList for the attribute at <var>index</var>.
      * The value may be either a single solid color or a reference to
      * a color or complex {@link android.content.res.ColorStateList} description.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return ColorStateList for the attribute, or null if not defined.
      */
     public ColorStateList getColorStateList(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         final TypedValue value = mValue;
         if (getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, value)) {
             return mResources.loadColorStateList(value, value.resourceId);
@@ -374,14 +429,18 @@
 
     /**
      * Retrieve the integer value for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
+     *
      * @return Attribute integer value, or defValue if not defined.
      */
     public int getInteger(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -397,22 +456,26 @@
     }
 
     /**
-     * Retrieve a dimensional unit attribute at <var>index</var>.  Unit 
-     * conversions are based on the current {@link DisplayMetrics} 
-     * associated with the resources this {@link TypedArray} object 
-     * came from. 
-     * 
+     * Retrieve a dimensional unit attribute at <var>index</var>.  Unit
+     * conversions are based on the current {@link DisplayMetrics}
+     * associated with the resources this {@link TypedArray} object
+     * came from.
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
-     * @return Attribute dimension value multiplied by the appropriate 
+     *
+     * @return Attribute dimension value multiplied by the appropriate
      * metric, or defValue if not defined.
-     * 
+     *
      * @see #getDimensionPixelOffset
      * @see #getDimensionPixelSize
      */
     public float getDimension(int index, float defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -433,18 +496,22 @@
      * {@link #getDimension}, except the returned value is converted to
      * integer pixels for you.  An offset conversion involves simply
      * truncating the base value to an integer.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
-     * @return Attribute dimension value multiplied by the appropriate 
+     *
+     * @return Attribute dimension value multiplied by the appropriate
      * metric and truncated to integer pixels, or defValue if not defined.
-     * 
+     *
      * @see #getDimension
      * @see #getDimensionPixelSize
      */
     public int getDimensionPixelOffset(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -466,18 +533,22 @@
      * integer pixels for use as a size.  A size conversion involves
      * rounding the base value, and ensuring that a non-zero base value
      * is at least one pixel in size.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
-     * @return Attribute dimension value multiplied by the appropriate 
+     *
+     * @return Attribute dimension value multiplied by the appropriate
      * metric and truncated to integer pixels, or defValue if not defined.
-     *  
+     *
      * @see #getDimension
      * @see #getDimensionPixelOffset
      */
     public int getDimensionPixelSize(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -497,14 +568,18 @@
      * {@link android.view.ViewGroup}'s layout_width and layout_height
      * attributes.  This is only here for performance reasons; applications
      * should use {@link #getDimensionPixelSize}.
-     * 
+     *
      * @param index Index of the attribute to retrieve.
      * @param name Textual name of attribute for error reporting.
-     * 
-     * @return Attribute dimension value multiplied by the appropriate 
+     *
+     * @return Attribute dimension value multiplied by the appropriate
      * metric and truncated to integer pixels.
      */
     public int getLayoutDimension(int index, String name) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -519,21 +594,25 @@
         throw new RuntimeException(getPositionDescription()
                 + ": You must supply a " + name + " attribute.");
     }
-    
+
     /**
      * Special version of {@link #getDimensionPixelSize} for retrieving
      * {@link android.view.ViewGroup}'s layout_width and layout_height
      * attributes.  This is only here for performance reasons; applications
      * should use {@link #getDimensionPixelSize}.
-     * 
+     *
      * @param index Index of the attribute to retrieve.
      * @param defValue The default value to return if this attribute is not
      * default or contains the wrong type of data.
-     * 
-     * @return Attribute dimension value multiplied by the appropriate 
+     *
+     * @return Attribute dimension value multiplied by the appropriate
      * metric and truncated to integer pixels.
      */
     public int getLayoutDimension(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -550,20 +629,24 @@
 
     /**
      * Retrieve a fractional unit attribute at <var>index</var>.
-     * 
-     * @param index Index of attribute to retrieve. 
-     * @param base The base value of this fraction.  In other words, a 
+     *
+     * @param index Index of attribute to retrieve.
+     * @param base The base value of this fraction.  In other words, a
      *             standard fraction is multiplied by this value.
-     * @param pbase The parent base value of this fraction.  In other 
+     * @param pbase The parent base value of this fraction.  In other
      *             words, a parent fraction (nn%p) is multiplied by this
      *             value.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
-     * @return Attribute fractional value multiplied by the appropriate 
-     * base value, or defValue if not defined. 
+     *
+     * @return Attribute fractional value multiplied by the appropriate
+     * base value, or defValue if not defined.
      */
     public float getFraction(int index, int base, int pbase, float defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
@@ -580,19 +663,23 @@
 
     /**
      * Retrieve the resource identifier for the attribute at
-     * <var>index</var>.  Note that attribute resource as resolved when 
-     * the overall {@link TypedArray} object is retrieved.  As a 
-     * result, this function will return the resource identifier of the 
-     * final resource value that was found, <em>not</em> necessarily the 
-     * original resource that was specified by the attribute. 
-     * 
+     * <var>index</var>.  Note that attribute resource as resolved when
+     * the overall {@link TypedArray} object is retrieved.  As a
+     * result, this function will return the resource identifier of the
+     * final resource value that was found, <em>not</em> necessarily the
+     * original resource that was specified by the attribute.
+     *
      * @param index Index of attribute to retrieve.
      * @param defValue Value to return if the attribute is not defined or
      *                 not a resource.
-     * 
+     *
      * @return Attribute resource identifier, or defValue if not defined.
      */
     public int getResourceId(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         if (data[index+AssetManager.STYLE_TYPE] != TypedValue.TYPE_NULL) {
@@ -615,6 +702,10 @@
      * @hide
      */
     public int getThemeAttributeId(int index, int defValue) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         if (data[index + AssetManager.STYLE_TYPE] == TypedValue.TYPE_ATTRIBUTE) {
@@ -628,12 +719,16 @@
      * gets the resource ID of the selected attribute, and uses
      * {@link Resources#getDrawable Resources.getDrawable} of the owning
      * Resources object to retrieve its Drawable.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return Drawable for the attribute, or null if not defined.
      */
     public Drawable getDrawable(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         final TypedValue value = mValue;
         if (getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, value)) {
             if (false) {
@@ -655,12 +750,16 @@
      * This gets the resource ID of the selected attribute, and uses
      * {@link Resources#getTextArray Resources.getTextArray} of the owning
      * Resources object to retrieve its String[].
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return CharSequence[] for the attribute, or null if not defined.
      */
     public CharSequence[] getTextArray(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         final TypedValue value = mValue;
         if (getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, value)) {
             if (false) {
@@ -679,36 +778,19 @@
 
     /**
      * Retrieve the raw TypedValue for the attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
      * @param outValue TypedValue object in which to place the attribute's
      *                 data.
-     * 
-     * @return Returns true if the value was retrieved, else false. 
+     *
+     * @return Returns true if the value was retrieved, else false.
      */
     public boolean getValue(int index, TypedValue outValue) {
-        return getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, outValue);
-    }
-
-    /**
-     * Determines whether this TypedArray contains an attribute of the specified
-     * type.
-     *
-     * @param type Type of data, e.g. {@link TypedValue#TYPE_ATTRIBUTE}
-     * @return True if the TypedArray contains an attribute of the specified
-     *         type.
-     * @hide
-     */
-    public boolean hasType(int type) {
-        final int[] data = mData;
-        final int N = getIndexCount();
-        for (int i = 0; i < N; i++) {
-            final int index = getIndex(i) * AssetManager.STYLE_NUM_ENTRIES;
-            if (data[index + AssetManager.STYLE_TYPE] == type) {
-                return true;
-            }
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
         }
-        return false;
+
+        return getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, outValue);
     }
 
     /**
@@ -718,36 +800,48 @@
      * @return Attribute type.
      */
     public int getType(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         return mData[index + AssetManager.STYLE_TYPE];
     }
 
     /**
      * Determines whether there is an attribute at <var>index</var>.
-     * 
+     *
      * @param index Index of attribute to retrieve.
-     * 
+     *
      * @return True if the attribute has a value, false otherwise.
      */
     public boolean hasValue(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         index *= AssetManager.STYLE_NUM_ENTRIES;
         final int[] data = mData;
         final int type = data[index+AssetManager.STYLE_TYPE];
         return type != TypedValue.TYPE_NULL;
     }
-    
+
     /**
-     * Retrieve the raw TypedValue for the attribute at <var>index</var> 
-     * and return a temporary object holding its data.  This object is only 
-     * valid until the next call on to {@link TypedArray}. 
-     * 
+     * Retrieve the raw TypedValue for the attribute at <var>index</var>
+     * and return a temporary object holding its data.  This object is only
+     * valid until the next call on to {@link TypedArray}.
+     *
      * @param index Index of attribute to retrieve.
-     * 
-     * @return Returns a TypedValue object if the attribute is defined, 
+     *
+     * @return Returns a TypedValue object if the attribute is defined,
      *         containing its data; otherwise returns null.  (You will not
      *         receive a TypedValue whose type is TYPE_NULL.)
      */
     public TypedValue peekValue(int index) {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         final TypedValue value = mValue;
         if (getValueAt(index*AssetManager.STYLE_NUM_ENTRIES, value)) {
             return value;
@@ -759,13 +853,23 @@
      * Returns a message about the parser state suitable for printing error messages.
      */
     public String getPositionDescription() {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         return mXml != null ? mXml.getPositionDescription() : "<internal>";
     }
 
     /**
-     * Give back a previously retrieved array, for later re-use.
+     * Recycle the TypedArray, to be re-used by a later caller. After calling
+     * this function you must not ever touch the typed array again.
      */
     public void recycle() {
+        if (mRecycled) {
+            throw new RuntimeException(toString() + " recycled twice!");
+        }
+
+        mRecycled = true;
         mResources = null;
         mMetrics = null;
         mAssets = null;
@@ -791,6 +895,10 @@
      * @hide
      */
     public int[] extractThemeAttrs() {
+        if (mRecycled) {
+            throw new RuntimeException("Cannot make calls to a recycled instance!");
+        }
+
         int[] attrs = null;
 
         final int N = length();
diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java
index 89a5819..4bea9ee 100644
--- a/core/java/android/hardware/Sensor.java
+++ b/core/java/android/hardware/Sensor.java
@@ -38,6 +38,13 @@
     public static final int TYPE_ACCELEROMETER = 1;
 
     /**
+     * A constant string describing an accelerometer sensor type.
+     *
+     * @see #TYPE_ACCELEROMETER
+     */
+    public static final String STRING_TYPE_ACCELEROMETER = "android.sensor.accelerometer";
+
+    /**
      * A constant describing a magnetic field sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
@@ -45,6 +52,13 @@
     public static final int TYPE_MAGNETIC_FIELD = 2;
 
     /**
+     * A constant string describing a magnetic field sensor type.
+     *
+     * @see #TYPE_MAGNETIC_FIELD
+     */
+    public static final String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field";
+
+    /**
      * A constant describing an orientation sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
@@ -55,24 +69,58 @@
     @Deprecated
     public static final int TYPE_ORIENTATION = 3;
 
-    /** A constant describing a gyroscope sensor type.
+    /**
+     * A constant string describing an orientation sensor type.
+     *
+     * @see #TYPE_ORIENTATION
+     * @deprecated use {@link android.hardware.SensorManager#getOrientation
+     *             SensorManager.getOrientation()} instead.
+     */
+    @Deprecated
+    public static final String STRING_TYPE_ORIENTATION = "android.sensor.orientation";
+
+    /**
+     * A constant describing a gyroscope sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details. */
     public static final int TYPE_GYROSCOPE = 4;
 
     /**
+     * A constant string describing a gyroscope sensor type.
+     *
+     * @see #TYPE_GYROSCOPE
+     */
+    public static final String STRING_TYPE_GYROSCOPE = "android.sensor.gyroscope";
+
+    /**
      * A constant describing a light sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
      */
     public static final int TYPE_LIGHT = 5;
 
-    /** A constant describing a pressure sensor type.
+    /**
+     * A constant string describing a light sensor type.
+     *
+     * @see #TYPE_LIGHT
+     */
+    public static final String STRING_TYPE_LIGHT = "android.sensor.light";
+
+    /**
+     * A constant describing a pressure sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
-     * for more details. */
+     * for more details.
+     */
     public static final int TYPE_PRESSURE = 6;
 
     /**
+     * A constant string describing a pressure sensor type.
+     *
+     * @see #TYPE_PRESSURE
+     */
+    public static final String STRING_TYPE_PRESSURE = "android.sensor.pressure";
+
+    /**
      * A constant describing a temperature sensor type
      *
      * @deprecated use
@@ -83,6 +131,17 @@
     public static final int TYPE_TEMPERATURE = 7;
 
     /**
+     * A constant string describing a temperature sensor type
+     *
+     * @see #TYPE_TEMPERATURE
+     * @deprecated use
+     *             {@link android.hardware.Sensor#STRING_TYPE_AMBIENT_TEMPERATURE
+     *             Sensor.STRING_TYPE_AMBIENT_TEMPERATURE} instead.
+     */
+    @Deprecated
+    public static final String STRING_TYPE_TEMPERATURE = "android.sensor.temperature";
+
+    /**
      * A constant describing a proximity sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
@@ -90,6 +149,13 @@
     public static final int TYPE_PROXIMITY = 8;
 
     /**
+     * A constant string describing a proximity sensor type.
+     *
+     * @see #TYPE_PROXIMITY
+     */
+    public static final String STRING_TYPE_PROXIMITY = "android.sensor.proximity";
+
+    /**
      * A constant describing a gravity sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
@@ -97,6 +163,13 @@
     public static final int TYPE_GRAVITY = 9;
 
     /**
+     * A constant string describing a gravity sensor type.
+     *
+     * @see #TYPE_GRAVITY
+     */
+    public static final String STRING_TYPE_GRAVITY = "android.sensor.gravity";
+
+    /**
      * A constant describing a linear acceleration sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
@@ -104,6 +177,14 @@
     public static final int TYPE_LINEAR_ACCELERATION = 10;
 
     /**
+     * A constant string describing a linear acceleration sensor type.
+     *
+     * @see #TYPE_LINEAR_ACCELERATION
+     */
+    public static final String STRING_TYPE_LINEAR_ACCELERATION =
+        "android.sensor.linear_acceleration";
+
+    /**
      * A constant describing a rotation vector sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
@@ -111,18 +192,42 @@
     public static final int TYPE_ROTATION_VECTOR = 11;
 
     /**
+     * A constant string describing a rotation vector sensor type.
+     *
+     * @see #TYPE_ROTATION_VECTOR
+     */
+    public static final String STRING_TYPE_ROTATION_VECTOR = "android.sensor.rotation_vector";
+
+    /**
      * A constant describing a relative humidity sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
      * for more details.
      */
     public static final int TYPE_RELATIVE_HUMIDITY = 12;
 
-    /** A constant describing an ambient temperature sensor type.
+    /**
+     * A constant string describing a relative humidity sensor type
+     *
+     * @see #TYPE_RELATIVE_HUMIDITY
+     */
+    public static final String STRING_TYPE_RELATIVE_HUMIDITY = "android.sensor.relative_humidity";
+
+    /**
+     * A constant describing an ambient temperature sensor type.
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values}
-     * for more details. */
+     * for more details.
+     */
     public static final int TYPE_AMBIENT_TEMPERATURE = 13;
 
     /**
+     * A constant string describing an ambient temperature sensor type.
+     *
+     * @see #TYPE_AMBIENT_TEMPERATURE
+     */
+    public static final String STRING_TYPE_AMBIENT_TEMPERATURE =
+        "android.sensor.ambient_temperature";
+
+    /**
      * A constant describing an uncalibrated magnetic field sensor type.
      * <p>
      * Similar to {@link #TYPE_MAGNETIC_FIELD} but the hard iron calibration (device calibration
@@ -139,6 +244,13 @@
      * details.
      */
     public static final int TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14;
+    /**
+     * A constant string describing an uncalibrated magnetic field sensor type.
+     *
+     * @see #TYPE_MAGNETIC_FIELD_UNCALIBRATED
+     */
+    public static final String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED =
+        "android.sensor.magnetic_field_uncalibrated";
 
     /**
      * A constant describing an uncalibrated rotation vector sensor type.
@@ -156,10 +268,17 @@
      * <p>See {@link android.hardware.SensorEvent#values SensorEvent.values} for more
      * details.
      */
-
     public static final int TYPE_GAME_ROTATION_VECTOR = 15;
 
     /**
+     * A constant string describing an uncalibrated rotation vector sensor type.
+     *
+     * @see #TYPE_GAME_ROTATION_VECTOR
+     */
+    public static final String STRING_TYPE_GAME_ROTATION_VECTOR =
+        "android.sensor.game_rotation_vector";
+
+    /**
      * A constant describing an uncalibrated gyroscope sensor type.
      * <p>Similar to {@link #TYPE_GYROSCOPE} but no gyro-drift compensation has been performed
      * to adjust the given sensor values. However, such gyro-drift bias values
@@ -174,6 +293,14 @@
     public static final int TYPE_GYROSCOPE_UNCALIBRATED = 16;
 
     /**
+     * A constant string describing an uncalibrated gyroscope sensor type.
+     *
+     * @see #TYPE_GYROSCOPE_UNCALIBRATED
+     */
+    public static final String STRING_TYPE_GYROSCOPE_UNCALIBRATED =
+        "android.sensor.gyroscope_uncalibrated";
+
+    /**
      * A constant describing a significant motion trigger sensor.
      * <p>
      * It triggers when an event occurs and then automatically disables
@@ -186,6 +313,14 @@
     public static final int TYPE_SIGNIFICANT_MOTION = 17;
 
     /**
+     * A constant string describing a significant motion trigger sensor.
+     *
+     * @see #TYPE_SIGNIFICANT_MOTION
+     */
+    public static final String STRING_TYPE_SIGNIFICANT_MOTION =
+        "android.sensor.significant_motion";
+
+    /**
      * A constant describing a step detector sensor.
      * <p>
      * A sensor of this type triggers an event each time a step is taken by the user. The only
@@ -198,6 +333,13 @@
     public static final int TYPE_STEP_DETECTOR = 18;
 
     /**
+     * A constant string describing a step detector sensor.
+     *
+     * @see #TYPE_STEP_DETECTOR
+     */
+    public static final String STRING_TYPE_STEP_DETECTOR = "android.sensor.step_detector";
+
+    /**
      * A constant describing a step counter sensor.
      * <p>
      * A sensor of this type returns the number of steps taken by the user since the last reboot
@@ -211,7 +353,14 @@
     public static final int TYPE_STEP_COUNTER = 19;
 
     /**
-     * A constant describing the geo-magnetic rotation vector.
+     * A constant string describing a step counter sensor.
+     *
+     * @see #TYPE_STEP_COUNTER
+     */
+    public static final String STRING_TYPE_STEP_COUNTER = "android.sensor.step_counter";
+
+    /**
+     * A constant describing a geo-magnetic rotation vector.
      * <p>
      * Similar to {@link #TYPE_ROTATION_VECTOR}, but using a magnetometer instead of using a
      * gyroscope. This sensor uses lower power than the other rotation vectors, because it doesn't
@@ -222,6 +371,32 @@
     public static final int TYPE_GEOMAGNETIC_ROTATION_VECTOR = 20;
 
     /**
+     * A constant string describing a geo-magnetic rotation vector.
+     *
+     * @see #TYPE_GEOMAGNETIC_ROTATION_VECTOR
+     */
+    public static final String STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR =
+        "android.sensor.geomagnetic_rotation_vector";
+
+    /**
+     * A constant describing a heart rate monitor.
+     * <p>
+     * A sensor that measures the heart rate in beats per minute.
+     * <p>
+     * value[0] represents the beats per minute when the measurement was taken.
+     * value[0] is 0 if the heart rate monitor could not measure the rate or the
+     * rate is 0 beat per minute.
+     */
+    public static final int TYPE_HEART_RATE = 21;
+
+    /**
+     * A constant string describing a heart rate monitor.
+     *
+     * @see #TYPE_HEART_RATE
+     */
+    public static final String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate";
+
+    /**
      * A constant describing all sensor types.
      */
     public static final int TYPE_ALL = -1;
@@ -265,7 +440,8 @@
             // added post 4.3
             REPORTING_MODE_ON_CHANGE,  1, // SENSOR_TYPE_STEP_DETECTOR
             REPORTING_MODE_ON_CHANGE,  1, // SENSOR_TYPE_STEP_COUNTER
-            REPORTING_MODE_CONTINUOUS, 5  // SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR
+            REPORTING_MODE_CONTINUOUS, 5, // SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR
+            REPORTING_MODE_ON_CHANGE, 1  // SENSOR_TYPE_HEART_RATE_MONITOR
     };
 
     static int getReportingMode(Sensor sensor) {
@@ -321,6 +497,8 @@
     private int     mMinDelay;
     private int     mFifoReservedEventCount;
     private int     mFifoMaxEventCount;
+    private String  mStringType;
+    private String  mRequiredPermission;
 
     Sensor() {
     }
@@ -401,6 +579,20 @@
         return mFifoMaxEventCount;
     }
 
+    /**
+     * @return The type of this sensor as a string.
+     */
+    public String getStringType() {
+        return mStringType;
+    }
+
+    /**
+     * @return The permission required to access this sensor. If empty, no permission is required.
+     */
+    public String getRequiredPermission() {
+        return mRequiredPermission;
+    }
+
     /** @hide */
     public int getHandle() {
         return mHandle;
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java
index 37bead8..9852776 100644
--- a/core/java/android/hardware/camera2/CameraCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraCharacteristics.java
@@ -950,6 +950,19 @@
             new Key<int[]>("android.sensor.info.sensitivityRange", int[].class);
 
     /**
+     * <p>Arrangement of color filters on sensor;
+     * represents the colors in the top-left 2x2 section of
+     * the sensor, in reading order</p>
+     * @see #SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB
+     * @see #SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG
+     * @see #SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG
+     * @see #SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR
+     * @see #SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB
+     */
+    public static final Key<Integer> SENSOR_INFO_COLOR_FILTER_ARRANGEMENT =
+            new Key<Integer>("android.sensor.info.colorFilterArrangement", int.class);
+
+    /**
      * <p>Range of valid exposure
      * times used by {@link CaptureRequest#SENSOR_EXPOSURE_TIME android.sensor.exposureTime}.</p>
      *
@@ -1093,8 +1106,8 @@
      *
      * @see CaptureRequest#SENSOR_TEST_PATTERN_MODE
      */
-    public static final Key<Byte> SENSOR_AVAILABLE_TEST_PATTERN_MODES =
-            new Key<Byte>("android.sensor.availableTestPatternModes", byte.class);
+    public static final Key<int[]> SENSOR_AVAILABLE_TEST_PATTERN_MODES =
+            new Key<int[]>("android.sensor.availableTestPatternModes", int[].class);
 
     /**
      * <p>Which face detection modes are available,
diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java
index 42c8e3d..9b1bc53 100644
--- a/core/java/android/hardware/camera2/CameraMetadata.java
+++ b/core/java/android/hardware/camera2/CameraMetadata.java
@@ -425,6 +425,38 @@
     public static final int SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT = 1;
 
     //
+    // Enumeration values for CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+    //
+
+    /**
+     * @see CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+     */
+    public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB = 0;
+
+    /**
+     * @see CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+     */
+    public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG = 1;
+
+    /**
+     * @see CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+     */
+    public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG = 2;
+
+    /**
+     * @see CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+     */
+    public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR = 3;
+
+    /**
+     * <p>Sensor is not Bayer; output has 3 16-bit
+     * values for each pixel, instead of just 1 16-bit value
+     * per pixel.</p>
+     * @see CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+     */
+    public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB = 4;
+
+    //
     // Enumeration values for CameraCharacteristics#LED_AVAILABLE_LEDS
     //
 
@@ -908,6 +940,17 @@
      */
     public static final int CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG = 5;
 
+    /**
+     * <p>This request is for manual capture use case where
+     * the applications want to directly control the capture parameters
+     * (e.g. {@link CaptureRequest#SENSOR_EXPOSURE_TIME android.sensor.exposureTime}, {@link CaptureRequest#SENSOR_SENSITIVITY android.sensor.sensitivity} etc.).</p>
+     *
+     * @see CaptureRequest#SENSOR_EXPOSURE_TIME
+     * @see CaptureRequest#SENSOR_SENSITIVITY
+     * @see CaptureRequest#CONTROL_CAPTURE_INTENT
+     */
+    public static final int CONTROL_CAPTURE_INTENT_MANUAL = 6;
+
     //
     // Enumeration values for CaptureRequest#CONTROL_EFFECT_MODE
     //
@@ -1002,8 +1045,11 @@
      * controls; the camera device will ignore those settings while
      * USE_SCENE_MODE is active (except for FACE_PRIORITY
      * scene mode). Other control entries are still active.
-     * This setting can only be used if availableSceneModes !=
-     * UNSUPPORTED</p>
+     * This setting can only be used if scene mode is supported
+     * (i.e. {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES android.control.availableSceneModes} contain some modes
+     * other than DISABLED).</p>
+     *
+     * @see CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES
      * @see CaptureRequest#CONTROL_MODE
      */
     public static final int CONTROL_MODE_USE_SCENE_MODE = 2;
diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java
index 7656505..c4e342c 100644
--- a/core/java/android/hardware/camera2/CaptureRequest.java
+++ b/core/java/android/hardware/camera2/CaptureRequest.java
@@ -714,16 +714,21 @@
      * auto-focus, auto-white balance) routines about the purpose
      * of this capture, to help the camera device to decide optimal 3A
      * strategy.</p>
-     * <p>This control is only effective if <code>{@link CaptureRequest#CONTROL_MODE android.control.mode} != OFF</code>
-     * and any 3A routine is active.</p>
+     * <p>This control (except for MANUAL) is only effective if
+     * <code>{@link CaptureRequest#CONTROL_MODE android.control.mode} != OFF</code> and any 3A routine is active.</p>
+     * <p>ZERO_SHUTTER_LAG must be supported if {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
+     * contains ZSL. MANUAL must be supported if {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
+     * contains MANUAL_SENSOR.</p>
      *
      * @see CaptureRequest#CONTROL_MODE
+     * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
      * @see #CONTROL_CAPTURE_INTENT_CUSTOM
      * @see #CONTROL_CAPTURE_INTENT_PREVIEW
      * @see #CONTROL_CAPTURE_INTENT_STILL_CAPTURE
      * @see #CONTROL_CAPTURE_INTENT_VIDEO_RECORD
      * @see #CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT
      * @see #CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG
+     * @see #CONTROL_CAPTURE_INTENT_MANUAL
      */
     public static final Key<Integer> CONTROL_CAPTURE_INTENT =
             new Key<Integer>("android.control.captureIntent", int.class);
diff --git a/core/java/android/hardware/camera2/CaptureResultExtras.aidl b/core/java/android/hardware/camera2/CaptureResultExtras.aidl
new file mode 100644
index 0000000..6587f02
--- /dev/null
+++ b/core/java/android/hardware/camera2/CaptureResultExtras.aidl
@@ -0,0 +1,20 @@
+/*
+ * 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 android.hardware.camera2;
+
+/** @hide */
+parcelable CaptureResultExtras;
diff --git a/core/java/android/hardware/camera2/CaptureResultExtras.java b/core/java/android/hardware/camera2/CaptureResultExtras.java
new file mode 100644
index 0000000..e5c2c1c
--- /dev/null
+++ b/core/java/android/hardware/camera2/CaptureResultExtras.java
@@ -0,0 +1,90 @@
+/*
+ * 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 android.hardware.camera2;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * @hide
+ */
+public class CaptureResultExtras implements Parcelable {
+    private int requestId;
+    private int subsequenceId;
+    private int afTriggerId;
+    private int precaptureTriggerId;
+    private long frameNumber;
+
+    public static final Parcelable.Creator<CaptureResultExtras> CREATOR =
+            new Parcelable.Creator<CaptureResultExtras>() {
+        @Override
+        public CaptureResultExtras createFromParcel(Parcel in) {
+            return new CaptureResultExtras(in);
+        }
+
+        @Override
+        public CaptureResultExtras[] newArray(int size) {
+            return new CaptureResultExtras[size];
+        }
+    };
+
+    private CaptureResultExtras(Parcel in) {
+        readFromParcel(in);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(requestId);
+        dest.writeInt(subsequenceId);
+        dest.writeInt(afTriggerId);
+        dest.writeInt(precaptureTriggerId);
+        dest.writeLong(frameNumber);
+    }
+
+    public void readFromParcel(Parcel in) {
+        requestId = in.readInt();
+        subsequenceId = in.readInt();
+        afTriggerId = in.readInt();
+        precaptureTriggerId = in.readInt();
+        frameNumber = in.readLong();
+    }
+
+    public int getRequestId() {
+        return requestId;
+    }
+
+    public int getSubsequenceId() {
+        return subsequenceId;
+    }
+
+    public int getAfTriggerId() {
+        return afTriggerId;
+    }
+
+    public int getPrecaptureTriggerId() {
+        return precaptureTriggerId;
+    }
+
+    public long getFrameNumber() {
+        return frameNumber;
+    }
+
+}
diff --git a/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl b/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
index 02a73d66..a14d38b 100644
--- a/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
+++ b/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
@@ -17,6 +17,7 @@
 package android.hardware.camera2;
 
 import android.hardware.camera2.impl.CameraMetadataNative;
+import android.hardware.camera2.CaptureResultExtras;
 
 /** @hide */
 interface ICameraDeviceCallbacks
@@ -25,8 +26,9 @@
      * Keep up-to-date with frameworks/av/include/camera/camera2/ICameraDeviceCallbacks.h
      */
 
-    oneway void onCameraError(int errorCode);
+    oneway void onCameraError(int errorCode, in CaptureResultExtras resultExtras);
     oneway void onCameraIdle();
-    oneway void onCaptureStarted(int requestId, long timestamp);
-    oneway void onResultReceived(int requestId, in CameraMetadataNative result);
+    oneway void onCaptureStarted(in CaptureResultExtras resultExtras, long timestamp);
+    oneway void onResultReceived(in CameraMetadataNative result,
+                                 in CaptureResultExtras resultExtras);
 }
diff --git a/core/java/android/hardware/camera2/ICameraDeviceUser.aidl b/core/java/android/hardware/camera2/ICameraDeviceUser.aidl
index 1936963..d77f3d1 100644
--- a/core/java/android/hardware/camera2/ICameraDeviceUser.aidl
+++ b/core/java/android/hardware/camera2/ICameraDeviceUser.aidl
@@ -20,6 +20,8 @@
 import android.hardware.camera2.impl.CameraMetadataNative;
 import android.hardware.camera2.CaptureRequest;
 
+import android.hardware.camera2.LongParcelable;
+
 /** @hide */
 interface ICameraDeviceUser
 {
@@ -31,9 +33,13 @@
     // ints here are status_t
 
     // non-negative value is the requestId. negative value is status_t
-    int submitRequest(in CaptureRequest request, boolean streaming);
+    int submitRequest(in CaptureRequest request, boolean streaming,
+                      out LongParcelable lastFrameNumber);
 
-    int cancelRequest(int requestId);
+    int submitRequestList(in List<CaptureRequest> requestList, boolean streaming,
+                          out LongParcelable lastFrameNumber);
+
+    int cancelRequest(int requestId, out LongParcelable lastFrameNumber);
 
     int deleteStream(int streamId);
 
@@ -46,5 +52,5 @@
 
     int waitUntilIdle();
 
-    int flush();
+    int flush(out LongParcelable lastFrameNumber);
 }
diff --git a/core/java/android/hardware/camera2/LongParcelable.aidl b/core/java/android/hardware/camera2/LongParcelable.aidl
new file mode 100644
index 0000000..7d7e51b
--- /dev/null
+++ b/core/java/android/hardware/camera2/LongParcelable.aidl
@@ -0,0 +1,20 @@
+/*
+ * 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 android.hardware.camera2;
+
+/** @hide */
+parcelable LongParcelable;
\ No newline at end of file
diff --git a/core/java/android/hardware/camera2/LongParcelable.java b/core/java/android/hardware/camera2/LongParcelable.java
new file mode 100644
index 0000000..97b0631
--- /dev/null
+++ b/core/java/android/hardware/camera2/LongParcelable.java
@@ -0,0 +1,74 @@
+/*
+ * 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 android.hardware.camera2;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * @hide
+ */
+public class LongParcelable implements Parcelable {
+    private long number;
+
+    public LongParcelable() {
+        this.number = 0;
+    }
+
+    public LongParcelable(long number) {
+        this.number = number;
+    }
+
+    public static final Parcelable.Creator<LongParcelable> CREATOR =
+            new Parcelable.Creator<LongParcelable>() {
+        @Override
+        public LongParcelable createFromParcel(Parcel in) {
+            return new LongParcelable(in);
+        }
+
+        @Override
+        public LongParcelable[] newArray(int size) {
+            return new LongParcelable[size];
+        }
+    };
+
+    private LongParcelable(Parcel in) {
+        readFromParcel(in);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeLong(number);
+    }
+
+    public void readFromParcel(Parcel in) {
+        number = in.readLong();
+    }
+
+    public long getNumber() {
+        return number;
+    }
+
+    public void setNumber(long number) {
+        this.number = number;
+    }
+
+}
diff --git a/core/java/android/hardware/camera2/impl/CameraDevice.java b/core/java/android/hardware/camera2/impl/CameraDevice.java
index 2c8a5c2..cd44b51 100644
--- a/core/java/android/hardware/camera2/impl/CameraDevice.java
+++ b/core/java/android/hardware/camera2/impl/CameraDevice.java
@@ -21,8 +21,10 @@
 import android.hardware.camera2.CameraAccessException;
 import android.hardware.camera2.CaptureRequest;
 import android.hardware.camera2.CaptureResult;
+import android.hardware.camera2.CaptureResultExtras;
 import android.hardware.camera2.ICameraDeviceCallbacks;
 import android.hardware.camera2.ICameraDeviceUser;
+import android.hardware.camera2.LongParcelable;
 import android.hardware.camera2.utils.CameraBinderDecorator;
 import android.hardware.camera2.utils.CameraRuntimeException;
 import android.os.Handler;
@@ -33,10 +35,12 @@
 import android.util.SparseArray;
 import android.view.Surface;
 
+import java.util.AbstractMap.SimpleEntry;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.TreeSet;
 
 /**
  * HAL2.1+ implementation of CameraDevice. Use CameraManager#open to instantiate
@@ -69,10 +73,24 @@
 
     private final String mCameraId;
 
+    /**
+     * A list tracking request and its expected last frame.
+     * Updated when calling ICameraDeviceUser methods.
+     */
+    private final List<SimpleEntry</*frameNumber*/Long, /*requestId*/Integer>>
+            mFrameNumberRequestPairs = new ArrayList<SimpleEntry<Long, Integer>>();
+
+    /**
+     * An object tracking received frame numbers.
+     * Updated when receiving callbacks from ICameraDeviceCallbacks.
+     */
+    private final FrameNumberTracker mFrameNumberTracker = new FrameNumberTracker();
+
     // Runnables for all state transitions, except error, which needs the
     // error code argument
 
     private final Runnable mCallOnOpened = new Runnable() {
+        @Override
         public void run() {
             if (!CameraDevice.this.isClosed()) {
                 mDeviceListener.onOpened(CameraDevice.this);
@@ -81,6 +99,7 @@
     };
 
     private final Runnable mCallOnUnconfigured = new Runnable() {
+        @Override
         public void run() {
             if (!CameraDevice.this.isClosed()) {
                 mDeviceListener.onUnconfigured(CameraDevice.this);
@@ -89,6 +108,7 @@
     };
 
     private final Runnable mCallOnActive = new Runnable() {
+        @Override
         public void run() {
             if (!CameraDevice.this.isClosed()) {
                 mDeviceListener.onActive(CameraDevice.this);
@@ -97,6 +117,7 @@
     };
 
     private final Runnable mCallOnBusy = new Runnable() {
+        @Override
         public void run() {
             if (!CameraDevice.this.isClosed()) {
                 mDeviceListener.onBusy(CameraDevice.this);
@@ -105,12 +126,14 @@
     };
 
     private final Runnable mCallOnClosed = new Runnable() {
+        @Override
         public void run() {
             mDeviceListener.onClosed(CameraDevice.this);
         }
     };
 
     private final Runnable mCallOnIdle = new Runnable() {
+        @Override
         public void run() {
             if (!CameraDevice.this.isClosed()) {
                 mDeviceListener.onIdle(CameraDevice.this);
@@ -119,6 +142,7 @@
     };
 
     private final Runnable mCallOnDisconnected = new Runnable() {
+        @Override
         public void run() {
             if (!CameraDevice.this.isClosed()) {
                 mDeviceListener.onDisconnected(CameraDevice.this);
@@ -249,22 +273,26 @@
     @Override
     public int capture(CaptureRequest request, CaptureListener listener, Handler handler)
             throws CameraAccessException {
-        return submitCaptureRequest(request, listener, handler, /*streaming*/false);
+        if (DEBUG) {
+            Log.d(TAG, "calling capture");
+        }
+        List<CaptureRequest> requestList = new ArrayList<CaptureRequest>();
+        requestList.add(request);
+        return submitCaptureRequest(requestList, listener, handler, /*streaming*/false);
     }
 
     @Override
     public int captureBurst(List<CaptureRequest> requests, CaptureListener listener,
             Handler handler) throws CameraAccessException {
+        // TODO: remove this. Throw IAE if the request is null or empty. Need to update API doc.
         if (requests.isEmpty()) {
             Log.w(TAG, "Capture burst request list is empty, do nothing!");
             return -1;
         }
-        // TODO
-        throw new UnsupportedOperationException("Burst capture implemented yet");
-
+        return submitCaptureRequest(requests, listener, handler, /*streaming*/false);
     }
 
-    private int submitCaptureRequest(CaptureRequest request, CaptureListener listener,
+    private int submitCaptureRequest(List<CaptureRequest> requestList, CaptureListener listener,
             Handler handler, boolean repeating) throws CameraAccessException {
 
         // Need a valid handler, or current thread needs to have a looper, if
@@ -281,8 +309,13 @@
                 stopRepeating();
             }
 
+            LongParcelable lastFrameNumberRef = new LongParcelable();
             try {
-                requestId = mRemoteDevice.submitRequest(request, repeating);
+                requestId = mRemoteDevice.submitRequestList(requestList, repeating,
+                        /*out*/lastFrameNumberRef);
+                if (!repeating) {
+                    Log.v(TAG, "last frame number " + lastFrameNumberRef.getNumber());
+                }
             } catch (CameraRuntimeException e) {
                 throw e.asChecked();
             } catch (RemoteException e) {
@@ -290,12 +323,29 @@
                 return -1;
             }
             if (listener != null) {
-                mCaptureListenerMap.put(requestId, new CaptureListenerHolder(listener, request,
-                        handler, repeating));
+                mCaptureListenerMap.put(requestId, new CaptureListenerHolder(listener,
+                        requestList, handler, repeating));
             }
 
+            long lastFrameNumber = lastFrameNumberRef.getNumber();
+            /**
+             * If it's the first repeating request, then returned lastFrameNumber can be
+             * negative. Otherwise, it should always be non-negative.
+             */
+            if (((lastFrameNumber < 0) && (requestId > 0))
+                    || ((lastFrameNumber < 0) && (!repeating))) {
+                throw new AssertionError(String.format("returned bad frame number %d",
+                        lastFrameNumber));
+            }
             if (repeating) {
+                if (mRepeatingRequestId != REQUEST_ID_NONE) {
+                    mFrameNumberRequestPairs.add(
+                            new SimpleEntry<Long, Integer>(lastFrameNumber, mRepeatingRequestId));
+                }
                 mRepeatingRequestId = requestId;
+            } else {
+                mFrameNumberRequestPairs.add(
+                        new SimpleEntry<Long, Integer>(lastFrameNumber, requestId));
             }
 
             if (mIdle) {
@@ -310,18 +360,20 @@
     @Override
     public int setRepeatingRequest(CaptureRequest request, CaptureListener listener,
             Handler handler) throws CameraAccessException {
-        return submitCaptureRequest(request, listener, handler, /*streaming*/true);
+        List<CaptureRequest> requestList = new ArrayList<CaptureRequest>();
+        requestList.add(request);
+        return submitCaptureRequest(requestList, listener, handler, /*streaming*/true);
     }
 
     @Override
     public int setRepeatingBurst(List<CaptureRequest> requests, CaptureListener listener,
             Handler handler) throws CameraAccessException {
+        // TODO: remove this. Throw IAE if the request is null or empty. Need to update API doc.
         if (requests.isEmpty()) {
             Log.w(TAG, "Set Repeating burst request list is empty, do nothing!");
             return -1;
         }
-        // TODO
-        throw new UnsupportedOperationException("Burst capture implemented yet");
+        return submitCaptureRequest(requests, listener, handler, /*streaming*/true);
     }
 
     @Override
@@ -335,10 +387,20 @@
                 mRepeatingRequestId = REQUEST_ID_NONE;
 
                 // Queue for deletion after in-flight requests finish
-                mRepeatingRequestIdDeletedList.add(requestId);
+                if (mCaptureListenerMap.get(requestId) != null) {
+                    mRepeatingRequestIdDeletedList.add(requestId);
+                }
 
                 try {
-                    mRemoteDevice.cancelRequest(requestId);
+                    LongParcelable lastFrameNumberRef = new LongParcelable();
+                    mRemoteDevice.cancelRequest(requestId, /*out*/lastFrameNumberRef);
+                    long lastFrameNumber = lastFrameNumberRef.getNumber();
+                    if ((lastFrameNumber < 0) && (requestId > 0)) {
+                        throw new AssertionError(String.format("returned bad frame number %d",
+                                lastFrameNumber));
+                    }
+                    mFrameNumberRequestPairs.add(
+                            new SimpleEntry<Long, Integer>(lastFrameNumber, requestId));
                 } catch (CameraRuntimeException e) {
                     throw e.asChecked();
                 } catch (RemoteException e) {
@@ -367,8 +429,6 @@
             }
 
             mRepeatingRequestId = REQUEST_ID_NONE;
-            mRepeatingRequestIdDeletedList.clear();
-            mCaptureListenerMap.clear();
         }
     }
 
@@ -379,7 +439,17 @@
 
             mDeviceHandler.post(mCallOnBusy);
             try {
-                mRemoteDevice.flush();
+                LongParcelable lastFrameNumberRef = new LongParcelable();
+                mRemoteDevice.flush(/*out*/lastFrameNumberRef);
+                if (mRepeatingRequestId != REQUEST_ID_NONE) {
+                    long lastFrameNumber = lastFrameNumberRef.getNumber();
+                    if (lastFrameNumber < 0) {
+                        Log.e(TAG, String.format("returned bad frame number %d", lastFrameNumber));
+                    }
+                    mFrameNumberRequestPairs.add(
+                            new SimpleEntry<Long, Integer>(lastFrameNumber, mRepeatingRequestId));
+                    mRepeatingRequestId = REQUEST_ID_NONE;
+                }
             } catch (CameraRuntimeException e) {
                 throw e.asChecked();
             } catch (RemoteException e) {
@@ -425,18 +495,18 @@
 
         private final boolean mRepeating;
         private final CaptureListener mListener;
-        private final CaptureRequest mRequest;
+        private final List<CaptureRequest> mRequestList;
         private final Handler mHandler;
 
-        CaptureListenerHolder(CaptureListener listener, CaptureRequest request, Handler handler,
-                boolean repeating) {
+        CaptureListenerHolder(CaptureListener listener, List<CaptureRequest> requestList,
+                Handler handler, boolean repeating) {
             if (listener == null || handler == null) {
                 throw new UnsupportedOperationException(
                     "Must have a valid handler and a valid listener");
             }
             mRepeating = repeating;
             mHandler = handler;
-            mRequest = request;
+            mRequestList = new ArrayList<CaptureRequest>(requestList);
             mListener = listener;
         }
 
@@ -448,8 +518,24 @@
             return mListener;
         }
 
+        public CaptureRequest getRequest(int subsequenceId) {
+            if (subsequenceId >= mRequestList.size()) {
+                throw new IllegalArgumentException(
+                        String.format(
+                                "Requested subsequenceId %d is larger than request list size %d.",
+                                subsequenceId, mRequestList.size()));
+            } else {
+                if (subsequenceId < 0) {
+                    throw new IllegalArgumentException(String.format(
+                            "Requested subsequenceId %d is negative", subsequenceId));
+                } else {
+                    return mRequestList.get(subsequenceId);
+                }
+            }
+        }
+
         public CaptureRequest getRequest() {
-            return mRequest;
+            return getRequest(0);
         }
 
         public Handler getHandler() {
@@ -458,6 +544,105 @@
 
     }
 
+    /**
+     * This class tracks the last frame number for submitted requests.
+     */
+    public class FrameNumberTracker {
+
+        private long mCompletedFrameNumber = -1;
+        private final TreeSet<Long> mFutureErrorSet = new TreeSet<Long>();
+
+        private void update() {
+            Iterator<Long> iter = mFutureErrorSet.iterator();
+            while (iter.hasNext()) {
+                long errorFrameNumber = iter.next();
+                if (errorFrameNumber == mCompletedFrameNumber + 1) {
+                    mCompletedFrameNumber++;
+                    iter.remove();
+                } else {
+                    break;
+                }
+            }
+        }
+
+        /**
+         * This function is called every time when a result or an error is received.
+         * @param frameNumber: the frame number corresponding to the result or error
+         * @param isError: true if it is an error, false if it is not an error
+         */
+        public void updateTracker(long frameNumber, boolean isError) {
+            if (isError) {
+                mFutureErrorSet.add(frameNumber);
+            } else {
+                /**
+                 * HAL cannot send an OnResultReceived for frame N unless it knows for
+                 * sure that all frames prior to N have either errored out or completed.
+                 * So if the current frame is not an error, then all previous frames
+                 * should have arrived. The following line checks whether this holds.
+                 */
+                if (frameNumber != mCompletedFrameNumber + 1) {
+                    throw new AssertionError(String.format(
+                            "result frame number %d comes out of order",
+                            frameNumber));
+                }
+                mCompletedFrameNumber++;
+            }
+            update();
+        }
+
+        public long getCompletedFrameNumber() {
+            return mCompletedFrameNumber;
+        }
+
+    }
+
+    private void checkAndFireSequenceComplete() {
+        long completedFrameNumber = mFrameNumberTracker.getCompletedFrameNumber();
+        Iterator<SimpleEntry<Long, Integer> > iter = mFrameNumberRequestPairs.iterator();
+        while (iter.hasNext()) {
+            final SimpleEntry<Long, Integer> frameNumberRequestPair = iter.next();
+            if (frameNumberRequestPair.getKey() <= completedFrameNumber) {
+
+                // remove request from mCaptureListenerMap
+                final int requestId = frameNumberRequestPair.getValue();
+                final CaptureListenerHolder holder;
+                synchronized (mLock) {
+                    int index = CameraDevice.this.mCaptureListenerMap.indexOfKey(requestId);
+                    holder = (index >= 0) ? CameraDevice.this.mCaptureListenerMap.valueAt(index)
+                            : null;
+                    if (holder != null) {
+                        CameraDevice.this.mCaptureListenerMap.removeAt(index);
+                    }
+                }
+                iter.remove();
+
+                // Call onCaptureSequenceCompleted
+                if (holder != null) {
+                    Runnable resultDispatch = new Runnable() {
+                        @Override
+                        public void run() {
+                            if (!CameraDevice.this.isClosed()){
+                                if (DEBUG) {
+                                    Log.d(TAG, String.format(
+                                            "fire sequence complete for request %d",
+                                            requestId));
+                                }
+
+                                holder.getListener().onCaptureSequenceCompleted(
+                                    CameraDevice.this,
+                                    requestId,
+                                    // TODO: this is problematic, crop long to int
+                                    frameNumberRequestPair.getKey().intValue());
+                            }
+                        }
+                    };
+                    holder.getHandler().post(resultDispatch);
+                }
+
+            }
+        }
+    }
+
     public class CameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
 
         //
@@ -492,7 +677,7 @@
         }
 
         @Override
-        public void onCameraError(final int errorCode) {
+        public void onCameraError(final int errorCode, CaptureResultExtras resultExtras) {
             Runnable r = null;
             if (isClosed()) return;
 
@@ -507,6 +692,7 @@
                     case ERROR_CAMERA_DEVICE:
                     case ERROR_CAMERA_SERVICE:
                         r = new Runnable() {
+                            @Override
                             public void run() {
                                 if (!CameraDevice.this.isClosed()) {
                                     mDeviceListener.onError(CameraDevice.this, errorCode);
@@ -517,6 +703,11 @@
                 }
                 CameraDevice.this.mDeviceHandler.post(r);
             }
+
+            // Fire onCaptureSequenceCompleted
+            mFrameNumberTracker.updateTracker(resultExtras.getFrameNumber(), /*error*/true);
+            checkAndFireSequenceComplete();
+
         }
 
         @Override
@@ -535,7 +726,8 @@
         }
 
         @Override
-        public void onCaptureStarted(int requestId, final long timestamp) {
+        public void onCaptureStarted(final CaptureResultExtras resultExtras, final long timestamp) {
+            int requestId = resultExtras.getRequestId();
             if (DEBUG) {
                 Log.d(TAG, "Capture started for id " + requestId);
             }
@@ -555,11 +747,12 @@
             // Dispatch capture start notice
             holder.getHandler().post(
                 new Runnable() {
+                    @Override
                     public void run() {
                         if (!CameraDevice.this.isClosed()) {
                             holder.getListener().onCaptureStarted(
                                 CameraDevice.this,
-                                holder.getRequest(),
+                                holder.getRequest(resultExtras.getSubsequenceId()),
                                 timestamp);
                         }
                     }
@@ -567,48 +760,18 @@
         }
 
         @Override
-        public void onResultReceived(int requestId, CameraMetadataNative result)
-                throws RemoteException {
+        public void onResultReceived(CameraMetadataNative result,
+                CaptureResultExtras resultExtras) throws RemoteException {
+            int requestId = resultExtras.getRequestId();
             if (DEBUG) {
                 Log.d(TAG, "Received result for id " + requestId);
             }
-            final CaptureListenerHolder holder;
+            final CaptureListenerHolder holder =
+                    CameraDevice.this.mCaptureListenerMap.get(requestId);
 
             Boolean quirkPartial = result.get(CaptureResult.QUIRKS_PARTIAL_RESULT);
             boolean quirkIsPartialResult = (quirkPartial != null && quirkPartial);
 
-            synchronized (mLock) {
-                // TODO: move this whole map into this class to make it more testable,
-                //        exposing the methods necessary like subscribeToRequest, unsubscribe..
-                // TODO: make class static class
-
-                holder = CameraDevice.this.mCaptureListenerMap.get(requestId);
-
-                // Clean up listener once we no longer expect to see it.
-                if (holder != null && !holder.isRepeating() && !quirkIsPartialResult) {
-                    CameraDevice.this.mCaptureListenerMap.remove(requestId);
-                }
-
-                // TODO: add 'capture sequence completed' callback to the
-                // service, and clean up repeating requests there instead.
-
-                // If we received a result for a repeating request and have
-                // prior repeating requests queued for deletion, remove those
-                // requests from mCaptureListenerMap.
-                if (holder != null && holder.isRepeating() && !quirkIsPartialResult
-                        && mRepeatingRequestIdDeletedList.size() > 0) {
-                    Iterator<Integer> iter = mRepeatingRequestIdDeletedList.iterator();
-                    while (iter.hasNext()) {
-                        int deletedRequestId = iter.next();
-                        if (deletedRequestId < requestId) {
-                            CameraDevice.this.mCaptureListenerMap.remove(deletedRequestId);
-                            iter.remove();
-                        }
-                    }
-                }
-
-            }
-
             // Check if we have a listener for this
             if (holder == null) {
                 return;
@@ -616,7 +779,7 @@
 
             if (isClosed()) return;
 
-            final CaptureRequest request = holder.getRequest();
+            final CaptureRequest request = holder.getRequest(resultExtras.getSubsequenceId());
             final CaptureResult resultAsCapture = new CaptureResult(result, request, requestId);
 
             Runnable resultDispatch = null;
@@ -651,6 +814,12 @@
             }
 
             holder.getHandler().post(resultDispatch);
+
+            // Fire onCaptureSequenceCompleted
+            if (!quirkIsPartialResult) {
+                mFrameNumberTracker.updateTracker(resultExtras.getFrameNumber(), /*error*/false);
+                checkAndFireSequenceComplete();
+            }
         }
 
     }
diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
index 0d4a4cb..c5e5753 100644
--- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
+++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
@@ -461,6 +461,10 @@
             return (T) getFaces();
         } else if (key.equals(CaptureResult.STATISTICS_FACE_RECTANGLES)) {
             return (T) getFaceRectangles();
+        } else if (key.equals(CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS)) {
+            return (T) getAvailableStreamConfigurations();
+        } else if (key.equals(CameraCharacteristics.SCALER_AVAILABLE_MIN_FRAME_DURATIONS)) {
+            return (T) getAvailableMinFrameDurations();
         }
 
         // For other keys, get() falls back to getBase()
@@ -481,6 +485,50 @@
         return availableFormats;
     }
 
+    private int[] getAvailableStreamConfigurations() {
+        final int NUM_ELEMENTS_IN_CONFIG = 4;
+        int[] availableConfigs =
+                getBase(CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS);
+        if (availableConfigs != null) {
+            if (availableConfigs.length % NUM_ELEMENTS_IN_CONFIG != 0) {
+                Log.w(TAG, "availableStreamConfigurations is malformed, length must be multiple"
+                        + " of " + NUM_ELEMENTS_IN_CONFIG);
+                return availableConfigs;
+            }
+
+            for (int i = 0; i < availableConfigs.length; i += NUM_ELEMENTS_IN_CONFIG) {
+                // JPEG has different value between native and managed side, need override.
+                if (availableConfigs[i] == NATIVE_JPEG_FORMAT) {
+                    availableConfigs[i] = ImageFormat.JPEG;
+                }
+            }
+        }
+
+        return availableConfigs;
+    }
+
+    private long[] getAvailableMinFrameDurations() {
+        final int NUM_ELEMENTS_IN_DURATION = 4;
+        long[] availableMinDurations =
+                getBase(CameraCharacteristics.SCALER_AVAILABLE_MIN_FRAME_DURATIONS);
+        if (availableMinDurations != null) {
+            if (availableMinDurations.length % NUM_ELEMENTS_IN_DURATION != 0) {
+                Log.w(TAG, "availableStreamConfigurations is malformed, length must be multiple"
+                        + " of " + NUM_ELEMENTS_IN_DURATION);
+                return availableMinDurations;
+            }
+
+            for (int i = 0; i < availableMinDurations.length; i += NUM_ELEMENTS_IN_DURATION) {
+                // JPEG has different value between native and managed side, need override.
+                if (availableMinDurations[i] == NATIVE_JPEG_FORMAT) {
+                    availableMinDurations[i] = ImageFormat.JPEG;
+                }
+            }
+        }
+
+        return availableMinDurations;
+    }
+
     private Face[] getFaces() {
         final int FACE_LANDMARK_SIZE = 6;
 
@@ -607,12 +655,56 @@
             return setAvailableFormats((int[]) value);
         } else if (key.equals(CaptureResult.STATISTICS_FACE_RECTANGLES)) {
             return setFaceRectangles((Rect[]) value);
+        } else if (key.equals(CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS)) {
+            return setAvailableStreamConfigurations((int[])value);
+        } else if (key.equals(CameraCharacteristics.SCALER_AVAILABLE_MIN_FRAME_DURATIONS)) {
+            return setAvailableMinFrameDurations((long[])value);
         }
 
         // For other keys, set() falls back to setBase().
         return false;
     }
 
+    private boolean setAvailableStreamConfigurations(int[] value) {
+        final int NUM_ELEMENTS_IN_CONFIG = 4;
+        int[] availableConfigs = value;
+        if (value == null) {
+            // Let setBase() to handle the null value case.
+            return false;
+        }
+
+        int[] newValues = new int[availableConfigs.length];
+        for (int i = 0; i < availableConfigs.length; i++) {
+            newValues[i] = availableConfigs[i];
+            if (i % NUM_ELEMENTS_IN_CONFIG == 0 && availableConfigs[i] == ImageFormat.JPEG) {
+                newValues[i] = NATIVE_JPEG_FORMAT;
+            }
+        }
+
+        setBase(CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS, newValues);
+        return true;
+    }
+
+    private boolean setAvailableMinFrameDurations(long[] value) {
+        final int NUM_ELEMENTS_IN_DURATION = 4;
+        long[] availableDurations = value;
+        if (value == null) {
+            // Let setBase() to handle the null value case.
+            return false;
+        }
+
+        long[] newValues = new long[availableDurations.length];
+        for (int i = 0; i < availableDurations.length; i++) {
+            newValues[i] = availableDurations[i];
+            if (i % NUM_ELEMENTS_IN_DURATION == 0 && availableDurations[i] == ImageFormat.JPEG) {
+                newValues[i] = NATIVE_JPEG_FORMAT;
+            }
+        }
+
+        setBase(CameraCharacteristics.SCALER_AVAILABLE_MIN_FRAME_DURATIONS, newValues);
+        return true;
+    }
+
     private boolean setAvailableFormats(int[] value) {
         int[] availableFormat = value;
         if (value == null) {
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java
index 8430973..cec90cd 100644
--- a/core/java/android/hardware/display/DisplayManagerInternal.java
+++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -16,6 +16,9 @@
 
 package android.hardware.display;
 
+import android.hardware.SensorManager;
+import android.os.Handler;
+import android.os.PowerManager;
 import android.view.DisplayInfo;
 
 /**
@@ -25,14 +28,34 @@
  */
 public abstract class DisplayManagerInternal {
     /**
-     * Called by the power manager to blank all displays.
+     * Called by the power manager to initialize power management facilities.
      */
-    public abstract void blankAllDisplaysFromPowerManager();
+    public abstract void initPowerManagement(DisplayPowerCallbacks callbacks,
+            Handler handler, SensorManager sensorManager);
 
     /**
-     * Called by the power manager to unblank all displays.
+     * Called by the power manager to request a new power state.
+     * <p>
+     * The display power controller makes a copy of the provided object and then
+     * begins adjusting the power state to match what was requested.
+     * </p>
+     *
+     * @param request The requested power state.
+     * @param waitForNegativeProximity If true, issues a request to wait for
+     * negative proximity before turning the screen back on, assuming the screen
+     * was turned off by the proximity sensor.
+     * @return True if display is ready, false if there are important changes that must
+     * be made asynchronously (such as turning the screen on), in which case the caller
+     * should grab a wake lock, watch for {@link DisplayPowerCallbacks#onStateChanged()}
+     * then try the request again later until the state converges.
      */
-    public abstract void unblankAllDisplaysFromPowerManager();
+    public abstract boolean requestPowerState(DisplayPowerRequest request,
+            boolean waitForNegativeProximity);
+
+    /**
+     * Returns true if the proximity sensor screen-off function is available.
+     */
+    public abstract boolean isProximitySensorAvailable();
 
     /**
      * Returns information about the specified logical display.
@@ -99,6 +122,135 @@
             boolean inTraversal);
 
     /**
+     * Describes the requested power state of the display.
+     *
+     * This object is intended to describe the general characteristics of the
+     * power state, such as whether the screen should be on or off and the current
+     * brightness controls leaving the DisplayPowerController to manage the
+     * details of how the transitions between states should occur.  The goal is for
+     * the PowerManagerService to focus on the global power state and not
+     * have to micro-manage screen off animations, auto-brightness and other effects.
+     */
+    public static final class DisplayPowerRequest {
+        public static final int SCREEN_STATE_OFF = 0;
+        public static final int SCREEN_STATE_DOZE = 1;
+        public static final int SCREEN_STATE_DIM = 2;
+        public static final int SCREEN_STATE_BRIGHT = 3;
+
+        // The requested minimum screen power state: off, doze, dim or bright.
+        public int screenState;
+
+        // If true, the proximity sensor overrides the screen state when an object is
+        // nearby, turning it off temporarily until the object is moved away.
+        public boolean useProximitySensor;
+
+        // The desired screen brightness in the range 0 (minimum / off) to 255 (brightest).
+        // The display power controller may choose to clamp the brightness.
+        // When auto-brightness is enabled, this field should specify a nominal default
+        // value to use while waiting for the light sensor to report enough data.
+        public int screenBrightness;
+
+        // The screen auto-brightness adjustment factor in the range -1 (dimmer) to 1 (brighter).
+        public float screenAutoBrightnessAdjustment;
+
+        // If true, enables automatic brightness control.
+        public boolean useAutoBrightness;
+
+        // If true, prevents the screen from completely turning on if it is currently off.
+        // The display does not enter a "ready" state if this flag is true and screen on is
+        // blocked.  The window manager policy blocks screen on while it prepares the keyguard to
+        // prevent the user from seeing intermediate updates.
+        //
+        // Technically, we may not block the screen itself from turning on (because that introduces
+        // extra unnecessary latency) but we do prevent content on screen from becoming
+        // visible to the user.
+        public boolean blockScreenOn;
+
+        public DisplayPowerRequest() {
+            screenState = SCREEN_STATE_BRIGHT;
+            useProximitySensor = false;
+            screenBrightness = PowerManager.BRIGHTNESS_ON;
+            screenAutoBrightnessAdjustment = 0.0f;
+            useAutoBrightness = false;
+            blockScreenOn = false;
+        }
+
+        public DisplayPowerRequest(DisplayPowerRequest other) {
+            copyFrom(other);
+        }
+
+        // Returns true if we want the screen on in any mode, including doze.
+        public boolean wantScreenOnAny() {
+            return screenState != SCREEN_STATE_OFF;
+        }
+
+        // Returns true if we want the screen on in a normal mode, excluding doze.
+        // This is usually what we want to tell the rest of the system.  For compatibility
+        // reasons, we pretend the screen is off when dozing.
+        public boolean wantScreenOnNormal() {
+            return screenState == SCREEN_STATE_DIM || screenState == SCREEN_STATE_BRIGHT;
+        }
+
+        public boolean wantLightSensorEnabled() {
+            // Specifically, we don't want the light sensor while dozing.
+            return useAutoBrightness && wantScreenOnNormal();
+        }
+
+        public void copyFrom(DisplayPowerRequest other) {
+            screenState = other.screenState;
+            useProximitySensor = other.useProximitySensor;
+            screenBrightness = other.screenBrightness;
+            screenAutoBrightnessAdjustment = other.screenAutoBrightnessAdjustment;
+            useAutoBrightness = other.useAutoBrightness;
+            blockScreenOn = other.blockScreenOn;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            return o instanceof DisplayPowerRequest
+                    && equals((DisplayPowerRequest)o);
+        }
+
+        public boolean equals(DisplayPowerRequest other) {
+            return other != null
+                    && screenState == other.screenState
+                    && useProximitySensor == other.useProximitySensor
+                    && screenBrightness == other.screenBrightness
+                    && screenAutoBrightnessAdjustment == other.screenAutoBrightnessAdjustment
+                    && useAutoBrightness == other.useAutoBrightness
+                    && blockScreenOn == other.blockScreenOn;
+        }
+
+        @Override
+        public int hashCode() {
+            return 0; // don't care
+        }
+
+        @Override
+        public String toString() {
+            return "screenState=" + screenState
+                    + ", useProximitySensor=" + useProximitySensor
+                    + ", screenBrightness=" + screenBrightness
+                    + ", screenAutoBrightnessAdjustment=" + screenAutoBrightnessAdjustment
+                    + ", useAutoBrightness=" + useAutoBrightness
+                    + ", blockScreenOn=" + blockScreenOn;
+        }
+    }
+
+    /**
+     * Asynchronous callbacks from the power controller to the power manager service.
+     */
+    public interface DisplayPowerCallbacks {
+        void onStateChanged();
+        void onProximityPositive();
+        void onProximityNegative();
+        void onDisplayStateChange(int state); // one of the Display state constants
+
+        void acquireSuspendBlocker();
+        void releaseSuspendBlocker();
+    }
+
+    /**
      * Called within a Surface transaction whenever the size or orientation of a
      * display may have changed.  Provides an opportunity for the client to
      * update the position of its surfaces as part of the same transaction.
diff --git a/core/java/android/hardware/hdmi/HdmiCec.java b/core/java/android/hardware/hdmi/HdmiCec.java
index 38d9de4..8578a32 100644
--- a/core/java/android/hardware/hdmi/HdmiCec.java
+++ b/core/java/android/hardware/hdmi/HdmiCec.java
@@ -160,6 +160,12 @@
     public static final int MESSAGE_SET_EXTERNAL_TIMER = 0xA2;
     public static final int MESSAGE_ABORT = 0xFF;
 
+    public static final int POWER_STATUS_UNKNOWN = -1;
+    public static final int POWER_STATUS_ON = 0;
+    public static final int POWER_STATUS_STANDBY = 1;
+    public static final int POWER_TRANSIENT_TO_ON = 2;
+    public static final int POWER_TRANSIENT_TO_STANDBY = 3;
+
     private static final int[] ADDRESS_TO_TYPE = {
         DEVICE_TV,  // ADDR_TV
         DEVICE_RECORDER,  // ADDR_RECORDER_1
diff --git a/core/java/android/hardware/hdmi/HdmiCecClient.java b/core/java/android/hardware/hdmi/HdmiCecClient.java
index d7f4a72..cd86cd8 100644
--- a/core/java/android/hardware/hdmi/HdmiCecClient.java
+++ b/core/java/android/hardware/hdmi/HdmiCecClient.java
@@ -88,7 +88,7 @@
     }
 
     /**
-     * Send &lt;TextViewOn&gt; message.
+     * Send &lt;Text View On&gt; message.
      */
     public void sendTextViewOn() {
         try {
@@ -99,7 +99,7 @@
     }
 
     /**
-     * Send &lt;ImageViewOn&gt; message.
+     * Send &lt;Image View On&gt; message.
      */
     public void sendImageViewOn() {
         try {
@@ -110,7 +110,7 @@
     }
 
     /**
-     * Send &lt;GiveDevicePowerStatus&gt; message.
+     * Send &lt;Give Device Power Status&gt; message.
      *
      * @param address logical address of the device to send the message to, such as
      *        {@link HdmiCec#ADDR_TV}.
@@ -122,4 +122,22 @@
             Log.e(TAG, "sendGiveDevicePowerStatus threw exception ", e);
         }
     }
+
+    /**
+     * Returns true if the TV or attached display is powered on.
+     * <p>
+     * The result of this method is only meaningful on playback devices (where the device
+     * type is {@link HdmiCec#DEVICE_PLAYBACK}).
+     * </p>
+     *
+     * @return true if TV is on; otherwise false.
+     */
+    public boolean isTvOn() {
+        try {
+            return mService.isTvOn(mBinder);
+        } catch (RemoteException e) {
+            Log.e(TAG, "isTvOn threw exception ", e);
+        }
+        return false;
+    }
 }
diff --git a/core/java/android/hardware/hdmi/HdmiCecManager.java b/core/java/android/hardware/hdmi/HdmiCecManager.java
index 575785d..10b058c 100644
--- a/core/java/android/hardware/hdmi/HdmiCecManager.java
+++ b/core/java/android/hardware/hdmi/HdmiCecManager.java
@@ -45,6 +45,9 @@
      * @return {@link HdmiCecClient} instance. {@code null} on failure.
      */
     public HdmiCecClient getClient(int type, HdmiCecClient.Listener listener) {
+        if (mService == null) {
+            return null;
+        }
         try {
             IBinder b = mService.allocateLogicalDevice(type, getListenerWrapper(listener));
             return HdmiCecClient.create(mService, b);
diff --git a/core/java/android/hardware/hdmi/IHdmiCecService.aidl b/core/java/android/hardware/hdmi/IHdmiCecService.aidl
index 6fefcf8..ecdd345 100644
--- a/core/java/android/hardware/hdmi/IHdmiCecService.aidl
+++ b/core/java/android/hardware/hdmi/IHdmiCecService.aidl
@@ -29,12 +29,12 @@
 interface IHdmiCecService {
     IBinder allocateLogicalDevice(int type, IHdmiCecListener listener);
     void removeServiceListener(IBinder b, IHdmiCecListener listener);
-    void setOsdName(IBinder b, String name);
     void sendActiveSource(IBinder b);
     void sendInactiveSource(IBinder b);
     void sendImageViewOn(IBinder b);
     void sendTextViewOn(IBinder b);
     void sendGiveDevicePowerStatus(IBinder b, int address);
+    boolean isTvOn(IBinder b);
     void sendMessage(IBinder b, in HdmiCecMessage message);
 }
 
diff --git a/core/java/android/hardware/input/InputManagerInternal.java b/core/java/android/hardware/input/InputManagerInternal.java
index 8be94d0..6a392dd 100644
--- a/core/java/android/hardware/input/InputManagerInternal.java
+++ b/core/java/android/hardware/input/InputManagerInternal.java
@@ -25,12 +25,18 @@
  * @hide Only for use within the system server.
  */
 public abstract class InputManagerInternal {
+    public abstract boolean injectInputEvent(InputEvent event, int displayId, int mode);
+
     /**
-     * Sets information about the displays as needed by the input system.
-     * The input system should copy this information if required.
+     * Called by the display manager to set information about the displays as needed
+     * by the input system.  The input system must copy this information to retain it.
      */
     public abstract void setDisplayViewports(DisplayViewport defaultViewport,
             DisplayViewport externalTouchViewport);
 
-    public abstract boolean injectInputEvent(InputEvent event, int displayId, int mode);
+    /**
+     * Called by the power manager to tell the input manager whether it should start
+     * watching for wake events.
+     */
+    public abstract void setInteractive(boolean interactive);
 }
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 81ad28b..c51d1a7 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -249,6 +249,16 @@
      */
     public static final int IME_VISIBLE = 0x2;
 
+    /**
+     * The IME does not require cursor/anchor position.
+     */
+    public static final int CURSOR_ANCHOR_MONITOR_MODE_NONE = 0x0;
+
+    /**
+     * The IME expects that {@link #onUpdateCursor(Rect)} is called back.
+     */
+    public static final int CURSOR_ANCHOR_MONITOR_MODE_CURSOR_RECT = 0x1;
+
     InputMethodManager mImm;
     
     int mTheme = 0;
@@ -647,6 +657,7 @@
                 getApplicationInfo().targetSdkVersion,
                 android.R.style.Theme_InputMethod,
                 android.R.style.Theme_Holo_InputMethod,
+                android.R.style.Theme_DeviceDefault_InputMethod,
                 android.R.style.Theme_DeviceDefault_InputMethod);
         super.setTheme(mTheme);
         super.onCreate();
@@ -1701,6 +1712,13 @@
     }
 
     /**
+     * Update the cursor/anthor monitor mode.
+     */
+    public void setCursorAnchorMonitorMode(int monitorMode) {
+        mImm.setCursorAnchorMonitorMode(mToken, monitorMode);
+    }
+
+    /**
      * Close this input method's soft input area, removing it from the display.
      * The input method will continue running, but the user can no longer use
      * it to generate input by touching the screen.
diff --git a/core/java/android/net/http/CertificateChainValidator.java b/core/java/android/net/http/CertificateChainValidator.java
index a28b5a7..d06355d 100644
--- a/core/java/android/net/http/CertificateChainValidator.java
+++ b/core/java/android/net/http/CertificateChainValidator.java
@@ -22,6 +22,8 @@
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
@@ -74,13 +76,16 @@
     private CertificateChainValidator() {
         try {
             TrustManagerFactory tmf = TrustManagerFactory.getInstance("X.509");
+            tmf.init((KeyStore) null);
             for (TrustManager tm : tmf.getTrustManagers()) {
                 if (tm instanceof X509ExtendedTrustManager) {
                     mTrustManager = (X509ExtendedTrustManager) tm;
                 }
             }
         } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException("X.509 TrustManager factory must be available", e);
+            throw new RuntimeException("X.509 TrustManagerFactory must be available", e);
+        } catch (KeyStoreException e) {
+            throw new RuntimeException("X.509 TrustManagerFactory cannot be initialized", e);
         }
 
         if (mTrustManager == null) {
@@ -166,9 +171,13 @@
         TrustManagerFactory tmf;
         try {
             tmf = TrustManagerFactory.getInstance("X.509");
+            tmf.init((KeyStore) null);
         } catch (NoSuchAlgorithmException e) {
             Slog.w(TAG, "Couldn't find default X.509 TrustManagerFactory");
             return;
+        } catch (KeyStoreException e) {
+            Slog.w(TAG, "Couldn't initialize default X.509 TrustManagerFactory", e);
+            return;
         }
 
         TrustManager[] tms = tmf.getTrustManagers();
diff --git a/core/java/android/net/http/X509TrustManagerExtensions.java b/core/java/android/net/http/X509TrustManagerExtensions.java
index a500bcf..830ddce 100644
--- a/core/java/android/net/http/X509TrustManagerExtensions.java
+++ b/core/java/android/net/http/X509TrustManagerExtensions.java
@@ -56,7 +56,8 @@
         if (tm instanceof TrustManagerImpl) {
             mDelegate = (TrustManagerImpl) tm;
         } else {
-            throw new IllegalArgumentException("tm is not a supported type of X509TrustManager");
+            throw new IllegalArgumentException("tm is an instance of " + tm.getClass().getName() +
+                    " which is not a supported type of X509TrustManager");
         }
     }
 
diff --git a/core/java/android/net/nsd/NsdManager.java b/core/java/android/net/nsd/NsdManager.java
index d8e8e2c..377ed88 100644
--- a/core/java/android/net/nsd/NsdManager.java
+++ b/core/java/android/net/nsd/NsdManager.java
@@ -211,6 +211,7 @@
     private Context mContext;
 
     private static final int INVALID_LISTENER_KEY = 0;
+    private static final int BUSY_LISTENER_KEY = -1;
     private int mListenerKey = 1;
     private final SparseArray mListenerMap = new SparseArray();
     private final SparseArray<NsdServiceInfo> mServiceMap = new SparseArray<NsdServiceInfo>();
@@ -317,71 +318,74 @@
                 Log.d(TAG, "Stale key " + message.arg2);
                 return;
             }
-            boolean listenerRemove = true;
             NsdServiceInfo ns = getNsdService(message.arg2);
             switch (message.what) {
                 case DISCOVER_SERVICES_STARTED:
                     String s = getNsdServiceInfoType((NsdServiceInfo) message.obj);
                     ((DiscoveryListener) listener).onDiscoveryStarted(s);
-                    // Keep listener until stop discovery
-                    listenerRemove = false;
                     break;
                 case DISCOVER_SERVICES_FAILED:
+                    removeListener(message.arg2);
                     ((DiscoveryListener) listener).onStartDiscoveryFailed(getNsdServiceInfoType(ns),
                             message.arg1);
                     break;
                 case SERVICE_FOUND:
                     ((DiscoveryListener) listener).onServiceFound((NsdServiceInfo) message.obj);
-                    // Keep listener until stop discovery
-                    listenerRemove = false;
                     break;
                 case SERVICE_LOST:
                     ((DiscoveryListener) listener).onServiceLost((NsdServiceInfo) message.obj);
-                    // Keep listener until stop discovery
-                    listenerRemove = false;
                     break;
                 case STOP_DISCOVERY_FAILED:
+                    removeListener(message.arg2);
                     ((DiscoveryListener) listener).onStopDiscoveryFailed(getNsdServiceInfoType(ns),
                             message.arg1);
                     break;
                 case STOP_DISCOVERY_SUCCEEDED:
+                    removeListener(message.arg2);
                     ((DiscoveryListener) listener).onDiscoveryStopped(getNsdServiceInfoType(ns));
                     break;
                 case REGISTER_SERVICE_FAILED:
+                    removeListener(message.arg2);
                     ((RegistrationListener) listener).onRegistrationFailed(ns, message.arg1);
                     break;
                 case REGISTER_SERVICE_SUCCEEDED:
                     ((RegistrationListener) listener).onServiceRegistered(
                             (NsdServiceInfo) message.obj);
-                    // Keep listener until unregister
-                    listenerRemove = false;
                     break;
                 case UNREGISTER_SERVICE_FAILED:
+                    removeListener(message.arg2);
                     ((RegistrationListener) listener).onUnregistrationFailed(ns, message.arg1);
                     break;
                 case UNREGISTER_SERVICE_SUCCEEDED:
+                    removeListener(message.arg2);
                     ((RegistrationListener) listener).onServiceUnregistered(ns);
                     break;
                 case RESOLVE_SERVICE_FAILED:
+                    removeListener(message.arg2);
                     ((ResolveListener) listener).onResolveFailed(ns, message.arg1);
                     break;
                 case RESOLVE_SERVICE_SUCCEEDED:
+                    removeListener(message.arg2);
                     ((ResolveListener) listener).onServiceResolved((NsdServiceInfo) message.obj);
                     break;
                 default:
                     Log.d(TAG, "Ignored " + message);
                     break;
             }
-            if (listenerRemove) {
-                removeListener(message.arg2);
-            }
         }
     }
 
+    // if the listener is already in the map, reject it.  Otherwise, add it and
+    // return its key.
+
     private int putListener(Object listener, NsdServiceInfo s) {
         if (listener == null) return INVALID_LISTENER_KEY;
         int key;
         synchronized (mMapLock) {
+            int valueIndex = mListenerMap.indexOfValue(listener);
+            if (valueIndex != -1) {
+                return BUSY_LISTENER_KEY;
+            }
             do {
                 key = mListenerKey++;
             } while (key == INVALID_LISTENER_KEY);
@@ -422,7 +426,6 @@
         return INVALID_LISTENER_KEY;
     }
 
-
     private String getNsdServiceInfoType(NsdServiceInfo s) {
         if (s == null) return "?";
         return s.getServiceType();
@@ -449,14 +452,18 @@
      * Register a service to be discovered by other services.
      *
      * <p> The function call immediately returns after sending a request to register service
-     * to the framework. The application is notified of a success to initiate
-     * discovery through the callback {@link RegistrationListener#onServiceRegistered} or a failure
+     * to the framework. The application is notified of a successful registration
+     * through the callback {@link RegistrationListener#onServiceRegistered} or a failure
      * through {@link RegistrationListener#onRegistrationFailed}.
      *
+     * <p> The application should call {@link #unregisterService} when the service
+     * registration is no longer required, and/or whenever the application is stopped.
+     *
      * @param serviceInfo The service being registered
      * @param protocolType The service discovery protocol
      * @param listener The listener notifies of a successful registration and is used to
      * unregister this service through a call on {@link #unregisterService}. Cannot be null.
+     * Cannot be in use for an active service registration.
      */
     public void registerService(NsdServiceInfo serviceInfo, int protocolType,
             RegistrationListener listener) {
@@ -473,8 +480,11 @@
         if (protocolType != PROTOCOL_DNS_SD) {
             throw new IllegalArgumentException("Unsupported protocol");
         }
-        mAsyncChannel.sendMessage(REGISTER_SERVICE, 0, putListener(listener, serviceInfo),
-                serviceInfo);
+        int key = putListener(listener, serviceInfo);
+        if (key == BUSY_LISTENER_KEY) {
+            throw new IllegalArgumentException("listener already in use");
+        }
+        mAsyncChannel.sendMessage(REGISTER_SERVICE, 0, key, serviceInfo);
     }
 
     /**
@@ -484,7 +494,11 @@
      *
      * @param listener This should be the listener object that was passed to
      * {@link #registerService}. It identifies the service that should be unregistered
-     * and notifies of a successful unregistration.
+     * and notifies of a successful or unsuccessful unregistration via the listener
+     * callbacks.  In API versions 20 and above, the listener object may be used for
+     * another service registration once the callback has been called.  In API versions <= 19,
+     * there is no entirely reliable way to know when a listener may be re-used, and a new
+     * listener should be created for each service registration request.
      */
     public void unregisterService(RegistrationListener listener) {
         int id = getListenerKey(listener);
@@ -514,12 +528,16 @@
      * <p> Upon failure to start, service discovery is not active and application does
      * not need to invoke {@link #stopServiceDiscovery}
      *
+     * <p> The application should call {@link #stopServiceDiscovery} when discovery of this
+     * service type is no longer required, and/or whenever the application is paused or
+     * stopped.
+     *
      * @param serviceType The service type being discovered. Examples include "_http._tcp" for
      * http services or "_ipp._tcp" for printers
      * @param protocolType The service discovery protocol
      * @param listener  The listener notifies of a successful discovery and is used
      * to stop discovery on this serviceType through a call on {@link #stopServiceDiscovery}.
-     * Cannot be null.
+     * Cannot be null. Cannot be in use for an active service discovery.
      */
     public void discoverServices(String serviceType, int protocolType, DiscoveryListener listener) {
         if (listener == null) {
@@ -535,11 +553,17 @@
 
         NsdServiceInfo s = new NsdServiceInfo();
         s.setServiceType(serviceType);
-        mAsyncChannel.sendMessage(DISCOVER_SERVICES, 0, putListener(listener, s), s);
+
+        int key = putListener(listener, s);
+        if (key == BUSY_LISTENER_KEY) {
+            throw new IllegalArgumentException("listener already in use");
+        }
+
+        mAsyncChannel.sendMessage(DISCOVER_SERVICES, 0, key, s);
     }
 
     /**
-     * Stop service discovery initiated with {@link #discoverServices}. An active service
+     * Stop service discovery initiated with {@link #discoverServices}.  An active service
      * discovery is notified to the application with {@link DiscoveryListener#onDiscoveryStarted}
      * and it stays active until the application invokes a stop service discovery. A successful
      * stop is notified to with a call to {@link DiscoveryListener#onDiscoveryStopped}.
@@ -548,7 +572,11 @@
      * {@link DiscoveryListener#onStopDiscoveryFailed}.
      *
      * @param listener This should be the listener object that was passed to {@link #discoverServices}.
-     * It identifies the discovery that should be stopped and notifies of a successful stop.
+     * It identifies the discovery that should be stopped and notifies of a successful or
+     * unsuccessful stop.  In API versions 20 and above, the listener object may be used for
+     * another service discovery once the callback has been called.  In API versions <= 19,
+     * there is no entirely reliable way to know when a listener may be re-used, and a new
+     * listener should be created for each service discovery request.
      */
     public void stopServiceDiscovery(DiscoveryListener listener) {
         int id = getListenerKey(listener);
@@ -568,6 +596,7 @@
      *
      * @param serviceInfo service to be resolved
      * @param listener to receive callback upon success or failure. Cannot be null.
+     * Cannot be in use for an active service resolution.
      */
     public void resolveService(NsdServiceInfo serviceInfo, ResolveListener listener) {
         if (TextUtils.isEmpty(serviceInfo.getServiceName()) ||
@@ -577,8 +606,13 @@
         if (listener == null) {
             throw new IllegalArgumentException("listener cannot be null");
         }
-        mAsyncChannel.sendMessage(RESOLVE_SERVICE, 0, putListener(listener, serviceInfo),
-                serviceInfo);
+
+        int key = putListener(listener, serviceInfo);
+
+        if (key == BUSY_LISTENER_KEY) {
+            throw new IllegalArgumentException("listener already in use");
+        }
+        mAsyncChannel.sendMessage(RESOLVE_SERVICE, 0, key, serviceInfo);
     }
 
     /** Internal use only @hide */
diff --git a/core/java/android/net/nsd/NsdServiceInfo.java b/core/java/android/net/nsd/NsdServiceInfo.java
index 205a21d..6fdb0d0 100644
--- a/core/java/android/net/nsd/NsdServiceInfo.java
+++ b/core/java/android/net/nsd/NsdServiceInfo.java
@@ -18,8 +18,15 @@
 
 import android.os.Parcelable;
 import android.os.Parcel;
+import android.util.Log;
+import android.util.ArrayMap;
 
+import java.io.UnsupportedEncodingException;
 import java.net.InetAddress;
+import java.nio.charset.StandardCharsets;
+import java.util.Collections;
+import java.util.Map;
+
 
 /**
  * A class representing service information for network service discovery
@@ -27,11 +34,13 @@
  */
 public final class NsdServiceInfo implements Parcelable {
 
+    private static final String TAG = "NsdServiceInfo";
+
     private String mServiceName;
 
     private String mServiceType;
 
-    private DnsSdTxtRecord mTxtRecord;
+    private final ArrayMap<String, byte[]> mTxtRecord = new ArrayMap<String, byte[]>();
 
     private InetAddress mHost;
 
@@ -41,10 +50,9 @@
     }
 
     /** @hide */
-    public NsdServiceInfo(String sn, String rt, DnsSdTxtRecord tr) {
+    public NsdServiceInfo(String sn, String rt) {
         mServiceName = sn;
         mServiceType = rt;
-        mTxtRecord = tr;
     }
 
     /** Get the service name */
@@ -67,16 +75,6 @@
         mServiceType = s;
     }
 
-    /** @hide */
-    public DnsSdTxtRecord getTxtRecord() {
-        return mTxtRecord;
-    }
-
-    /** @hide */
-    public void setTxtRecord(DnsSdTxtRecord t) {
-        mTxtRecord = new DnsSdTxtRecord(t);
-    }
-
     /** Get the host address. The host address is valid for a resolved service. */
     public InetAddress getHost() {
         return mHost;
@@ -97,14 +95,134 @@
         mPort = p;
     }
 
+    /** @hide */
+    public void setAttribute(String key, byte[] value) {
+        // Key must be printable US-ASCII, excluding =.
+        for (int i = 0; i < key.length(); ++i) {
+            char character = key.charAt(i);
+            if (character < 0x20 || character > 0x7E) {
+                throw new IllegalArgumentException("Key strings must be printable US-ASCII");
+            } else if (character == 0x3D) {
+                throw new IllegalArgumentException("Key strings must not include '='");
+            }
+        }
+
+        // Key length + value length must be < 255.
+        if (key.length() + (value == null ? 0 : value.length) >= 255) {
+            throw new IllegalArgumentException("Key length + value length must be < 255 bytes");
+        }
+
+        // Warn if key is > 9 characters, as recommended by RFC 6763 section 6.4.
+        if (key.length() > 9) {
+            Log.w(TAG, "Key lengths > 9 are discouraged: " + key);
+        }
+
+        // Check against total TXT record size limits.
+        // Arbitrary 400 / 1300 byte limits taken from RFC 6763 section 6.2.
+        int txtRecordSize = getTxtRecordSize();
+        int futureSize = txtRecordSize + key.length() + (value == null ? 0 : value.length) + 2;
+        if (futureSize > 1300) {
+            throw new IllegalArgumentException("Total length of attributes must be < 1300 bytes");
+        } else if (futureSize > 400) {
+            Log.w(TAG, "Total length of all attributes exceeds 400 bytes; truncation may occur");
+        }
+
+        mTxtRecord.put(key, value);
+    }
+
+    /**
+     * Add a service attribute as a key/value pair.
+     *
+     * <p> Service attributes are included as DNS-SD TXT record pairs.
+     *
+     * <p> The key must be US-ASCII printable characters, excluding the '=' character.  Values may
+     * be UTF-8 strings or null.  The total length of key + value must be less than 255 bytes.
+     *
+     * <p> Keys should be short, ideally no more than 9 characters, and unique per instance of
+     * {@link NsdServiceInfo}.  Calling {@link #setAttribute} twice with the same key will overwrite
+     * first value.
+     */
+    public void setAttribute(String key, String value) {
+        try {
+            setAttribute(key, value == null ? (byte []) null : value.getBytes("UTF-8"));
+        } catch (UnsupportedEncodingException e) {
+            throw new IllegalArgumentException("Value must be UTF-8");
+        }
+    }
+
+    /** Remove an attribute by key */
+    public void removeAttribute(String key) {
+        mTxtRecord.remove(key);
+    }
+
+    /**
+     * Retrive attributes as a map of String keys to byte[] values.
+     *
+     * <p> The returned map is unmodifiable; changes must be made through {@link #setAttribute} and
+     * {@link #removeAttribute}.
+     */
+    public Map<String, byte[]> getAttributes() {
+        return Collections.unmodifiableMap(mTxtRecord);
+    }
+
+    private int getTxtRecordSize() {
+        int txtRecordSize = 0;
+        for (Map.Entry<String, byte[]> entry : mTxtRecord.entrySet()) {
+            txtRecordSize += 2;  // One for the length byte, one for the = between key and value.
+            txtRecordSize += entry.getKey().length();
+            byte[] value = entry.getValue();
+            txtRecordSize += value == null ? 0 : value.length;
+        }
+        return txtRecordSize;
+    }
+
+    /** @hide */
+    public byte[] getTxtRecord() {
+        int txtRecordSize = getTxtRecordSize();
+        if (txtRecordSize == 0) {
+            return null;
+        }
+
+        byte[] txtRecord = new byte[txtRecordSize];
+        int ptr = 0;
+        for (Map.Entry<String, byte[]> entry : mTxtRecord.entrySet()) {
+            String key = entry.getKey();
+            byte[] value = entry.getValue();
+
+            // One byte to record the length of this key/value pair.
+            txtRecord[ptr++] = (byte) (key.length() + (value == null ? 0 : value.length) + 1);
+
+            // The key, in US-ASCII.
+            // Note: use the StandardCharsets const here because it doesn't raise exceptions and we
+            // already know the key is ASCII at this point.
+            System.arraycopy(key.getBytes(StandardCharsets.US_ASCII), 0, txtRecord, ptr,
+                    key.length());
+            ptr += key.length();
+
+            // US-ASCII '=' character.
+            txtRecord[ptr++] = (byte)'=';
+
+            // The value, as any raw bytes.
+            if (value != null) {
+                System.arraycopy(value, 0, txtRecord, ptr, value.length);
+                ptr += value.length;
+            }
+        }
+        return txtRecord;
+    }
+
     public String toString() {
         StringBuffer sb = new StringBuffer();
 
-        sb.append("name: ").append(mServiceName).
-            append("type: ").append(mServiceType).
-            append("host: ").append(mHost).
-            append("port: ").append(mPort).
-            append("txtRecord: ").append(mTxtRecord);
+        sb.append("name: ").append(mServiceName)
+                .append(", type: ").append(mServiceType)
+                .append(", host: ").append(mHost)
+                .append(", port: ").append(mPort);
+
+        byte[] txtRecord = getTxtRecord();
+        if (txtRecord != null) {
+            sb.append(", txtRecord: ").append(new String(txtRecord, StandardCharsets.UTF_8));
+        }
         return sb.toString();
     }
 
@@ -117,14 +235,27 @@
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeString(mServiceName);
         dest.writeString(mServiceType);
-        dest.writeParcelable(mTxtRecord, flags);
         if (mHost != null) {
-            dest.writeByte((byte)1);
+            dest.writeInt(1);
             dest.writeByteArray(mHost.getAddress());
         } else {
-            dest.writeByte((byte)0);
+            dest.writeInt(0);
         }
         dest.writeInt(mPort);
+
+        // TXT record key/value pairs.
+        dest.writeInt(mTxtRecord.size());
+        for (String key : mTxtRecord.keySet()) {
+            byte[] value = mTxtRecord.get(key);
+            if (value != null) {
+                dest.writeInt(1);
+                dest.writeInt(value.length);
+                dest.writeByteArray(value);
+            } else {
+                dest.writeInt(0);
+            }
+            dest.writeString(key);
+        }
     }
 
     /** Implement the Parcelable interface */
@@ -134,15 +265,26 @@
                 NsdServiceInfo info = new NsdServiceInfo();
                 info.mServiceName = in.readString();
                 info.mServiceType = in.readString();
-                info.mTxtRecord = in.readParcelable(null);
 
-                if (in.readByte() == 1) {
+                if (in.readInt() == 1) {
                     try {
                         info.mHost = InetAddress.getByAddress(in.createByteArray());
                     } catch (java.net.UnknownHostException e) {}
                 }
 
                 info.mPort = in.readInt();
+
+                // TXT record key/value pairs.
+                int recordCount = in.readInt();
+                for (int i = 0; i < recordCount; ++i) {
+                    byte[] valueArray = null;
+                    if (in.readInt() == 1) {
+                        int valueLength = in.readInt();
+                        valueArray = new byte[valueLength];
+                        in.readByteArray(valueArray);
+                    }
+                    info.mTxtRecord.put(in.readString(), valueArray);
+                }
                 return info;
             }
 
diff --git a/core/java/android/os/BatteryManager.java b/core/java/android/os/BatteryManager.java
index 2e38960..f339e52 100644
--- a/core/java/android/os/BatteryManager.java
+++ b/core/java/android/os/BatteryManager.java
@@ -16,9 +16,15 @@
 
 package android.os;
 
+import android.os.BatteryProperty;
+import android.os.IBatteryPropertiesRegistrar;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+
 /**
  * The BatteryManager class contains strings and constants used for values
- * in the {@link android.content.Intent#ACTION_BATTERY_CHANGED} Intent.
+ * in the {@link android.content.Intent#ACTION_BATTERY_CHANGED} Intent, and
+ * provides a method for querying battery and charging properties.
  */
 public class BatteryManager {
     /**
@@ -121,4 +127,30 @@
     /** @hide */
     public static final int BATTERY_PLUGGED_ANY =
             BATTERY_PLUGGED_AC | BATTERY_PLUGGED_USB | BATTERY_PLUGGED_WIRELESS;
+
+    private IBatteryPropertiesRegistrar mBatteryPropertiesRegistrar;
+
+    /**
+     * Return the requested battery property.
+     *
+     * @param id identifier from {@link BatteryProperty} of the requested property
+     * @return a {@link BatteryProperty} object that returns the property value, or null on error
+     */
+    public BatteryProperty getProperty(int id) throws RemoteException {
+        if (mBatteryPropertiesRegistrar == null) {
+            IBinder b = ServiceManager.getService("batteryproperties");
+            mBatteryPropertiesRegistrar =
+                IBatteryPropertiesRegistrar.Stub.asInterface(b);
+
+            if (mBatteryPropertiesRegistrar == null)
+                return null;
+        }
+
+        BatteryProperty prop = new BatteryProperty(Integer.MIN_VALUE);
+        if ((mBatteryPropertiesRegistrar.getProperty(id, prop) == 0) &&
+            (prop.getInt() != Integer.MIN_VALUE))
+            return prop;
+        else
+            return null;
+    }
 }
diff --git a/core/java/android/os/BatteryProperty.java b/core/java/android/os/BatteryProperty.java
index 76b0dc4..ec73952 100644
--- a/core/java/android/os/BatteryProperty.java
+++ b/core/java/android/os/BatteryProperty.java
@@ -19,22 +19,67 @@
 import android.os.Parcelable;
 
 /**
- * {@hide}
+ * Battery properties that may be queried using
+ * {@link BatteryManager#getProperty
+ * BatteryManager.getProperty()}
  */
 public class BatteryProperty implements Parcelable {
     /*
      * Battery property identifiers.  These must match the values in
      * frameworks/native/include/batteryservice/BatteryService.h
      */
-    public static final int BATTERY_PROP_CHARGE_COUNTER = 1;
-    public static final int BATTERY_PROP_CURRENT_NOW = 2;
-    public static final int BATTERY_PROP_CURRENT_AVG = 3;
-    public static final int BATTERY_PROP_CAPACITY = 4;
+    /** Battery capacity in microampere-hours, as an integer. */
+    public static final int CHARGE_COUNTER = 1;
 
-    public int valueInt;
+    /**
+     * Instantaneous battery current in microamperes, as an integer.  Positive
+     * values indicate net current entering the battery from a charge source,
+     * negative values indicate net current discharging from the battery.
+     */
+    public static final int CURRENT_NOW = 2;
 
+    /**
+     * Average battery current in microamperes, as an integer.  Positive
+     * values indicate net current entering the battery from a charge source,
+     * negative values indicate net current discharging from the battery.
+     * The time period over which the average is computed may depend on the
+     * fuel gauge hardware and its configuration.
+     */
+    public static final int CURRENT_AVERAGE = 3;
+
+    /**
+     * Remaining battery capacity as an integer percentage of total capacity
+     * (with no fractional part).
+     */
+    public static final int CAPACITY = 4;
+
+    private int mValueInt;
+
+    /**
+     * @hide
+     */
+    public BatteryProperty(int value) {
+        mValueInt = value;
+    }
+
+    /**
+     * @hide
+     */
     public BatteryProperty() {
-        valueInt = Integer.MIN_VALUE;
+        mValueInt = Integer.MIN_VALUE;
+    }
+
+    /**
+     * Return the value of a property of integer type previously queried
+     * via {@link BatteryManager#getProperty
+     * BatteryManager.getProperty()}.  If the platform does
+     * not provide the property queried, this value will be
+     * Integer.MIN_VALUE.
+     *
+     * @return The queried property value, or Integer.MIN_VALUE if not supported.
+     */
+    public int getInt() {
+        return mValueInt;
     }
 
     /*
@@ -47,11 +92,11 @@
     }
 
     public void readFromParcel(Parcel p) {
-        valueInt = p.readInt();
+        mValueInt = p.readInt();
     }
 
     public void writeToParcel(Parcel p, int flags) {
-        p.writeInt(valueInt);
+        p.writeInt(mValueInt);
     }
 
     public static final Parcelable.Creator<BatteryProperty> CREATOR
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index c8051aa..7f1a2e4 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -74,7 +74,14 @@
 
     /** A hardware serial number, if available.  Alphanumeric only, case-insensitive. */ 
     public static final String SERIAL = getString("ro.serialno");
-  
+
+    /**
+     * A list of ABIs (in priority) order supported by this device.
+     *
+     * @hide
+     */
+    public static final String[] SUPPORTED_ABIS = getString("ro.product.cpu.abilist").split(",");
+
     /** Various version strings. */
     public static class VERSION {
         /**
diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl
index d03b0c5..6c7b08d 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -23,7 +23,7 @@
 
 interface IPowerManager
 {
-    // WARNING: The first four methods must remain the first three methods because their
+    // WARNING: The first five methods must remain the first five methods because their
     // transaction numbers must not change unless IPowerManager.cpp is also updated.
     void acquireWakeLock(IBinder lock, int flags, String tag, String packageName, in WorkSource ws,
             String historyTag);
@@ -31,6 +31,7 @@
             int uidtoblame);
     void releaseWakeLock(IBinder lock, int flags);
     void updateWakeLockUids(IBinder lock, in int[] uids);
+    oneway void powerHint(int hintId, int data);
 
     void updateWakeLockWorkSource(IBinder lock, in WorkSource ws, String historyTag);
     boolean isWakeLockLevelSupported(int level);
@@ -39,8 +40,8 @@
     void wakeUp(long time);
     void goToSleep(long time, int reason);
     void nap(long time);
+    boolean isInteractive();
 
-    boolean isScreenOn();
     void reboot(boolean confirm, String reason, boolean wait);
     void shutdown(boolean confirm, boolean wait);
     void crash(String message);
diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl
index 6e6c06d..1192a45 100644
--- a/core/java/android/os/IUserManager.aidl
+++ b/core/java/android/os/IUserManager.aidl
@@ -28,13 +28,13 @@
  */
 interface IUserManager {
     UserInfo createUser(in String name, int flags);
-    UserInfo createRelatedUser(in String name, int flags, int relatedUserId);
+    UserInfo createProfileForUser(in String name, int flags, int userHandle);
     boolean removeUser(int userHandle);
     void setUserName(int userHandle, String name);
     void setUserIcon(int userHandle, in Bitmap icon);
     Bitmap getUserIcon(int userHandle);
     List<UserInfo> getUsers(boolean excludeDying);
-    List<UserInfo> getRelatedUsers(int userHandle);
+    List<UserInfo> getProfiles(int userHandle);
     UserInfo getUserInfo(int userHandle);
     boolean isRestricted();
     void setGuestEnabled(boolean enable);
diff --git a/core/java/android/os/MemoryFile.java b/core/java/android/os/MemoryFile.java
index ee7a4c6..6cec55a 100644
--- a/core/java/android/os/MemoryFile.java
+++ b/core/java/android/os/MemoryFile.java
@@ -63,12 +63,17 @@
      * Allocates a new ashmem region. The region is initially not purgable.
      *
      * @param name optional name for the file (can be null).
-     * @param length of the memory file in bytes.
+     * @param length of the memory file in bytes, must be non-negative.
      * @throws IOException if the memory file could not be created.
      */
     public MemoryFile(String name, int length) throws IOException {
         mLength = length;
-        mFD = native_open(name, length);
+        if (length >= 0) {
+            mFD = native_open(name, length);
+        } else {
+            throw new IOException("Invalid length: " + length);
+        }
+
         if (length > 0) {
             mAddress = native_mmap(mFD, length, PROT_READ | PROT_WRITE);
         } else {
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index a195200..f8d7c3e 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -601,21 +601,64 @@
     }
 
     /**
-      * Returns whether the screen is currently on.
+      * Returns true if the device is in an interactive state.
       * <p>
-      * Only indicates whether the screen is on.  The screen could be either bright or dim.
+      * For historical reasons, the name of this method refers to the power state of
+      * the screen but it actually describes the overall interactive state of
+      * the device.  This method has been replaced by {@link #isInteractive}.
       * </p><p>
-      * {@samplecode
-      * PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
-      * boolean isScreenOn = pm.isScreenOn();
-      * }
+      * The value returned by this method only indicates whether the device is
+      * in an interactive state which may have nothing to do with the screen being
+      * on or off.  To determine the actual state of the screen,
+      * use {@link android.view.Display#getState}.
       * </p>
       *
-      * @return whether the screen is on (bright or dim).
+      * @return True if the device is in an interactive state.
+      *
+      * @deprecated Use {@link #isInteractive} instead.
       */
+    @Deprecated
     public boolean isScreenOn() {
+        return isInteractive();
+    }
+
+    /**
+     * Returns true if the device is in an interactive state.
+     * <p>
+     * When this method returns true, the device is awake and ready to interact
+     * with the user (although this is not a guarantee that the user is actively
+     * interacting with the device just this moment).  The main screen is usually
+     * turned on while in this state.  Certain features, such as the proximity
+     * sensor, may temporarily turn off the screen while still leaving the device in an
+     * interactive state.  Note in particular that the device is still considered
+     * to be interactive while dreaming (since dreams can be interactive) but not
+     * when it is dozing or asleep.
+     * </p><p>
+     * When this method returns false, the device is dozing or asleep and must
+     * be awoken before it will become ready to interact with the user again.  The
+     * main screen is usually turned off while in this state.  Certain features,
+     * such as "ambient mode" may cause the main screen to remain on (albeit in a
+     * low power state) to display system-provided content while the device dozes.
+     * </p><p>
+     * The system will send a {@link android.content.Intent#ACTION_SCREEN_ON screen on}
+     * or {@link android.content.Intent#ACTION_SCREEN_OFF screen off} broadcast
+     * whenever the interactive state of the device changes.  For historical reasons,
+     * the names of these broadcasts refer to the power state of the screen
+     * but they are actually sent in response to changes in the overall interactive
+     * state of the device, as described by this method.
+     * </p><p>
+     * Services may use the non-interactive state as a hint to conserve power
+     * since the user is not present.
+     * </p>
+     *
+     * @return True if the device is in an interactive state.
+     *
+     * @see android.content.Intent#ACTION_SCREEN_ON
+     * @see android.content.Intent#ACTION_SCREEN_OFF
+     */
+    public boolean isInteractive() {
         try {
-            return mService.isScreenOn();
+            return mService.isInteractive();
         } catch (RemoteException e) {
             return false;
         }
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 057f516..995e396 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -16,17 +16,18 @@
 
 package android.os;
 
-import android.net.LocalSocketAddress;
 import android.net.LocalSocket;
+import android.net.LocalSocketAddress;
 import android.util.Log;
-import dalvik.system.Zygote;
-
+import com.android.internal.os.Zygote;
 import java.io.BufferedWriter;
 import java.io.DataInputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-
+import java.util.Arrays;
+import java.util.List;
 import libcore.io.Libcore;
 
 /*package*/ class ZygoteStartFailedEx extends Exception {
@@ -47,17 +48,7 @@
 
     private static final String ZYGOTE_SOCKET = "zygote";
 
-    /**
-     * Name of a process for running the platform's media services.
-     * {@hide}
-     */
-    public static final String ANDROID_SHARED_MEDIA = "com.android.process.media";
-
-    /**
-     * Name of the process that Google content providers can share.
-     * {@hide}
-     */
-    public static final String GOOGLE_SHARED_APP_CONTENT = "com.google.process.content";
+    private static final String SECONDARY_ZYGOTE_SOCKET = "zygote_secondary";
 
     /**
      * Defines the UID/GID under which system code runs.
@@ -344,15 +335,112 @@
     public static final int SIGNAL_QUIT = 3;
     public static final int SIGNAL_KILL = 9;
     public static final int SIGNAL_USR1 = 10;
-    
-    // State for communicating with zygote process
 
-    static LocalSocket sZygoteSocket;
-    static DataInputStream sZygoteInputStream;
-    static BufferedWriter sZygoteWriter;
+    /**
+     * State for communicating with the zygote process.
+     */
+    static class ZygoteState {
+        final LocalSocket socket;
+        final DataInputStream inputStream;
+        final BufferedWriter writer;
+        final List<String> abiList;
 
-    /** true if previous zygote open failed */
-    static boolean sPreviousZygoteOpenFailed;
+        boolean mClosed;
+
+        private ZygoteState(LocalSocket socket, DataInputStream inputStream,
+                BufferedWriter writer, List<String> abiList) {
+            this.socket = socket;
+            this.inputStream = inputStream;
+            this.writer = writer;
+            this.abiList = abiList;
+        }
+
+        static ZygoteState connect(String socketAddress, int tries) throws ZygoteStartFailedEx {
+            LocalSocket zygoteSocket = null;
+            DataInputStream zygoteInputStream = null;
+            BufferedWriter zygoteWriter = null;
+
+            /*
+             * See bug #811181: Sometimes runtime can make it up before zygote.
+             * Really, we'd like to do something better to avoid this condition,
+             * but for now just wait a bit...
+             *
+             * TODO: This bug was filed in 2007. Get rid of this code. The zygote
+             * forks the system_server so it shouldn't be possible for the zygote
+             * socket to be brought up after the system_server is.
+             */
+            for (int i = 0; i < tries; i++) {
+                if (i > 0) {
+                    try {
+                        Log.i(LOG_TAG, "Zygote not up yet, sleeping...");
+                        Thread.sleep(ZYGOTE_RETRY_MILLIS);
+                    } catch (InterruptedException ex) {
+                        throw new ZygoteStartFailedEx(ex);
+                    }
+                }
+
+                try {
+                    zygoteSocket = new LocalSocket();
+                    zygoteSocket.connect(new LocalSocketAddress(socketAddress,
+                            LocalSocketAddress.Namespace.RESERVED));
+
+                    zygoteInputStream = new DataInputStream(zygoteSocket.getInputStream());
+
+                    zygoteWriter = new BufferedWriter(new OutputStreamWriter(
+                            zygoteSocket.getOutputStream()), 256);
+                    break;
+                } catch (IOException ex) {
+                    if (zygoteSocket != null) {
+                        try {
+                            zygoteSocket.close();
+                        } catch (IOException ex2) {
+                            Log.e(LOG_TAG,"I/O exception on close after exception", ex2);
+                        }
+                    }
+
+                    zygoteSocket = null;
+                }
+            }
+
+            if (zygoteSocket == null) {
+                throw new ZygoteStartFailedEx("connect failed");
+            }
+
+            String abiListString = getAbiList(zygoteWriter, zygoteInputStream);
+            Log.i("Zygote", "Process: zygote socket opened, supported ABIS: " + abiListString);
+
+            return new ZygoteState(zygoteSocket, zygoteInputStream, zygoteWriter,
+                    Arrays.asList(abiListString.split(",")));
+        }
+
+        boolean matches(String abi) {
+            return abiList.contains(abi);
+        }
+
+        void close() {
+            try {
+                socket.close();
+            } catch (IOException ex) {
+                Log.e(LOG_TAG,"I/O exception on routine close", ex);
+            }
+
+            mClosed = true;
+        }
+
+        boolean isClosed() {
+            return mClosed;
+        }
+    }
+
+    /**
+     * The state of the connection to the primary zygote.
+     */
+    static ZygoteState primaryZygoteState;
+
+    /**
+     * The state of the connection to the secondary zygote.
+     */
+    static ZygoteState secondaryZygoteState;
 
     /**
      * Start a new process.
@@ -378,6 +466,7 @@
      * @param debugFlags Additional flags.
      * @param targetSdkVersion The target SDK version for the app.
      * @param seInfo null-ok SELinux information for the new process.
+     * @param abi non-null the ABI this app should be started with.
      * @param zygoteArgs Additional arguments to supply to the zygote process.
      * 
      * @return An object that describes the result of the attempt to start the process.
@@ -391,10 +480,12 @@
                                   int debugFlags, int mountExternal,
                                   int targetSdkVersion,
                                   String seInfo,
+                                  String abi,
                                   String[] zygoteArgs) {
         try {
             return startViaZygote(processClass, niceName, uid, gid, gids,
-                    debugFlags, mountExternal, targetSdkVersion, seInfo, zygoteArgs);
+                    debugFlags, mountExternal, targetSdkVersion, seInfo,
+                    abi, zygoteArgs);
         } catch (ZygoteStartFailedEx ex) {
             Log.e(LOG_TAG,
                     "Starting VM process through Zygote failed");
@@ -407,78 +498,31 @@
     static final int ZYGOTE_RETRY_MILLIS = 500;
 
     /**
-     * Tries to open socket to Zygote process if not already open. If
-     * already open, does nothing.  May block and retry.
+     * Queries the zygote for the list of ABIS it supports.
+     *
+     * @throws ZygoteStartFailedEx if the query failed.
      */
-    private static void openZygoteSocketIfNeeded() 
+    private static String getAbiList(BufferedWriter writer, DataInputStream inputStream)
             throws ZygoteStartFailedEx {
+        try {
 
-        int retryCount;
+            // Each query starts with the argument count (1 in this case)
+            writer.write("1");
+            // ... followed by a new-line.
+            writer.newLine();
+            // ... followed by our only argument.
+            writer.write("--query-abi-list");
+            writer.newLine();
+            writer.flush();
 
-        if (sPreviousZygoteOpenFailed) {
-            /*
-             * If we've failed before, expect that we'll fail again and
-             * don't pause for retries.
-             */
-            retryCount = 0;
-        } else {
-            retryCount = 10;            
-        }
+            // The response is a length prefixed stream of ASCII bytes.
+            int numBytes = inputStream.readInt();
+            byte[] bytes = new byte[numBytes];
+            inputStream.readFully(bytes);
 
-        /*
-         * See bug #811181: Sometimes runtime can make it up before zygote.
-         * Really, we'd like to do something better to avoid this condition,
-         * but for now just wait a bit...
-         */
-        for (int retry = 0
-                ; (sZygoteSocket == null) && (retry < (retryCount + 1))
-                ; retry++ ) {
-
-            if (retry > 0) {
-                try {
-                    Log.i("Zygote", "Zygote not up yet, sleeping...");
-                    Thread.sleep(ZYGOTE_RETRY_MILLIS);
-                } catch (InterruptedException ex) {
-                    // should never happen
-                }
-            }
-
-            try {
-                sZygoteSocket = new LocalSocket();
-
-                sZygoteSocket.connect(new LocalSocketAddress(ZYGOTE_SOCKET, 
-                        LocalSocketAddress.Namespace.RESERVED));
-
-                sZygoteInputStream
-                        = new DataInputStream(sZygoteSocket.getInputStream());
-
-                sZygoteWriter =
-                    new BufferedWriter(
-                            new OutputStreamWriter(
-                                    sZygoteSocket.getOutputStream()),
-                            256);
-
-                Log.i("Zygote", "Process: zygote socket opened");
-
-                sPreviousZygoteOpenFailed = false;
-                break;
-            } catch (IOException ex) {
-                if (sZygoteSocket != null) {
-                    try {
-                        sZygoteSocket.close();
-                    } catch (IOException ex2) {
-                        Log.e(LOG_TAG,"I/O exception on close after exception",
-                                ex2);
-                    }
-                }
-
-                sZygoteSocket = null;
-            }
-        }
-
-        if (sZygoteSocket == null) {
-            sPreviousZygoteOpenFailed = true;
-            throw new ZygoteStartFailedEx("connect failed");                 
+            return new String(bytes, StandardCharsets.US_ASCII);
+        } catch (IOException ioe) {
+            throw new ZygoteStartFailedEx(ioe);
         }
     }
 
@@ -486,14 +530,12 @@
      * Sends an argument list to the zygote process, which starts a new child
      * and returns the child's pid. Please note: the present implementation
      * replaces newlines in the argument list with spaces.
-     * @param args argument list
-     * @return An object that describes the result of the attempt to start the process.
+     *
      * @throws ZygoteStartFailedEx if process start failed for any reason
      */
-    private static ProcessStartResult zygoteSendArgsAndGetResult(ArrayList<String> args)
+    private static ProcessStartResult zygoteSendArgsAndGetResult(
+            ZygoteState zygoteState, ArrayList<String> args)
             throws ZygoteStartFailedEx {
-        openZygoteSocketIfNeeded();
-
         try {
             /**
              * See com.android.internal.os.ZygoteInit.readArgumentList()
@@ -505,9 +547,11 @@
              * the child or -1 on failure, followed by boolean to
              * indicate whether a wrapper process was used.
              */
+            final BufferedWriter writer = zygoteState.writer;
+            final DataInputStream inputStream = zygoteState.inputStream;
 
-            sZygoteWriter.write(Integer.toString(args.size()));
-            sZygoteWriter.newLine();
+            writer.write(Integer.toString(args.size()));
+            writer.newLine();
 
             int sz = args.size();
             for (int i = 0; i < sz; i++) {
@@ -516,32 +560,22 @@
                     throw new ZygoteStartFailedEx(
                             "embedded newlines not allowed");
                 }
-                sZygoteWriter.write(arg);
-                sZygoteWriter.newLine();
+                writer.write(arg);
+                writer.newLine();
             }
 
-            sZygoteWriter.flush();
+            writer.flush();
 
             // Should there be a timeout on this?
             ProcessStartResult result = new ProcessStartResult();
-            result.pid = sZygoteInputStream.readInt();
+            result.pid = inputStream.readInt();
             if (result.pid < 0) {
                 throw new ZygoteStartFailedEx("fork() failed");
             }
-            result.usingWrapper = sZygoteInputStream.readBoolean();
+            result.usingWrapper = inputStream.readBoolean();
             return result;
         } catch (IOException ex) {
-            try {
-                if (sZygoteSocket != null) {
-                    sZygoteSocket.close();
-                }
-            } catch (IOException ex2) {
-                // we're going to fail anyway
-                Log.e(LOG_TAG,"I/O exception on routine close", ex2);
-            }
-
-            sZygoteSocket = null;
-
+            zygoteState.close();
             throw new ZygoteStartFailedEx(ex);
         }
     }
@@ -558,6 +592,7 @@
      * @param debugFlags Additional flags.
      * @param targetSdkVersion The target SDK version for the app.
      * @param seInfo null-ok SELinux information for the new process.
+     * @param abi the ABI the process should use.
      * @param extraArgs Additional arguments to supply to the zygote process.
      * @return An object that describes the result of the attempt to start the process.
      * @throws ZygoteStartFailedEx if process start failed for any reason
@@ -569,6 +604,7 @@
                                   int debugFlags, int mountExternal,
                                   int targetSdkVersion,
                                   String seInfo,
+                                  String abi,
                                   String[] extraArgs)
                                   throws ZygoteStartFailedEx {
         synchronized(Process.class) {
@@ -636,10 +672,64 @@
                 }
             }
 
-            return zygoteSendArgsAndGetResult(argsForZygote);
+            return zygoteSendArgsAndGetResult(openZygoteSocketIfNeeded(abi), argsForZygote);
         }
     }
-    
+
+    /**
+     * Returns the number of times we attempt a connection to the zygote. We
+     * sleep for {@link #ZYGOTE_RETRY_MILLIS} milliseconds between each try.
+     *
+     * This could probably be removed, see TODO in {@code ZygoteState#connect}.
+     */
+    private static int getNumTries(ZygoteState state) {
+        // Retry 10 times for the first connection to each zygote.
+        if (state == null) {
+            return 11;
+        }
+
+        // This means the connection has already been established, but subsequently
+        // closed, possibly due to an IOException. We retry just once if that's the
+        // case.
+        return 1;
+    }
+
+    /**
+     * Tries to open socket to Zygote process if not already open. If
+     * already open, does nothing.  May block and retry.
+     */
+    private static ZygoteState openZygoteSocketIfNeeded(String abi) throws ZygoteStartFailedEx {
+        if (primaryZygoteState == null || primaryZygoteState.isClosed()) {
+            primaryZygoteState = ZygoteState.connect(ZYGOTE_SOCKET, getNumTries(primaryZygoteState));
+        }
+
+        if (primaryZygoteState.matches(abi)) {
+            return primaryZygoteState;
+        }
+
+        // TODO: Get rid of this. This is a temporary workaround until all the
+        // compilation related pieces for the dual zygote stack are ready.
+        // b/3647418.
+        if (System.getenv("ANDROID_SOCKET_" + SECONDARY_ZYGOTE_SOCKET) == null) {
+            Log.e(LOG_TAG, "Forcing app to primary zygote, secondary unavailable (ABI= " + abi + ")");
+            // Should be :
+            // throw new ZygoteStartFailedEx("Unsupported zygote ABI: " + abi);
+            return primaryZygoteState;
+        }
+
+        // The primary zygote didn't match. Try the secondary.
+        if (secondaryZygoteState == null || secondaryZygoteState.isClosed()) {
+            secondaryZygoteState = ZygoteState.connect(SECONDARY_ZYGOTE_SOCKET,
+                    getNumTries(secondaryZygoteState));
+        }
+
+        if (secondaryZygoteState.matches(abi)) {
+            return secondaryZygoteState;
+        }
+
+        throw new ZygoteStartFailedEx("Unsupported zygote ABI: " + abi);
+    }
+
     /**
      * Returns elapsed milliseconds of the time this process has run.
      * @return  Returns the number of milliseconds this process has return.
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 1ec5cd5..8aef9bd 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -20,10 +20,16 @@
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Bitmap.Config;
+import android.graphics.Rect;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
 import android.util.Log;
 
 import com.android.internal.R;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -410,20 +416,20 @@
     }
 
     /**
-     * Creates a user with the specified name and options.
+     * Creates a user with the specified name and options as a profile of another user.
      * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
      *
      * @param name the user's name
      * @param flags flags that identify the type of user and other properties.
      * @see UserInfo
-     * @param relatedUserId new user will be related to this user id.
+     * @param userHandle new user will be a profile of this use.
      *
      * @return the UserInfo object for the created user, or null if the user could not be created.
      * @hide
      */
-    public UserInfo createRelatedUser(String name, int flags, int relatedUserId) {
+    public UserInfo createProfileForUser(String name, int flags, int userHandle) {
         try {
-            return mService.createRelatedUser(name, flags, relatedUserId);
+            return mService.createProfileForUser(name, flags, userHandle);
         } catch (RemoteException re) {
             Log.w(TAG, "Could not create a user", re);
             return null;
@@ -454,15 +460,17 @@
     }
 
     /**
-     * Returns information for all users related to userId
+     * Returns list of the profiles of userHandle including
+     * userHandle itself.
+     *
      * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
-     * @param userHandle users related to this user id will be returned.
-     * @return the list of related users.
+     * @param userHandle profiles of this user will be returned.
+     * @return the list of profiles.
      * @hide
      */
-    public List<UserInfo> getRelatedUsers(int userHandle) {
+    public List<UserInfo> getProfiles(int userHandle) {
         try {
-            return mService.getRelatedUsers(userHandle);
+            return mService.getProfiles(userHandle);
         } catch (RemoteException re) {
             Log.w(TAG, "Could not get user list", re);
             return null;
@@ -470,9 +478,79 @@
     }
 
     /**
-     * Returns information for all users on this device.
-     * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
-     * @param excludeDying specify if the list should exclude users being removed.
+     * Returns a list of UserHandles for profiles associated with this user, including this user.
+     *
+     * @return A non-empty list of UserHandles associated with the calling user.
+     */
+    public List<UserHandle> getUserProfiles() {
+        ArrayList<UserHandle> profiles = new ArrayList<UserHandle>();
+        List<UserInfo> users = getProfiles(UserHandle.myUserId());
+        for (UserInfo info : users) {
+            UserHandle userHandle = new UserHandle(info.id);
+            profiles.add(userHandle);
+        }
+        return profiles;
+    }
+
+    /**
+     * If the target user is a managed profile of the calling user or the caller
+     * is itself a managed profile, then this returns a badged copy of the given
+     * icon to be able to distinguish it from the original icon.
+     * <P>
+     * If the original drawable is not a BitmapDrawable, then the original
+     * drawable is returned.
+     * </P>
+     *
+     * @param icon The icon to badge.
+     * @param user The target user.
+     * @return A drawable that combines the original icon and a badge as
+     *         determined by the system.
+     */
+    public Drawable getBadgedDrawableForUser(Drawable icon, UserHandle user) {
+        int badgeResId = getBadgeResIdForUser(user.getIdentifier());
+        if (badgeResId == 0) {
+            return icon;
+        } else {
+            Drawable badgeIcon = mContext.getPackageManager()
+                    .getDrawable("system", badgeResId, null);
+            return getMergedDrawable(icon, badgeIcon);
+        }
+    }
+
+    private int getBadgeResIdForUser(int userHandle) {
+        // Return the framework-provided badge.
+        List<UserInfo> userProfiles = getProfiles(UserHandle.myUserId());
+        for (UserInfo user : userProfiles) {
+            if (user.id == userHandle
+                    && user.isManagedProfile()) {
+                return com.android.internal.R.drawable.ic_corp_badge;
+            }
+        }
+        return 0;
+    }
+
+    private Drawable getMergedDrawable(Drawable icon, Drawable badge) {
+        final int width = icon.getIntrinsicWidth();
+        final int height = icon.getIntrinsicHeight();
+        Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+        icon.setBounds(0, 0, width, height);
+        icon.draw(canvas);
+        badge.setBounds(0, 0, width, height);
+        badge.draw(canvas);
+        BitmapDrawable merged = new BitmapDrawable(bitmap);
+        if (icon instanceof BitmapDrawable) {
+            merged.setTargetDensity(((BitmapDrawable) icon).getBitmap().getDensity());
+        }
+        return merged;
+    }
+
+    /**
+     * Returns information for all users on this device. Requires
+     * {@link android.Manifest.permission#MANAGE_USERS} permission.
+     * 
+     * @param excludeDying specify if the list should exclude users being
+     *            removed.
      * @return the list of users that were created.
      * @hide
      */
diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java
index b97734e..939cda9 100644
--- a/core/java/android/os/storage/IMountService.java
+++ b/core/java/android/os/storage/IMountService.java
@@ -625,12 +625,13 @@
                 return _result;
             }
 
-            public int encryptStorage(String password) throws RemoteException {
+            public int encryptStorage(int type, String password) throws RemoteException {
                 Parcel _data = Parcel.obtain();
                 Parcel _reply = Parcel.obtain();
                 int _result;
                 try {
                     _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeInt(type);
                     _data.writeString(password);
                     mRemote.transact(Stub.TRANSACTION_encryptStorage, _data, _reply, 0);
                     _reply.readException();
@@ -694,6 +695,67 @@
                 return _result;
             }
 
+            public String getPassword() throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                String _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    mRemote.transact(Stub.TRANSACTION_getPassword, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readString();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public void clearPassword() throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    mRemote.transact(Stub.TRANSACTION_clearPassword, _data, _reply, IBinder.FLAG_ONEWAY);
+                    _reply.readException();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+            }
+
+            public void setField(String field, String data) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(field);
+                    _data.writeString(data);
+                    mRemote.transact(Stub.TRANSACTION_setField, _data, _reply, IBinder.FLAG_ONEWAY);
+                    _reply.readException();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+            }
+
+            public String getField(String field) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                String _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(field);
+                    mRemote.transact(Stub.TRANSACTION_getField, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readString();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
             public StorageVolume[] getVolumeList() throws RemoteException {
                 Parcel _data = Parcel.obtain();
                 Parcel _reply = Parcel.obtain();
@@ -846,7 +908,15 @@
 
         static final int TRANSACTION_mkdirs = IBinder.FIRST_CALL_TRANSACTION + 34;
 
-        static final int TRANSACTION_getPasswordType = IBinder.FIRST_CALL_TRANSACTION + 36;
+        static final int TRANSACTION_getPasswordType = IBinder.FIRST_CALL_TRANSACTION + 35;
+
+        static final int TRANSACTION_getPassword = IBinder.FIRST_CALL_TRANSACTION + 36;
+
+        static final int TRANSACTION_clearPassword = IBinder.FIRST_CALL_TRANSACTION + 37;
+
+        static final int TRANSACTION_setField = IBinder.FIRST_CALL_TRANSACTION + 38;
+
+        static final int TRANSACTION_getField = IBinder.FIRST_CALL_TRANSACTION + 39;
 
         /**
          * Cast an IBinder object into an IMountService interface, generating a
@@ -1141,8 +1211,9 @@
                 }
                 case TRANSACTION_encryptStorage: {
                     data.enforceInterface(DESCRIPTOR);
+                    int type = data.readInt();
                     String password = data.readString();
-                    int result = encryptStorage(password);
+                    int result = encryptStorage(type, password);
                     reply.writeNoException();
                     reply.writeInt(result);
                     return true;
@@ -1208,6 +1279,35 @@
                     reply.writeInt(result);
                     return true;
                 }
+                case TRANSACTION_getPassword: {
+                    data.enforceInterface(DESCRIPTOR);
+                    String result = getPassword();
+                    reply.writeNoException();
+                    reply.writeString(result);
+                    return true;
+                }
+                case TRANSACTION_clearPassword: {
+                    data.enforceInterface(DESCRIPTOR);
+                    clearPassword();
+                    reply.writeNoException();
+                    return true;
+                }
+                case TRANSACTION_setField: {
+                    data.enforceInterface(DESCRIPTOR);
+                    String field = data.readString();
+                    String contents = data.readString();
+                    setField(field, contents);
+                    reply.writeNoException();
+                    return true;
+                }
+                case TRANSACTION_getField: {
+                    data.enforceInterface(DESCRIPTOR);
+                    String field = data.readString();
+                    String contents = getField(field);
+                    reply.writeNoException();
+                    reply.writeString(contents);
+                    return true;
+                }
             }
             return super.onTransact(code, data, reply, flags);
         }
@@ -1397,7 +1497,7 @@
     /**
      * Encrypts storage.
      */
-    public int encryptStorage(String password) throws RemoteException;
+    public int encryptStorage(int type, String password) throws RemoteException;
 
     /**
      * Changes the encryption password.
@@ -1446,4 +1546,29 @@
      * @return PasswordType
      */
     public int getPasswordType() throws RemoteException;
+
+    /**
+     * Get password from vold
+     * @return password or empty string
+     */
+    public String getPassword() throws RemoteException;
+
+    /**
+     * Securely clear password from vold
+     */
+    public void clearPassword() throws RemoteException;
+
+    /**
+     * Set a field in the crypto header.
+     * @param field field to set
+     * @param contents contents to set in field
+     */
+    public void setField(String field, String contents) throws RemoteException;
+
+    /**
+     * Gets a field from the crypto header.
+     * @param field field to get
+     * @return contents of field
+     */
+    public String getField(String field) throws RemoteException;
 }
diff --git a/core/java/android/preference/Preference.java b/core/java/android/preference/Preference.java
index 144c909..56d5617 100644
--- a/core/java/android/preference/Preference.java
+++ b/core/java/android/preference/Preference.java
@@ -533,8 +533,7 @@
      * @see #onCreateView(ViewGroup)
      */
     protected void onBindView(View view) {
-        final TextView titleView = (TextView) view.findViewById(
-                com.android.internal.R.id.title);
+        final TextView titleView = (TextView) view.findViewById(com.android.internal.R.id.title);
         if (titleView != null) {
             final CharSequence title = getTitle();
             if (!TextUtils.isEmpty(title)) {
@@ -557,7 +556,7 @@
             }
         }
 
-        ImageView imageView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
+        final ImageView imageView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
         if (imageView != null) {
             if (mIconResId != 0 || mIcon != null) {
                 if (mIcon == null) {
@@ -570,6 +569,11 @@
             imageView.setVisibility(mIcon != null ? View.VISIBLE : View.GONE);
         }
 
+        final View imageFrame = view.findViewById(com.android.internal.R.id.icon_frame);
+        if (imageFrame != null) {
+            imageFrame.setVisibility(mIcon != null ? View.VISIBLE : View.GONE);
+        }
+
         if (mShouldDisableView) {
             setEnabledStateOnViews(view, isEnabled());
         }
diff --git a/core/java/android/preference/PreferenceGroupAdapter.java b/core/java/android/preference/PreferenceGroupAdapter.java
index 23d0a19..c2e1f51 100644
--- a/core/java/android/preference/PreferenceGroupAdapter.java
+++ b/core/java/android/preference/PreferenceGroupAdapter.java
@@ -45,8 +45,11 @@
  * adapter, use {@link PreferenceCategoryAdapter} instead.
  * 
  * @see PreferenceCategoryAdapter
+ *
+ * @hide
  */
-class PreferenceGroupAdapter extends BaseAdapter implements OnPreferenceChangeInternalListener {
+public class PreferenceGroupAdapter extends BaseAdapter
+        implements OnPreferenceChangeInternalListener {
     
     private static final String TAG = "PreferenceGroupAdapter";
 
@@ -88,6 +91,8 @@
         }
     };
 
+    private int mActivatedPosition = -1;
+
     private static class PreferenceLayout implements Comparable<PreferenceLayout> {
         private int resId;
         private int widgetResId;
@@ -207,6 +212,10 @@
         return this.getItem(position).getId();
     }
 
+    public void setActivated(int position) {
+        mActivatedPosition = position;
+    }
+
     public View getView(int position, View convertView, ViewGroup parent) {
         final Preference preference = this.getItem(position);
         // Build a PreferenceLayout to compare with known ones that are cacheable.
@@ -217,8 +226,9 @@
         if (Collections.binarySearch(mPreferenceLayouts, mTempPreferenceLayout) < 0) {
             convertView = null;
         }
-
-        return preference.getView(convertView, parent);
+        View result = preference.getView(convertView, parent);
+        result.setActivated(position == mActivatedPosition);
+        return result;
     }
 
     @Override
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index bd576af..ae24968 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -173,6 +173,10 @@
      */
     public static final String EXTRA_MEDIA_GENRE = "android.intent.extra.genre";
     /**
+     * The name of the Intent-extra used to define the playlist.
+     */
+    public static final String EXTRA_MEDIA_PLAYLIST = "android.intent.extra.playlist";
+    /**
      * The name of the Intent-extra used to define the radio channel.
      */
     public static final String EXTRA_MEDIA_RADIO_CHANNEL = "android.intent.extra.radio_channel";
diff --git a/core/java/android/provider/SearchIndexableData.java b/core/java/android/provider/SearchIndexableData.java
index 719dcea..60bcc40 100644
--- a/core/java/android/provider/SearchIndexableData.java
+++ b/core/java/android/provider/SearchIndexableData.java
@@ -52,6 +52,12 @@
     public int rank;
 
     /**
+     * The key for the data. This is application specific. Should be unique per data as the data
+     * should be able to be retrieved by the key.
+     */
+    public String key;
+
+    /**
      * The class name associated with the data. Generally this is a Fragment class name for
      * referring where the data is coming from and for launching the associated Fragment for
      * displaying the data. This is used only when the data is provided "locally".
@@ -109,6 +115,7 @@
      * Default constructor.
      */
     public SearchIndexableData() {
+        locale = Locale.getDefault();
         enabled = true;
     }
 
@@ -118,8 +125,47 @@
      * @param ctx the Context
      */
     public SearchIndexableData(Context ctx) {
+        this();
         context = ctx;
-        locale = Locale.getDefault();
-        enabled = true;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("SearchIndexableData[context: ");
+        sb.append(context);
+        sb.append(", ");
+        sb.append("locale: ");
+        sb.append(locale);
+        sb.append(", ");
+        sb.append("enabled: ");
+        sb.append(enabled);
+        sb.append(", ");
+        sb.append("rank: ");
+        sb.append(rank);
+        sb.append(", ");
+        sb.append("key: ");
+        sb.append(key);
+        sb.append(", ");
+        sb.append("className: ");
+        sb.append(className);
+        sb.append(", ");
+        sb.append("packageName: ");
+        sb.append(packageName);
+        sb.append(", ");
+        sb.append("iconResId: ");
+        sb.append(iconResId);
+        sb.append(", ");
+        sb.append("intentAction: ");
+        sb.append(intentAction);
+        sb.append(", ");
+        sb.append("intentTargetPackage: ");
+        sb.append(intentTargetPackage);
+        sb.append(", ");
+        sb.append("intentTargetClass: ");
+        sb.append(intentTargetClass);
+        sb.append("]");
+
+        return sb.toString();
     }
 }
diff --git a/core/java/android/provider/SearchIndexableResource.java b/core/java/android/provider/SearchIndexableResource.java
index ba3bd4f..c807df2 100644
--- a/core/java/android/provider/SearchIndexableResource.java
+++ b/core/java/android/provider/SearchIndexableResource.java
@@ -48,6 +48,7 @@
      * @param iconResId the resource ID associated with the data.
      */
     public SearchIndexableResource(int rank, int xmlResId, String className, int iconResId) {
+        super();
         this.rank = rank;
         this.xmlResId = xmlResId;
         this.className = className;
@@ -62,4 +63,17 @@
     public SearchIndexableResource(Context context) {
         super(context);
     }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("SearchIndexableResource[");
+        sb.append(super.toString());
+        sb.append(", ");
+        sb.append("xmlResId: ");
+        sb.append(xmlResId);
+        sb.append("]");
+
+        return sb.toString();
+    }
 }
\ No newline at end of file
diff --git a/core/java/android/provider/SearchIndexablesContract.java b/core/java/android/provider/SearchIndexablesContract.java
index b8635b8..a8b4cfb0 100644
--- a/core/java/android/provider/SearchIndexablesContract.java
+++ b/core/java/android/provider/SearchIndexablesContract.java
@@ -35,7 +35,7 @@
     private static final String SETTINGS = "settings";
 
     /**
-     * Indexable references name.
+     * Indexable reference names.
      */
     public static final String INDEXABLES_XML_RES = "indexables_xml_res";
 
@@ -45,7 +45,7 @@
     public static final String INDEXABLES_XML_RES_PATH = SETTINGS + "/" + INDEXABLES_XML_RES;
 
     /**
-     * Indexable raw data name.
+     * Indexable raw data names.
      */
     public static final String INDEXABLES_RAW = "indexables_raw";
 
@@ -55,35 +55,88 @@
     public static final String INDEXABLES_RAW_PATH = SETTINGS + "/" + INDEXABLES_RAW;
 
     /**
+     * Non indexable data keys.
+     */
+    public static final String NON_INDEXABLES_KEYS = "non_indexables_key";
+
+    /**
+     * ContentProvider path for non indexable data keys.
+     */
+    public static final String NON_INDEXABLES_KEYS_PATH = SETTINGS + "/" + NON_INDEXABLES_KEYS;
+
+    /**
      * Indexable xml resources colums.
      */
     public static final String[] INDEXABLES_XML_RES_COLUMNS = new String[] {
-            XmlResource.COLUMN_RANK,
-            XmlResource.COLUMN_XML_RESID,
-            XmlResource.COLUMN_CLASS_NAME,
-            XmlResource.COLUMN_ICON_RESID,
-            XmlResource.COLUMN_INTENT_ACTION,
-            XmlResource.COLUMN_INTENT_TARGET_PACKAGE,
-            XmlResource.COLUMN_INTENT_TARGET_CLASS
+            XmlResource.COLUMN_RANK,                    // 0
+            XmlResource.COLUMN_XML_RESID,               // 1
+            XmlResource.COLUMN_CLASS_NAME,              // 2
+            XmlResource.COLUMN_ICON_RESID,              // 3
+            XmlResource.COLUMN_INTENT_ACTION,           // 4
+            XmlResource.COLUMN_INTENT_TARGET_PACKAGE,   // 5
+            XmlResource.COLUMN_INTENT_TARGET_CLASS      // 6
     };
 
     /**
+     * Indexable xml resources colums indices.
+     */
+    public static final int COLUMN_INDEX_XML_RES_RANK = 0;
+    public static final int COLUMN_INDEX_XML_RES_RESID = 1;
+    public static final int COLUMN_INDEX_XML_RES_CLASS_NAME = 2;
+    public static final int COLUMN_INDEX_XML_RES_ICON_RESID = 3;
+    public static final int COLUMN_INDEX_XML_RES_INTENT_ACTION = 4;
+    public static final int COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE = 5;
+    public static final int COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS = 6;
+
+    /**
      * Indexable raw data colums.
      */
     public static final String[] INDEXABLES_RAW_COLUMNS = new String[] {
-            RawData.COLUMN_RANK,
-            RawData.COLUMN_TITLE,
-            RawData.COLUMN_SUMMARY,
-            RawData.COLUMN_KEYWORDS,
-            RawData.COLUMN_SCREEN_TITLE,
-            RawData.COLUMN_CLASS_NAME,
-            RawData.COLUMN_ICON_RESID,
-            RawData.COLUMN_INTENT_ACTION,
-            RawData.COLUMN_INTENT_TARGET_PACKAGE,
-            RawData.COLUMN_INTENT_TARGET_CLASS,
+            RawData.COLUMN_RANK,                    // 0
+            RawData.COLUMN_TITLE,                   // 1
+            RawData.COLUMN_SUMMARY_ON,              // 2
+            RawData.COLUMN_SUMMARY_OFF,             // 3
+            RawData.COLUMN_ENTRIES,                 // 4
+            RawData.COLUMN_KEYWORDS,                // 5
+            RawData.COLUMN_SCREEN_TITLE,            // 6
+            RawData.COLUMN_CLASS_NAME,              // 7
+            RawData.COLUMN_ICON_RESID,              // 8
+            RawData.COLUMN_INTENT_ACTION,           // 9
+            RawData.COLUMN_INTENT_TARGET_PACKAGE,   // 10
+            RawData.COLUMN_INTENT_TARGET_CLASS,     // 11
+            RawData.COLUMN_KEY,                     // 12
     };
 
     /**
+     * Indexable raw data colums indices.
+     */
+    public static final int COLUMN_INDEX_RAW_RANK = 0;
+    public static final int COLUMN_INDEX_RAW_TITLE = 1;
+    public static final int COLUMN_INDEX_RAW_SUMMARY_ON = 2;
+    public static final int COLUMN_INDEX_RAW_SUMMARY_OFF = 3;
+    public static final int COLUMN_INDEX_RAW_ENTRIES = 4;
+    public static final int COLUMN_INDEX_RAW_KEYWORDS = 5;
+    public static final int COLUMN_INDEX_RAW_SCREEN_TITLE = 6;
+    public static final int COLUMN_INDEX_RAW_CLASS_NAME = 7;
+    public static final int COLUMN_INDEX_RAW_ICON_RESID = 8;
+    public static final int COLUMN_INDEX_RAW_INTENT_ACTION = 9;
+    public static final int COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE = 10;
+    public static final int COLUMN_INDEX_RAW_INTENT_TARGET_CLASS = 11;
+    public static final int COLUMN_INDEX_RAW_KEY = 12;
+
+    /**
+     * Indexable raw data colums.
+     */
+    public static final String[] NON_INDEXABLES_KEYS_COLUMNS = new String[] {
+            NonIndexableKey.COLUMN_KEY_VALUE      // 0
+    };
+
+    /**
+     * Non indexable data keys colums indices.
+     */
+    public static final int COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE = 0;
+
+    /**
      * Constants related to a {@link SearchIndexableResource}.
      *
      * This is a description of
@@ -123,9 +176,19 @@
         public static final String COLUMN_TITLE = "title";
 
         /**
-         * Summary's raw data.
+         * Summary's raw data when the data is "ON".
          */
-        public static final String COLUMN_SUMMARY = "summary";
+        public static final String COLUMN_SUMMARY_ON = "summaryOn";
+
+        /**
+         * Summary's raw data when the data is "OFF".
+         */
+        public static final String COLUMN_SUMMARY_OFF = "summaryOff";
+
+        /**
+         * Entries associated with the raw data (when the data can have several values).
+         */
+        public static final String COLUMN_ENTRIES = "entries";
 
         /**
          * Keywords' raw data.
@@ -133,9 +196,32 @@
         public static final String COLUMN_KEYWORDS = "keywords";
 
         /**
-         * Fragment's title associated with the raw data.
+         * Fragment or Activity title associated with the raw data.
          */
         public static final String COLUMN_SCREEN_TITLE = "screenTitle";
+
+        /**
+         * Key associated with the raw data. The key needs to be unique.
+         */
+        public static final String COLUMN_KEY = "key";
+    }
+
+    /**
+     * Constants related to a {@link SearchIndexableResource} and {@link SearchIndexableData}.
+     *
+     * This is a description of a data (thru its unique key) that cannot be indexed.
+     */
+    public static final class NonIndexableKey extends BaseColumns {
+        private NonIndexableKey() {
+        }
+
+        public static final String MIME_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE +
+                "/" + NON_INDEXABLES_KEYS;
+
+        /**
+         * Key for the non indexable data.
+         */
+        public static final String COLUMN_KEY_VALUE = "key";
     }
 
     /**
diff --git a/core/java/android/provider/SearchIndexablesProvider.java b/core/java/android/provider/SearchIndexablesProvider.java
index 2e358e4..9c8f6d0 100644
--- a/core/java/android/provider/SearchIndexablesProvider.java
+++ b/core/java/android/provider/SearchIndexablesProvider.java
@@ -69,6 +69,7 @@
 
     private static final int MATCH_RES_CODE = 1;
     private static final int MATCH_RAW_CODE = 2;
+    private static final int MATCH_NON_INDEXABLE_KEYS_CODE = 3;
 
     /**
      * Implementation is provided by the parent class.
@@ -82,6 +83,8 @@
                 MATCH_RES_CODE);
         mMatcher.addURI(mAuthority, SearchIndexablesContract.INDEXABLES_RAW_PATH,
                 MATCH_RAW_CODE);
+        mMatcher.addURI(mAuthority, SearchIndexablesContract.NON_INDEXABLES_KEYS_PATH,
+                MATCH_NON_INDEXABLE_KEYS_CODE);
 
         // Sanity check our setup
         if (!info.exported) {
@@ -105,6 +108,8 @@
                 return queryXmlResources(null);
             case MATCH_RAW_CODE:
                 return queryRawData(null);
+            case MATCH_NON_INDEXABLE_KEYS_CODE:
+                return queryNonIndexableKeys(null);
             default:
                 throw new UnsupportedOperationException("Unknown Uri " + uri);
         }
@@ -113,7 +118,7 @@
     /**
      * Returns all {@link android.provider.SearchIndexablesContract.XmlResource}.
      *
-     * Those are usually xml resource ID to some {@link android.preference.PreferenceScreen}.
+     * Those are Xml resource IDs to some {@link android.preference.PreferenceScreen}.
      *
      * @param projection list of {@link android.provider.SearchIndexablesContract.XmlResource}
      *                   columns to put into the cursor. If {@code null} all supported columns
@@ -124,7 +129,7 @@
     /**
      * Returns all {@link android.provider.SearchIndexablesContract.RawData}.
      *
-     * Those are raw indexable data.
+     * Those are the raw indexable data.
      *
      * @param projection list of {@link android.provider.SearchIndexablesContract.RawData} columns
      *                   to put into the cursor. If {@code null} all supported columns should be
@@ -132,6 +137,17 @@
      */
     public abstract Cursor queryRawData(String[] projection);
 
+    /**
+     * Returns all {@link android.provider.SearchIndexablesContract.NonIndexableKey}.
+     *
+     * Those are the non indexable data keys.
+     *
+     * @param projection list of {@link android.provider.SearchIndexablesContract.NonIndexableKey}
+     *                   columns to put into the cursor. If {@code null} all supported columns
+     *                   should be included.
+     */
+    public abstract Cursor queryNonIndexableKeys(String[] projection);
+
     @Override
     public String getType(Uri uri) {
         switch (mMatcher.match(uri)) {
@@ -139,14 +155,15 @@
                 return SearchIndexablesContract.XmlResource.MIME_TYPE;
             case MATCH_RAW_CODE:
                 return SearchIndexablesContract.RawData.MIME_TYPE;
+            case MATCH_NON_INDEXABLE_KEYS_CODE:
+                return SearchIndexablesContract.NonIndexableKey.MIME_TYPE;
             default:
                 throw new IllegalArgumentException("Unknown URI " + uri);
         }
     }
 
     /**
-     * Implementation is provided by the parent class. Throws by default, and
-     * cannot be overriden.
+     * Implementation is provided by the parent class. Throws by default, and cannot be overriden.
      */
     @Override
     public final Uri insert(Uri uri, ContentValues values) {
@@ -154,8 +171,7 @@
     }
 
     /**
-     * Implementation is provided by the parent class. Throws by default, and
-     * cannot be overriden.
+     * Implementation is provided by the parent class. Throws by default, and cannot be overriden.
      */
     @Override
     public final int delete(Uri uri, String selection, String[] selectionArgs) {
@@ -163,8 +179,7 @@
     }
 
     /**
-     * Implementation is provided by the parent class. Throws by default, and
-     * cannot be overriden.
+     * Implementation is provided by the parent class. Throws by default, and cannot be overriden.
      */
     @Override
     public final int update(
diff --git a/core/java/android/provider/TvContract.java b/core/java/android/provider/TvContract.java
new file mode 100644
index 0000000..233e0ca
--- /dev/null
+++ b/core/java/android/provider/TvContract.java
@@ -0,0 +1,449 @@
+/*
+ * 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 android.provider;
+
+import android.content.ContentUris;
+import android.net.Uri;
+
+/**
+ * <p>
+ * The contract between the TV provider and applications. Contains definitions for the supported
+ * URIs and columns.
+ * </p>
+ * <h3>Overview</h3>
+ * <p>
+ * TvContract defines a basic database of TV content metadata such as channel and program
+ * information. The information is stored in {@link Channels} and {@link Programs} tables.
+ * </p>
+ * <ul>
+ *     <li>A row in the {@link Channels} table represents information about a TV channel. The data
+ *         format can vary greatly from standard to standard or according to service provider, thus
+ *         the columns here are mostly comprised of basic entities that are usually seen to users
+ *         regardless of standard such as channel number and name.</li>
+ *     <li>A row in the {@link Programs} table represents a set of data describing a TV program such
+ *         as program title and start time.</li>
+ * </ul>
+ */
+public final class TvContract {
+    /** The authority for the TV provider. */
+    public static final String AUTHORITY = "com.android.tv";
+
+    /**
+     * Builds a URI that points to a specific channel.
+     *
+     * @param channelId The ID of the channel to point to.
+     */
+    public static final Uri buildChannelUri(long channelId) {
+        return ContentUris.withAppendedId(Channels.CONTENT_URI, channelId);
+    }
+
+    /**
+     * Builds a URI that points to a specific program.
+     *
+     * @param programId The ID of the program to point to.
+     */
+    public static final Uri buildProgramUri(long programId) {
+        return ContentUris.withAppendedId(Programs.CONTENT_URI, programId);
+    }
+
+    /**
+     * Builds a URI that points to a specific program the user watched.
+     *
+     * @param watchedProgramId The ID of the watched program to point to.
+     * @hide
+     */
+    public static final Uri buildWatchedProgramUri(long watchedProgramId) {
+        return ContentUris.withAppendedId(WatchedPrograms.CONTENT_URI, watchedProgramId);
+    }
+
+    private TvContract() {}
+
+    /**
+     * Common base for the tables of TV channels/programs.
+     */
+    public interface BaseTvColumns extends BaseColumns {
+        /**
+         * The name of the package that owns a row in each table.
+         * <p>
+         * The TV provider fills it in with the name of the package that provides the initial data
+         * of that row. If the package is later uninstalled, the rows it owns are automatically
+         * removed from the tables.
+         * </p><p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String PACKAGE_NAME = "package_name";
+    }
+
+    /** Column definitions for the TV channels table. */
+    public static final class Channels implements BaseTvColumns {
+
+        /** The content:// style URI for this table. */
+        public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/channel");
+
+        /** The MIME type of a directory of TV channels. */
+        public static final String CONTENT_TYPE =
+                "vnd.android.cursor.dir/vnd.com.android.tv.channels";
+
+        /** The MIME type of a single TV channel. */
+        public static final String CONTENT_ITEM_TYPE =
+                "vnd.android.cursor.item/vnd.com.android.tv.channels";
+
+        /** A generic channel type. */
+        public static final int TYPE_OTHER = 0x0;
+
+        /** The special channel type used for pass-through inputs such as HDMI. */
+        public static final int TYPE_PASSTHROUGH = 0x00010000;
+
+        /** The channel type for DVB-T (terrestrial). */
+        public static final int TYPE_DVB_T = 0x00020000;
+
+        /** The channel type for DVB-T2 (terrestrial). */
+        public static final int TYPE_DVB_T2 = 0x00020001;
+
+        /** The channel type for DVB-S (satellite). */
+        public static final int TYPE_DVB_S = 0x00020100;
+
+        /** The channel type for DVB-S2 (satellite). */
+        public static final int TYPE_DVB_S2 = 0x00020101;
+
+        /** The channel type for DVB-C (cable). */
+        public static final int TYPE_DVB_C = 0x00020200;
+
+        /** The channel type for DVB-C2 (cable). */
+        public static final int TYPE_DVB_C2 = 0x00020201;
+
+        /** The channel type for DVB-H (handheld). */
+        public static final int TYPE_DVB_H = 0x00020300;
+
+        /** The channel type for DVB-SH (satellite). */
+        public static final int TYPE_DVB_SH = 0x00020400;
+
+        /** The channel type for ATSC (terrestrial/cable). */
+        public static final int TYPE_ATSC = 0x00030000;
+
+        /** The channel type for ATSC 2.0. */
+        public static final int TYPE_ATSC_2_0 = 0x00030001;
+
+        /** The channel type for ATSC-M/H (mobile/handheld). */
+        public static final int TYPE_ATSC_M_H = 0x00030100;
+
+        /** The channel type for ISDB-T (terrestrial). */
+        public static final int TYPE_ISDB_T = 0x00040000;
+
+        /** The channel type for ISDB-Tb (Brazil). */
+        public static final int TYPE_ISDB_TB = 0x00040100;
+
+        /** The channel type for ISDB-S (satellite). */
+        public static final int TYPE_ISDB_S = 0x00040200;
+
+        /** The channel type for ISDB-C (cable). */
+        public static final int TYPE_ISDB_C = 0x00040300;
+
+        /** The channel type for 1seg (handheld). */
+        public static final int TYPE_1SEG = 0x00040400;
+
+        /** The channel type for DTMB (terrestrial). */
+        public static final int TYPE_DTMB = 0x00050000;
+
+        /** The channel type for CMMB (handheld). */
+        public static final int TYPE_CMMB = 0x00050100;
+
+        /** The channel type for T-DMB (terrestrial). */
+        public static final int TYPE_T_DMB = 0x00060000;
+
+        /** The channel type for S-DMB (satellite). */
+        public static final int TYPE_S_DMB = 0x00060100;
+
+        /**
+         * The name of the TV input service that provides this TV channel.
+         * <p>
+         * This is a required field.
+         * </p><p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String SERVICE_NAME = "service_name";
+
+        /**
+         * The predefined type of this TV channel.
+         * <p>
+         * This is used to indicate which broadcast standard (e.g. ATSC, DVB or ISDB) the current
+         * channel conforms to.
+         * </p><p>
+         * This is a required field.
+         * </p><p>
+         * Type: INTEGER
+         * </p>
+         */
+        public static final String TYPE = "type";
+
+        /**
+         * The transport stream ID as appeared in various broadcast standards.
+         * <p>
+         * This is not a required field but if provided, can significantly increase the accuracy of
+         * channel identification.
+         * </p><p>
+         * Type: INTEGER
+         * </p>
+         */
+        public static final String TRANSPORT_STREAM_ID = "transport_stream_id";
+
+        /**
+         * The channel number that is displayed to the user.
+         * <p>
+         * The format can vary depending on broadcast standard and product specification.
+         * </p><p>
+         * Type: INTEGER
+         * </p>
+         */
+        public static final String DISPLAY_NUMBER = "display_number";
+
+        /**
+         * The channel name that is displayed to the user.
+         * <p>
+         * A call sign is a good candidate to use for this purpose but any name that helps the user
+         * recognize the current channel will be enough. Can also be empty depending on broadcast
+         * standard.
+         * </p><p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String DISPLAY_NAME = "display_name";
+
+        /**
+         * The description of this TV channel.
+         * <p>
+         * Can be empty initially.
+         * </p><p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String DESCRIPTION = "description";
+
+        /**
+         * The flag indicating whether this TV channel is browsable or not.
+         * <p>
+         * A value of 1 indicates the channel is included in the channel list that applications use
+         * to browse channels, a value of 0 indicates the channel is not included in the list. If
+         * not specified, this value is set to 1 by default.
+         * </p><p>
+         * Type: INTEGER (boolean)
+         * </p>
+         */
+        public static final String BROWSABLE = "browsable";
+
+        /**
+         * Generic data used by individual TV input services.
+         * <p>
+         * Type: BLOB
+         * </p>
+         */
+        public static final String DATA = "data";
+
+
+        /**
+         * The version number of this row entry used by TV input services.
+         * <p>
+         * This is best used by sync adapters to identify the rows to update. The number can be
+         * defined by individual TV input services. One may assign the same value as
+         * {@code version_number} that appears in ETSI EN 300 468 or ATSC A/65, if the data are
+         * coming from a TV broadcast.
+         * </p><p>
+         * Type: INTEGER
+         * </p>
+         */
+        public static final String VERSION_NUMBER = "version_number";
+
+        private Channels() {}
+    }
+
+    /** Column definitions for the TV programs table. */
+    public static final class Programs implements BaseTvColumns {
+
+        /** The content:// style URI for this table. */
+        public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/program");
+
+        /** The MIME type of a directory of TV programs. */
+        public static final String CONTENT_TYPE =
+                "vnd.android.cursor.dir/vnd.com.android.tv.programs";
+
+        /** The MIME type of a single TV program. */
+        public static final String CONTENT_ITEM_TYPE =
+                "vnd.android.cursor.item/vnd.com.android.tv.programs";
+
+        /**
+         * The ID of the TV channel that contains this TV program.
+         * <p>
+         * This is a part of the channel URI and matches to {@link BaseColumns#_ID}.
+         * </p><p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String CHANNEL_ID = "channel_id";
+
+        /**
+         * The title of this TV program.
+         * <p>
+         * Type: TEXT
+         * </p>
+         **/
+        public static final String TITLE = "title";
+
+        /**
+         * The start time of this TV program, in milliseconds since the epoch.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String START_TIME_UTC_MILLIS = "start_time_utc_millis";
+
+        /**
+         * The end time of this TV program, in milliseconds since the epoch.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String END_TIME_UTC_MILLIS = "end_time_utc_millis";
+
+        /**
+         * The description of this TV program that is displayed to the user by default.
+         * <p>
+         * The maximum length of this field is 256 characters.
+         * </p><p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String DESCRIPTION = "description";
+
+        /**
+         * The detailed, lengthy description of this TV program that is displayed only when the user
+         * wants to see more information.
+         * <p>
+         * TV input services should leave this field empty if they have no additional
+         * details beyond {@link #DESCRIPTION}.
+         * </p><p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String LONG_DESCRIPTION = "long_description";
+
+        /**
+         * Generic data used by TV input services.
+         * <p>
+         * Type: BLOB
+         * </p>
+         */
+        public static final String DATA = "data";
+
+        /**
+         * The version number of this row entry used by TV input services.
+         * <p>
+         * This is best used by sync adapters to identify the rows to update. The number can be
+         * defined by individual TV input services. One may assign the same value as
+         * {@code version_number} in ETSI EN 300 468 or ATSC A/65, if the data are coming from a TV
+         * broadcast.
+         * </p><p>
+         * Type: INTEGER
+         * </p>
+         */
+        public static final String VERSION_NUMBER = "version_number";
+
+        private Programs() {}
+    }
+
+    /**
+     * Column definitions for the TV programs that the user watched. Applications do not have access
+     * to this table.
+     *
+     * @hide
+     */
+    public static final class WatchedPrograms implements BaseColumns {
+
+        /** The content:// style URI for this table. */
+        public static final Uri CONTENT_URI =
+                Uri.parse("content://" + AUTHORITY + "/watched_program");
+
+        /** The MIME type of a directory of watched programs. */
+        public static final String CONTENT_TYPE =
+                "vnd.android.cursor.dir/vnd.com.android.tv.watched_programs";
+
+        /** The MIME type of a single item in this table. */
+        public static final String CONTENT_ITEM_TYPE =
+                "vnd.android.cursor.item/vnd.com.android.tv.watched_programs";
+
+        /**
+         * The UTC time that the user started watching this TV program, in milliseconds since the
+         * epoch.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String WATCH_START_TIME_UTC_MILLIS = "watch_start_time_utc_millis";
+
+        /**
+         * The UTC time that the user stopped watching this TV program, in milliseconds since the
+         * epoch.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String WATCH_END_TIME_UTC_MILLIS = "watch_end_time_utc_millis";
+
+        /**
+         * The channel ID that contains this TV program.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String CHANNEL_ID = "channel_id";
+
+        /**
+         * The title of this TV program.
+         * <p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String TITLE = "title";
+
+        /**
+         * The start time of this TV program, in milliseconds since the epoch.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String START_TIME_UTC_MILLIS = "start_time_utc_millis";
+
+        /**
+         * The end time of this TV program, in milliseconds since the epoch.
+         * <p>
+         * Type: INTEGER (long)
+         * </p>
+         */
+        public static final String END_TIME_UTC_MILLIS = "end_time_utc_millis";
+
+        /**
+         * The description of this TV program.
+         * <p>
+         * Type: TEXT
+         * </p>
+         */
+        public static final String DESCRIPTION = "description";
+
+        private WatchedPrograms() {}
+    }
+}
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index 7647c22..2303d65 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -153,11 +153,11 @@
     private final Handler mHandler = new Handler();
     private IBinder mWindowToken;
     private Window mWindow;
-    private WindowManager mWindowManager;
-    private boolean mInteractive = false;
+    private boolean mInteractive;
     private boolean mLowProfile = true;
-    private boolean mFullscreen = false;
+    private boolean mFullscreen;
     private boolean mScreenBright = true;
+    private boolean mStarted;
     private boolean mFinished;
     private boolean mCanDoze;
     private boolean mDozing;
@@ -340,7 +340,7 @@
      * @return The current window manager, or null if the dream is not started.
      */
     public WindowManager getWindowManager() {
-        return mWindowManager;
+        return mWindow != null ? mWindow.getWindowManager() : null;
     }
 
     /**
@@ -623,7 +623,7 @@
      * @hide experimental
      */
     public DozeHardware getDozeHardware() {
-        if (mCanDoze && mDozeHardware == null) {
+        if (mCanDoze && mDozeHardware == null && mWindowToken != null) {
             try {
                 IDozeHardware hardware = mSandman.getDozeHardware(mWindowToken);
                 if (hardware != null) {
@@ -701,24 +701,25 @@
      * Must run on mHandler.
      */
     private final void detach() {
-        if (mWindow == null) {
-            // already detached!
-            return;
+        if (mStarted) {
+            if (mDebug) Slog.v(TAG, "detach(): Calling onDreamingStopped()");
+            mStarted = false;
+            onDreamingStopped();
         }
 
-        if (mDebug) Slog.v(TAG, "detach(): Calling onDreamingStopped()");
-        onDreamingStopped();
+        if (mWindow != null) {
+            // force our window to be removed synchronously
+            if (mDebug) Slog.v(TAG, "detach(): Removing window from window manager");
+            mWindow.getWindowManager().removeViewImmediate(mWindow.getDecorView());
+            mWindow = null;
+        }
 
-        if (mDebug) Slog.v(TAG, "detach(): Removing window from window manager");
-
-        // force our window to be removed synchronously
-        mWindowManager.removeViewImmediate(mWindow.getDecorView());
-        // the following will print a log message if it finds any other leaked windows
-        WindowManagerGlobal.getInstance().closeAll(mWindowToken,
-                this.getClass().getName(), "Dream");
-
-        mWindow = null;
-        mWindowToken = null;
+        if (mWindowToken != null) {
+            // the following will print a log message if it finds any other leaked windows
+            WindowManagerGlobal.getInstance().closeAll(mWindowToken,
+                    this.getClass().getName(), "Dream");
+            mWindowToken = null;
+        }
     }
 
     /**
@@ -746,12 +747,13 @@
         if (mDebug) Slog.v(TAG, "Attached on thread " + Thread.currentThread().getId());
 
         mWindowToken = windowToken;
+        mCanDoze = canDoze;
+
         mWindow = PolicyManager.makeNewWindow(this);
         mWindow.setCallback(this);
         mWindow.requestFeature(Window.FEATURE_NO_TITLE);
         mWindow.setBackgroundDrawable(new ColorDrawable(0xFF000000));
         mWindow.setFormat(PixelFormat.OPAQUE);
-        mCanDoze = canDoze;
 
         if (mDebug) Slog.v(TAG, String.format("Attaching window token: %s to window of type %s",
                 windowToken, WindowManager.LayoutParams.TYPE_DREAM));
@@ -769,24 +771,36 @@
                     | (mScreenBright ? WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON : 0)
                     );
         mWindow.setAttributes(lp);
-
-        if (mDebug) Slog.v(TAG, "Created and attached window: " + mWindow);
-
         mWindow.setWindowManager(null, windowToken, "dream", true);
-        mWindowManager = mWindow.getWindowManager();
 
-        if (mDebug) Slog.v(TAG, "Window added on thread " + Thread.currentThread().getId());
         applySystemUiVisibilityFlags(
                 (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0),
                 View.SYSTEM_UI_FLAG_LOW_PROFILE);
-        getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes());
 
-        // start it up
+        try {
+            getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes());
+        } catch (WindowManager.BadTokenException ex) {
+            // This can happen because the dream manager service will remove the token
+            // immediately without necessarily waiting for the dream to start.
+            // We should receive a finish message soon.
+            Slog.i(TAG, "attach() called after window token already removed, dream will "
+                    + "finish soon");
+            mWindow = null;
+            return;
+        }
+
+        // We need to defer calling onDreamingStarted until after onWindowAttached,
+        // which is posted to the handler by addView, so we post onDreamingStarted
+        // to the handler also.  Need to watch out here in case detach occurs before
+        // this callback is invoked.
         mHandler.post(new Runnable() {
             @Override
             public void run() {
-                if (mDebug) Slog.v(TAG, "Calling onDreamingStarted()");
-                onDreamingStarted();
+                if (mWindow != null) {
+                    if (mDebug) Slog.v(TAG, "Calling onDreamingStarted()");
+                    mStarted = true;
+                    onDreamingStarted();
+                }
             }
         });
     }
@@ -831,7 +845,7 @@
             WindowManager.LayoutParams lp = mWindow.getAttributes();
             lp.flags = applyFlags(lp.flags, flags, mask);
             mWindow.setAttributes(lp);
-            mWindowManager.updateViewLayout(mWindow.getDecorView(), lp);
+            mWindow.getWindowManager().updateViewLayout(mWindow.getDecorView(), lp);
         }
     }
 
diff --git a/core/java/android/service/notification/INotificationListener.aidl b/core/java/android/service/notification/INotificationListener.aidl
index 425fdc1..d4b29d8 100644
--- a/core/java/android/service/notification/INotificationListener.aidl
+++ b/core/java/android/service/notification/INotificationListener.aidl
@@ -21,6 +21,7 @@
 /** @hide */
 oneway interface INotificationListener
 {
+    void onListenerConnected(in String[] notificationKeys);
     void onNotificationPosted(in StatusBarNotification notification);
     void onNotificationRemoved(in StatusBarNotification notification);
 }
\ No newline at end of file
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index cf862b8..3673f03 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -23,6 +23,7 @@
 import android.content.Intent;
 import android.os.IBinder;
 import android.os.ServiceManager;
+import android.os.UserHandle;
 import android.util.Log;
 
 /**
@@ -83,6 +84,17 @@
      */
     public abstract void onNotificationRemoved(StatusBarNotification sbn);
 
+    /**
+     * Implement this method to learn about when the listener is enabled and connected to
+     * the notification manager.  You are safe to call {@link #getActiveNotifications(String[])
+     * at this time.
+     *
+     * @param notificationKeys The notification keys for all currently posted notifications.
+     */
+    public void onListenerConnected(String[] notificationKeys) {
+        // optional
+    }
+
     private final INotificationManager getNotificationInterface() {
         if (mNoMan == null) {
             mNoMan = INotificationManager.Stub.asInterface(
@@ -110,11 +122,43 @@
      *     {@link android.app.NotificationManager#notify(String, int, android.app.Notification)}.
      * @param id  ID of the notification as specified by the notifying app in
      *     {@link android.app.NotificationManager#notify(String, int, android.app.Notification)}.
+     * <p>
+     * @deprecated Use {@link #cancelNotification(String key)}
+     * instead. Beginning with {@link android.os.Build.VERSION_CODES#L} this method will no longer
+     * cancel the notification. It will continue to cancel the notification for applications
+     * whose {@code targetSdkVersion} is earlier than {@link android.os.Build.VERSION_CODES#L}.
      */
     public final void cancelNotification(String pkg, String tag, int id) {
         if (!isBound()) return;
         try {
-            getNotificationInterface().cancelNotificationFromListener(mWrapper, pkg, tag, id);
+            getNotificationInterface().cancelNotificationFromListener(
+                    mWrapper, pkg, tag, id);
+        } catch (android.os.RemoteException ex) {
+            Log.v(TAG, "Unable to contact notification manager", ex);
+        }
+    }
+
+    /**
+     * Inform the notification manager about dismissal of a single notification.
+     * <p>
+     * Use this if your listener has a user interface that allows the user to dismiss individual
+     * notifications, similar to the behavior of Android's status bar and notification panel.
+     * It should be called after the user dismisses a single notification using your UI;
+     * upon being informed, the notification manager will actually remove the notification
+     * and you will get an {@link #onNotificationRemoved(StatusBarNotification)} callback.
+     * <P>
+     * <b>Note:</b> If your listener allows the user to fire a notification's
+     * {@link android.app.Notification#contentIntent} by tapping/clicking/etc., you should call
+     * this method at that time <i>if</i> the Notification in question has the
+     * {@link android.app.Notification#FLAG_AUTO_CANCEL} flag set.
+     * <p>
+     * @param key Notification to dismiss from {@link StatusBarNotification#getKey()}.
+     */
+    public final void cancelNotification(String key) {
+        if (!isBound()) return;
+        try {
+            getNotificationInterface().cancelNotificationsFromListener(mWrapper,
+                    new String[] {key});
         } catch (android.os.RemoteException ex) {
             Log.v(TAG, "Unable to contact notification manager", ex);
         }
@@ -132,9 +176,23 @@
      * {@see #cancelNotification(String, String, int)}
      */
     public final void cancelAllNotifications() {
+        cancelNotifications(null /*all*/);
+    }
+
+    /**
+     * Inform the notification manager about dismissal of specific notifications.
+     * <p>
+     * Use this if your listener has a user interface that allows the user to dismiss
+     * multiple notifications at once.
+     *
+     * @param keys Notifications to dismiss, or {@code null} to dismiss all.
+     *
+     * {@see #cancelNotification(String, String, int)}
+     */
+    public final void cancelNotifications(String[] keys) {
         if (!isBound()) return;
         try {
-            getNotificationInterface().cancelAllNotificationsFromListener(mWrapper);
+            getNotificationInterface().cancelNotificationsFromListener(mWrapper, keys);
         } catch (android.os.RemoteException ex) {
             Log.v(TAG, "Unable to contact notification manager", ex);
         }
@@ -142,14 +200,43 @@
 
     /**
      * Request the list of outstanding notifications (that is, those that are visible to the
-     * current user). Useful when starting up and you don't know what's already been posted.
+     * current user). Useful when you don't know what's already been posted.
      *
      * @return An array of active notifications.
      */
     public StatusBarNotification[] getActiveNotifications() {
+        return getActiveNotifications(null /*all*/);
+    }
+
+    /**
+     * Request the list of outstanding notifications (that is, those that are visible to the
+     * current user). Useful when you don't know what's already been posted.
+     *
+     * @param keys A specific list of notification keys, or {@code null} for all.
+     * @return An array of active notifications.
+     */
+    public StatusBarNotification[] getActiveNotifications(String[] keys) {
         if (!isBound()) return null;
         try {
-            return getNotificationInterface().getActiveNotificationsFromListener(mWrapper);
+            return getNotificationInterface().getActiveNotificationsFromListener(mWrapper, keys);
+        } catch (android.os.RemoteException ex) {
+            Log.v(TAG, "Unable to contact notification manager", ex);
+        }
+        return null;
+    }
+
+    /**
+     * Request the list of outstanding notification keys(that is, those that are visible to the
+     * current user).  You can use the notification keys for subsequent retrieval via
+     * {@link #getActiveNotifications(String[]) or dismissal via
+     * {@link #cancelNotifications(String[]).
+     *
+     * @return An array of active notification keys.
+     */
+    public String[] getActiveNotificationKeys() {
+        if (!isBound()) return null;
+        try {
+            return getNotificationInterface().getActiveNotificationKeysFromListener(mWrapper);
         } catch (android.os.RemoteException ex) {
             Log.v(TAG, "Unable to contact notification manager", ex);
         }
@@ -189,5 +276,13 @@
                 Log.w(TAG, "Error running onNotificationRemoved", t);
             }
         }
+        @Override
+        public void onListenerConnected(String[] notificationKeys) {
+            try {
+                NotificationListenerService.this.onListenerConnected(notificationKeys);
+            } catch (Throwable t) {
+                Log.w(TAG, "Error running onListenerConnected", t);
+            }
+        }
     }
 }
diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java
index b5b9e14..0f74169 100644
--- a/core/java/android/service/notification/StatusBarNotification.java
+++ b/core/java/android/service/notification/StatusBarNotification.java
@@ -29,6 +29,7 @@
     private final String pkg;
     private final int id;
     private final String tag;
+    private final String key;
 
     private final int uid;
     private final String basePkg;
@@ -68,8 +69,8 @@
         this.notification = notification;
         this.user = user;
         this.notification.setUser(user);
-
         this.postTime = postTime;
+        this.key = key();
     }
 
     public StatusBarNotification(Parcel in) {
@@ -88,6 +89,11 @@
         this.user = UserHandle.readFromParcel(in);
         this.notification.setUser(this.user);
         this.postTime = in.readLong();
+        this.key = key();
+    }
+
+    private String key() {
+        return pkg + '|' + basePkg + '|' + id + '|' + tag + '|' + uid;
     }
 
     public void writeToParcel(Parcel out, int flags) {
@@ -148,9 +154,9 @@
     @Override
     public String toString() {
         return String.format(
-                "StatusBarNotification(pkg=%s user=%s id=%d tag=%s score=%d: %s)",
+                "StatusBarNotification(pkg=%s user=%s id=%d tag=%s score=%d key=%s: %s)",
                 this.pkg, this.user, this.id, this.tag,
-                this.score, this.notification);
+                this.score, this.key, this.notification);
     }
 
     /** Convenience method to check the notification's flags for
@@ -169,7 +175,11 @@
                 && ((notification.flags & Notification.FLAG_NO_CLEAR) == 0);
     }
 
-    /** Returns a userHandle for the instance of the app that posted this notification. */
+    /**
+     * Returns a userHandle for the instance of the app that posted this notification.
+     *
+     * @deprecated Use {@link #getUser()} instead.
+     */
     public int getUserId() {
         return this.user.getIdentifier();
     }
@@ -213,7 +223,6 @@
 
     /**
      * The {@link android.os.UserHandle} for whom this notification is intended.
-     * @hide
      */
     public UserHandle getUser() {
         return user;
@@ -230,4 +239,11 @@
     public int getScore() {
         return score;
     }
+
+    /**
+     * A unique instance key for this notification record.
+     */
+    public String getKey() {
+        return key;
+    }
 }
diff --git a/core/java/android/service/trust/ITrustAgentService.aidl b/core/java/android/service/trust/ITrustAgentService.aidl
new file mode 100644
index 0000000..863a249
--- /dev/null
+++ b/core/java/android/service/trust/ITrustAgentService.aidl
@@ -0,0 +1,28 @@
+/*
+ * 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 android.service.trust;
+
+import android.os.Bundle;
+import android.service.trust.ITrustAgentServiceCallback;
+
+/**
+ * Communication channel from TrustManagerService to the TrustAgent.
+ * @hide
+ */
+oneway interface ITrustAgentService {
+    void onUnlockAttempt(boolean successful);
+    void setCallback(ITrustAgentServiceCallback callback);
+}
diff --git a/core/java/android/service/trust/ITrustAgentServiceCallback.aidl b/core/java/android/service/trust/ITrustAgentServiceCallback.aidl
new file mode 100644
index 0000000..c346771
--- /dev/null
+++ b/core/java/android/service/trust/ITrustAgentServiceCallback.aidl
@@ -0,0 +1,28 @@
+/*
+ * 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 android.service.trust;
+
+import android.os.Bundle;
+import android.os.UserHandle;
+
+/**
+ * Communication channel from the TrustAgentService back to TrustManagerService.
+ * @hide
+ */
+oneway interface ITrustAgentServiceCallback {
+    void enableTrust(String message, long durationMs, boolean initiatedByUser);
+    void revokeTrust();
+}
diff --git a/core/java/android/service/trust/TrustAgentService.java b/core/java/android/service/trust/TrustAgentService.java
new file mode 100644
index 0000000..d5ce429
--- /dev/null
+++ b/core/java/android/service/trust/TrustAgentService.java
@@ -0,0 +1,148 @@
+/**
+ * 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 android.service.trust;
+
+import android.annotation.SdkConstant;
+import android.app.Service;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Slog;
+
+/**
+ * A service that notifies the system about whether it believes the environment of the device
+ * to be trusted.
+ *
+ * <p>To extend this class, you must declare the service in your manifest file with
+ * the {@link android.Manifest.permission#BIND_TRUST_AGENT_SERVICE} permission
+ * and include an intent filter with the {@link #SERVICE_INTERFACE} action. For example:</p>
+ * <pre>
+ * &lt;service android:name=".TrustAgent"
+ *          android:label="&#64;string/service_name"
+ *          android:permission="android.permission.BIND_TRUST_AGENT_SERVICE">
+ *     &lt;intent-filter>
+ *         &lt;action android:name="android.service.trust.TrustAgentService" />
+ *     &lt;/intent-filter>
+ *     &lt;meta-data android:name="android.service.trust.trustagent"
+ *          android:value="&#64;xml/trust_agent" />
+ * &lt;/service></pre>
+ *
+ * <p>The associated meta-data file can specify an activity that is accessible through Settings
+ * and should allow configuring the trust agent, as defined in
+ * {@link android.R.styleable#TrustAgent}. For example:</p>
+ *
+ * <pre>
+ * &lt;trust_agent xmlns:android="http://schemas.android.com/apk/res/android"
+ *          android:settingsActivity=".TrustAgentSettings" /></pre>
+ */
+public class TrustAgentService extends Service {
+    private final String TAG = TrustAgentService.class.getSimpleName() +
+            "[" + getClass().getSimpleName() + "]";
+
+    /**
+     * The {@link Intent} that must be declared as handled by the service.
+     */
+    @SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION)
+    public static final String SERVICE_INTERFACE
+            = "android.service.trust.TrustAgentService";
+
+    /**
+     * The name of the {@code meta-data} tag pointing to additional configuration of the trust
+     * agent.
+     */
+    public static final String TRUST_AGENT_META_DATA = "android.service.trust.trustagent";
+
+    private static final int MSG_UNLOCK_ATTEMPT = 1;
+
+    private static final boolean DEBUG = false;
+
+    private ITrustAgentServiceCallback mCallback;
+
+    private Handler mHandler = new Handler() {
+        public void handleMessage(android.os.Message msg) {
+            switch (msg.what) {
+                case MSG_UNLOCK_ATTEMPT:
+                    onUnlockAttempt(msg.arg1 != 0);
+                    break;
+            }
+        };
+    };
+
+    /**
+     * Called when the user attempted to authenticate on the device.
+     *
+     * @param successful true if the attempt succeeded
+     */
+    protected void onUnlockAttempt(boolean successful) {
+    }
+
+    private void onError(String msg) {
+        Slog.v(TAG, "Remote exception while " + msg);
+    }
+
+    /**
+     * Call to enable trust on the device.
+     *
+     * @param message describes why the device is trusted, e.g. "Trusted by location".
+     * @param durationMs amount of time in milliseconds to keep the device in a trusted state. Trust
+     *                   for this agent will automatically be revoked when the timeout expires.
+     * @param initiatedByUser indicates that the user has explicitly initiated an action that proves
+     *                        the user is about to use the device.
+     */
+    protected final void enableTrust(String message, long durationMs, boolean initiatedByUser) {
+        if (mCallback != null) {
+            try {
+                mCallback.enableTrust(message, durationMs, initiatedByUser);
+            } catch (RemoteException e) {
+                onError("calling enableTrust()");
+            }
+        }
+    }
+
+    /**
+     * Call to revoke trust on the device.
+     */
+    protected final void revokeTrust() {
+        if (mCallback != null) {
+            try {
+                mCallback.revokeTrust();
+            } catch (RemoteException e) {
+                onError("calling revokeTrust()");
+            }
+        }
+    }
+
+    @Override
+    public final IBinder onBind(Intent intent) {
+        if (DEBUG) Slog.v(TAG, "onBind() intent = " + intent);
+        return new TrustAgentServiceWrapper();
+    }
+
+    private final class TrustAgentServiceWrapper extends ITrustAgentService.Stub {
+        @Override
+        public void onUnlockAttempt(boolean successful) {
+            mHandler.obtainMessage(MSG_UNLOCK_ATTEMPT, successful ? 1 : 0, 0)
+                    .sendToTarget();
+        }
+
+        public void setCallback(ITrustAgentServiceCallback callback) {
+            mCallback = callback;
+        }
+    }
+
+}
diff --git a/core/java/android/speech/tts/TextToSpeechClient.java b/core/java/android/speech/tts/TextToSpeechClient.java
index c6a14f2..10e2073 100644
--- a/core/java/android/speech/tts/TextToSpeechClient.java
+++ b/core/java/android/speech/tts/TextToSpeechClient.java
@@ -57,7 +57,7 @@
  * successful callback is the client usable.
  * <p>
  * After successful connection, the list of all available voices can be obtained
- * by calling the {@link TextToSpeechClient#getEngineStatus() method. The client can
+ * by calling the {@link TextToSpeechClient#getEngineStatus()} method. The client can
  * choose a voice using some custom heuristic and build a {@link RequestConfig} object
  * using {@link RequestConfig.Builder}, or can use one of the common heuristics found
  * in ({@link RequestConfigHelper}.
@@ -69,7 +69,7 @@
  * {@link ConnectionCallbacks#onEngineStatusChange} with new set of available voices as argument.
  * In response, the client HAVE to recreate all {@link RequestConfig} instances in use.
  */
-public final class TextToSpeechClient {
+public class TextToSpeechClient {
     private static final String TAG = TextToSpeechClient.class.getSimpleName();
 
     private final Object mLock = new Object();
diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java
index 06935ae..77ef1da 100644
--- a/core/java/android/text/DynamicLayout.java
+++ b/core/java/android/text/DynamicLayout.java
@@ -21,6 +21,7 @@
 import android.text.style.WrapTogetherSpan;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 import java.lang.ref.WeakReference;
 
@@ -401,7 +402,7 @@
 
         if (mBlockEndLines == null) {
             // Initial creation of the array, no test on previous block ending line
-            mBlockEndLines = new int[ArrayUtils.idealIntArraySize(1)];
+            mBlockEndLines = ArrayUtils.newUnpaddedIntArray(1);
             mBlockEndLines[mNumberOfBlocks] = line;
             mNumberOfBlocks++;
             return;
@@ -409,13 +410,7 @@
 
         final int previousBlockEndLine = mBlockEndLines[mNumberOfBlocks - 1];
         if (line > previousBlockEndLine) {
-            if (mNumberOfBlocks == mBlockEndLines.length) {
-                // Grow the array if needed
-                int[] blockEndLines = new int[ArrayUtils.idealIntArraySize(mNumberOfBlocks + 1)];
-                System.arraycopy(mBlockEndLines, 0, blockEndLines, 0, mNumberOfBlocks);
-                mBlockEndLines = blockEndLines;
-            }
-            mBlockEndLines[mNumberOfBlocks] = line;
+            mBlockEndLines = GrowingArrayUtils.append(mBlockEndLines, mNumberOfBlocks, line);
             mNumberOfBlocks++;
         }
     }
@@ -483,9 +478,9 @@
         }
 
         if (newNumberOfBlocks > mBlockEndLines.length) {
-            final int newSize = ArrayUtils.idealIntArraySize(newNumberOfBlocks);
-            int[] blockEndLines = new int[newSize];
-            int[] blockIndices = new int[newSize];
+            int[] blockEndLines = ArrayUtils.newUnpaddedIntArray(
+                    Math.max(mBlockEndLines.length * 2, newNumberOfBlocks));
+            int[] blockIndices = new int[blockEndLines.length];
             System.arraycopy(mBlockEndLines, 0, blockEndLines, 0, firstBlock);
             System.arraycopy(mBlockIndices, 0, blockIndices, 0, firstBlock);
             System.arraycopy(mBlockEndLines, lastBlock + 1,
diff --git a/core/java/android/text/Html.java b/core/java/android/text/Html.java
index c80321c..2fcc597 100644
--- a/core/java/android/text/Html.java
+++ b/core/java/android/text/Html.java
@@ -211,7 +211,7 @@
 
     private static String getOpenParaTagWithDirection(Spanned text, int start, int end) {
         final int len = end - start;
-        final byte[] levels = new byte[ArrayUtils.idealByteArraySize(len)];
+        final byte[] levels = ArrayUtils.newUnpaddedByteArray(len);
         final char[] buffer = TextUtils.obtain(len);
         TextUtils.getChars(text, start, end, buffer, 0);
 
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index 9dfd383..4bfcaff 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -31,6 +31,7 @@
 import android.text.style.TabStopSpan;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 import java.util.Arrays;
 
@@ -403,14 +404,9 @@
                                 // construction
                                 if (mLineBackgroundSpans.spanStarts[j] >= end ||
                                         mLineBackgroundSpans.spanEnds[j] <= start) continue;
-                                if (spansLength == spans.length) {
-                                    // The spans array needs to be expanded
-                                    int newSize = ArrayUtils.idealObjectArraySize(2 * spansLength);
-                                    ParagraphStyle[] newSpans = new ParagraphStyle[newSize];
-                                    System.arraycopy(spans, 0, newSpans, 0, spansLength);
-                                    spans = newSpans;
-                                }
-                                spans[spansLength++] = mLineBackgroundSpans.spans[j];
+                                spans = GrowingArrayUtils.append(
+                                        spans, spansLength, mLineBackgroundSpans.spans[j]);
+                                spansLength++;
                             }
                         }
                     }
diff --git a/core/java/android/text/MeasuredText.java b/core/java/android/text/MeasuredText.java
index 101d6a2..f8e3c83 100644
--- a/core/java/android/text/MeasuredText.java
+++ b/core/java/android/text/MeasuredText.java
@@ -98,10 +98,10 @@
         mPos = 0;
 
         if (mWidths == null || mWidths.length < len) {
-            mWidths = new float[ArrayUtils.idealFloatArraySize(len)];
+            mWidths = ArrayUtils.newUnpaddedFloatArray(len);
         }
         if (mChars == null || mChars.length < len) {
-            mChars = new char[ArrayUtils.idealCharArraySize(len)];
+            mChars = ArrayUtils.newUnpaddedCharArray(len);
         }
         TextUtils.getChars(text, start, end, mChars, 0);
 
@@ -130,7 +130,7 @@
             mEasy = true;
         } else {
             if (mLevels == null || mLevels.length < len) {
-                mLevels = new byte[ArrayUtils.idealByteArraySize(len)];
+                mLevels = ArrayUtils.newUnpaddedByteArray(len);
             }
             int bidiRequest;
             if (textDir == TextDirectionHeuristics.LTR) {
diff --git a/core/java/android/text/PackedIntVector.java b/core/java/android/text/PackedIntVector.java
index d87f600..546ab44 100644
--- a/core/java/android/text/PackedIntVector.java
+++ b/core/java/android/text/PackedIntVector.java
@@ -17,6 +17,7 @@
 package android.text;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 
 /**
@@ -252,9 +253,9 @@
      */
     private final void growBuffer() {
         final int columns = mColumns;
-        int newsize = size() + 1;
-        newsize = ArrayUtils.idealIntArraySize(newsize * columns) / columns;
-        int[] newvalues = new int[newsize * columns];
+        int[] newvalues = ArrayUtils.newUnpaddedIntArray(
+                GrowingArrayUtils.growSize(size()) * columns);
+        int newsize = newvalues.length / columns;
 
         final int[] valuegap = mValueGap;
         final int rowgapstart = mRowGapStart;
diff --git a/core/java/android/text/PackedObjectVector.java b/core/java/android/text/PackedObjectVector.java
index a29df09..b777e16 100644
--- a/core/java/android/text/PackedObjectVector.java
+++ b/core/java/android/text/PackedObjectVector.java
@@ -17,6 +17,9 @@
 package android.text;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 class PackedObjectVector<E>
 {
@@ -32,12 +35,11 @@
     PackedObjectVector(int columns)
     {
         mColumns = columns;
-        mRows = ArrayUtils.idealIntArraySize(0) / mColumns;
+        mValues = EmptyArray.OBJECT;
+        mRows = 0;
 
         mRowGapStart = 0;
         mRowGapLength = mRows;
-
-        mValues = new Object[mRows * mColumns];
     }
 
     public E
@@ -109,10 +111,9 @@
     private void
     growBuffer()
     {
-        int newsize = size() + 1;
-        newsize = ArrayUtils.idealIntArraySize(newsize * mColumns) / mColumns;
-        Object[] newvalues = new Object[newsize * mColumns];
-
+        Object[] newvalues = ArrayUtils.newUnpaddedObjectArray(
+                GrowingArrayUtils.growSize(size()) * mColumns);
+        int newsize = newvalues.length / mColumns;
         int after = mRows - (mRowGapStart + mRowGapLength);
 
         System.arraycopy(mValues, 0, newvalues, 0, mColumns * mRowGapStart);
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java
index b55cd6a..f440853 100644
--- a/core/java/android/text/SpannableStringBuilder.java
+++ b/core/java/android/text/SpannableStringBuilder.java
@@ -21,6 +21,9 @@
 import android.util.Log;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 import java.lang.reflect.Array;
 
@@ -54,19 +57,17 @@
 
         if (srclen < 0) throw new StringIndexOutOfBoundsException();
 
-        int len = ArrayUtils.idealCharArraySize(srclen + 1);
-        mText = new char[len];
+        mText = ArrayUtils.newUnpaddedCharArray(GrowingArrayUtils.growSize(srclen));
         mGapStart = srclen;
-        mGapLength = len - srclen;
+        mGapLength = mText.length - srclen;
 
         TextUtils.getChars(text, start, end, mText, 0);
 
         mSpanCount = 0;
-        int alloc = ArrayUtils.idealIntArraySize(0);
-        mSpans = new Object[alloc];
-        mSpanStarts = new int[alloc];
-        mSpanEnds = new int[alloc];
-        mSpanFlags = new int[alloc];
+        mSpans = EmptyArray.OBJECT;
+        mSpanStarts = EmptyArray.INT;
+        mSpanEnds = EmptyArray.INT;
+        mSpanFlags = EmptyArray.INT;
 
         if (text instanceof Spanned) {
             Spanned sp = (Spanned) text;
@@ -130,12 +131,14 @@
 
     private void resizeFor(int size) {
         final int oldLength = mText.length;
-        final int newLength = ArrayUtils.idealCharArraySize(size + 1);
-        final int delta = newLength - oldLength;
-        if (delta == 0) return;
+        if (size + 1 <= oldLength) {
+            return;
+        }
 
-        char[] newText = new char[newLength];
+        char[] newText = ArrayUtils.newUnpaddedCharArray(GrowingArrayUtils.growSize(size));
         System.arraycopy(mText, 0, newText, 0, mGapStart);
+        final int newLength = newText.length;
+        final int delta = newLength - oldLength;
         final int after = oldLength - (mGapStart + mGapLength);
         System.arraycopy(mText, oldLength - after, newText, newLength - after, after);
         mText = newText;
@@ -679,28 +682,10 @@
             }
         }
 
-        if (mSpanCount + 1 >= mSpans.length) {
-            int newsize = ArrayUtils.idealIntArraySize(mSpanCount + 1);
-            Object[] newspans = new Object[newsize];
-            int[] newspanstarts = new int[newsize];
-            int[] newspanends = new int[newsize];
-            int[] newspanflags = new int[newsize];
-
-            System.arraycopy(mSpans, 0, newspans, 0, mSpanCount);
-            System.arraycopy(mSpanStarts, 0, newspanstarts, 0, mSpanCount);
-            System.arraycopy(mSpanEnds, 0, newspanends, 0, mSpanCount);
-            System.arraycopy(mSpanFlags, 0, newspanflags, 0, mSpanCount);
-
-            mSpans = newspans;
-            mSpanStarts = newspanstarts;
-            mSpanEnds = newspanends;
-            mSpanFlags = newspanflags;
-        }
-
-        mSpans[mSpanCount] = what;
-        mSpanStarts[mSpanCount] = start;
-        mSpanEnds[mSpanCount] = end;
-        mSpanFlags[mSpanCount] = flags;
+        mSpans = GrowingArrayUtils.append(mSpans, mSpanCount, what);
+        mSpanStarts = GrowingArrayUtils.append(mSpanStarts, mSpanCount, start);
+        mSpanEnds = GrowingArrayUtils.append(mSpanEnds, mSpanCount, end);
+        mSpanFlags = GrowingArrayUtils.append(mSpanFlags, mSpanCount, flags);
         mSpanCount++;
 
         if (send) sendSpanAdded(what, nstart, nend);
diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java
index 456a3e5..d114d32 100644
--- a/core/java/android/text/SpannableStringInternal.java
+++ b/core/java/android/text/SpannableStringInternal.java
@@ -17,6 +17,9 @@
 package android.text;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 import java.lang.reflect.Array;
 
@@ -29,9 +32,8 @@
         else
             mText = source.toString().substring(start, end);
 
-        int initial = ArrayUtils.idealIntArraySize(0);
-        mSpans = new Object[initial];
-        mSpanData = new int[initial * 3];
+        mSpans = EmptyArray.OBJECT;
+        mSpanData = EmptyArray.INT;
 
         if (source instanceof Spanned) {
             Spanned sp = (Spanned) source;
@@ -115,9 +117,9 @@
         }
 
         if (mSpanCount + 1 >= mSpans.length) {
-            int newsize = ArrayUtils.idealIntArraySize(mSpanCount + 1);
-            Object[] newtags = new Object[newsize];
-            int[] newdata = new int[newsize * 3];
+            Object[] newtags = ArrayUtils.newUnpaddedObjectArray(
+                    GrowingArrayUtils.growSize(mSpanCount));
+            int[] newdata = new int[newtags.length * 3];
 
             System.arraycopy(mSpans, 0, newtags, 0, mSpanCount);
             System.arraycopy(mSpanData, 0, newdata, 0, mSpanCount * 3);
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index e7d6fda..638ef22 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -26,6 +26,7 @@
 import android.util.Log;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 /**
  * StaticLayout is a Layout for text that will not be edited after it
@@ -130,9 +131,8 @@
             mEllipsizedWidth = outerwidth;
         }
 
-        mLines = new int[ArrayUtils.idealIntArraySize(2 * mColumns)];
-        mLineDirections = new Directions[
-                             ArrayUtils.idealIntArraySize(2 * mColumns)];
+        mLineDirections = ArrayUtils.newUnpaddedArray(Directions.class, 2 * mColumns);
+        mLines = new int[mLineDirections.length];
         mMaximumVisibleLineCount = maxLines;
 
         mMeasured = MeasuredText.obtain();
@@ -149,8 +149,8 @@
         super(text, null, 0, null, 0, 0);
 
         mColumns = COLUMNS_ELLIPSIZE;
-        mLines = new int[ArrayUtils.idealIntArraySize(2 * mColumns)];
-        mLineDirections = new Directions[ArrayUtils.idealIntArraySize(2 * mColumns)];
+        mLineDirections = ArrayUtils.newUnpaddedArray(Directions.class, 2 * mColumns);
+        mLines = new int[mLineDirections.length];
         // FIXME This is never recycled
         mMeasured = MeasuredText.obtain();
     }
@@ -215,8 +215,7 @@
                 if (chooseHt.length != 0) {
                     if (chooseHtv == null ||
                         chooseHtv.length < chooseHt.length) {
-                        chooseHtv = new int[ArrayUtils.idealIntArraySize(
-                                            chooseHt.length)];
+                        chooseHtv = ArrayUtils.newUnpaddedIntArray(chooseHt.length);
                     }
 
                     for (int i = 0; i < chooseHt.length; i++) {
@@ -434,7 +433,7 @@
                         }
 
                         if (mLineCount >= mMaximumVisibleLineCount) {
-                            break;
+                            return;
                         }
                     }
                 }
@@ -599,16 +598,16 @@
         int[] lines = mLines;
 
         if (want >= lines.length) {
-            int nlen = ArrayUtils.idealIntArraySize(want + 1);
-            int[] grow = new int[nlen];
-            System.arraycopy(lines, 0, grow, 0, lines.length);
-            mLines = grow;
-            lines = grow;
-
-            Directions[] grow2 = new Directions[nlen];
+            Directions[] grow2 = ArrayUtils.newUnpaddedArray(
+                    Directions.class, GrowingArrayUtils.growSize(want));
             System.arraycopy(mLineDirections, 0, grow2, 0,
                              mLineDirections.length);
             mLineDirections = grow2;
+
+            int[] grow = new int[grow2.length];
+            System.arraycopy(lines, 0, grow, 0, lines.length);
+            mLines = grow;
+            lines = grow;
         }
 
         if (chooseHt != null) {
diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java
index 1fecf81..d892f19 100644
--- a/core/java/android/text/TextLine.java
+++ b/core/java/android/text/TextLine.java
@@ -153,7 +153,7 @@
 
         if (mCharsValid) {
             if (mChars == null || mChars.length < mLen) {
-                mChars = new char[ArrayUtils.idealCharArraySize(mLen)];
+                mChars = ArrayUtils.newUnpaddedCharArray(mLen);
             }
             TextUtils.getChars(text, start, limit, mChars, 0);
             if (hasReplacement) {
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 596ca8c..f06ae71 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -1321,7 +1321,7 @@
         }
 
         if (buf == null || buf.length < len)
-            buf = new char[ArrayUtils.idealCharArraySize(len)];
+            buf = ArrayUtils.newUnpaddedCharArray(len);
 
         return buf;
     }
diff --git a/core/java/android/transition/CircularPropagation.java b/core/java/android/transition/CircularPropagation.java
new file mode 100644
index 0000000..18a3d22
--- /dev/null
+++ b/core/java/android/transition/CircularPropagation.java
@@ -0,0 +1,103 @@
+/*
+ * 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 android.transition;
+
+import android.graphics.Rect;
+import android.util.FloatMath;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * A propagation that varies with the distance to the epicenter of the Transition
+ * or center of the scene if no epicenter exists. When a View is visible in the
+ * start of the transition, Views farther from the epicenter will transition
+ * sooner than Views closer to the epicenter. When a View is not in the start
+ * of the transition or is not visible at the start of the transition, it will
+ * transition sooner when closer to the epicenter and later when farther from
+ * the epicenter. This is the default TransitionPropagation used with
+ * {@link android.transition.Explode}.
+ */
+public class CircularPropagation extends VisibilityPropagation {
+    private static final String TAG = "CircularPropagation";
+
+    private float mPropagationSpeed = 4.0f;
+
+    /**
+     * Sets the speed at which transition propagation happens, relative to the duration of the
+     * Transition. A <code>propagationSpeed</code> of 1 means that a View centered farthest from
+     * the epicenter and View centered at the epicenter will have a difference
+     * in start delay of approximately the duration of the Transition. A speed of 2 means the
+     * start delay difference will be approximately half of the duration of the transition. A
+     * value of 0 is illegal, but negative values will invert the propagation.
+     *
+     * @param propagationSpeed The speed at which propagation occurs, relative to the duration
+     *                         of the transition. A speed of 4 means it works 4 times as fast
+     *                         as the duration of the transition. May not be 0.
+     */
+    public void setPropagationSpeed(float propagationSpeed) {
+        if (propagationSpeed == 0) {
+            throw new IllegalArgumentException("propagationSpeed may not be 0");
+        }
+        mPropagationSpeed = propagationSpeed;
+    }
+
+    @Override
+    public long getStartDelay(ViewGroup sceneRoot, Transition transition,
+            TransitionValues startValues, TransitionValues endValues) {
+        if (startValues == null && endValues == null) {
+            return 0;
+        }
+        int directionMultiplier = 1;
+        TransitionValues positionValues;
+        if (endValues == null || getViewVisibility(startValues) == View.VISIBLE) {
+            positionValues = startValues;
+            directionMultiplier = -1;
+        } else {
+            positionValues = endValues;
+        }
+
+        int viewCenterX = getViewX(positionValues);
+        int viewCenterY = getViewY(positionValues);
+
+        Rect epicenter = transition.getEpicenter();
+        int epicenterX;
+        int epicenterY;
+        if (epicenter != null) {
+            epicenterX = epicenter.centerX();
+            epicenterY = epicenter.centerY();
+        } else {
+            int[] loc = new int[2];
+            sceneRoot.getLocationOnScreen(loc);
+            epicenterX = Math.round(loc[0] + (sceneRoot.getWidth() / 2)
+                    + sceneRoot.getTranslationX());
+            epicenterY = Math.round(loc[1] + (sceneRoot.getHeight() / 2)
+                    + sceneRoot.getTranslationY());
+        }
+        float distance = distance(viewCenterX, viewCenterY, epicenterX, epicenterY);
+        float maxDistance = distance(0, 0, sceneRoot.getWidth(), sceneRoot.getHeight());
+        float distanceFraction = distance/maxDistance;
+
+        return Math.round(transition.getDuration() * directionMultiplier / mPropagationSpeed
+                * distanceFraction);
+    }
+
+    private static float distance(float x1, float y1, float x2, float y2) {
+        float x = x2 - x1;
+        float y = y2 - y1;
+        return FloatMath.sqrt((x * x) + (y * y));
+    }
+}
diff --git a/core/java/android/transition/Explode.java b/core/java/android/transition/Explode.java
new file mode 100644
index 0000000..fae527c
--- /dev/null
+++ b/core/java/android/transition/Explode.java
@@ -0,0 +1,228 @@
+/*
+ * 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 android.transition;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.animation.TimeInterpolator;
+import android.graphics.Path;
+import android.graphics.Rect;
+import android.util.FloatMath;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.DecelerateInterpolator;
+
+/**
+ * This transition tracks changes to the visibility of target views in the
+ * start and end scenes and moves views in or out from the edges of the
+ * scene. Visibility is determined by both the
+ * {@link View#setVisibility(int)} state of the view as well as whether it
+ * is parented in the current view hierarchy. Disappearing Views are
+ * limited as described in {@link Visibility#onDisappear(android.view.ViewGroup,
+ * TransitionValues, int, TransitionValues, int)}.
+ * <p>Views move away from the focal View or the center of the Scene if
+ * no epicenter was provided.</p>
+ */
+public class Explode extends Visibility {
+    private static final TimeInterpolator sDecelerate = new DecelerateInterpolator();
+    private static final TimeInterpolator sAccelerate = new AccelerateInterpolator();
+    private static final String TAG = "Explode";
+
+    private static final String PROPNAME_SCREEN_BOUNDS = "android:out:screenBounds";
+
+    private int[] mTempLoc = new int[2];
+
+    public Explode() {
+        setPropagation(new CircularPropagation());
+    }
+
+    private void captureValues(TransitionValues transitionValues) {
+        View view = transitionValues.view;
+        view.getLocationOnScreen(mTempLoc);
+        int left = mTempLoc[0] + Math.round(view.getTranslationX());
+        int top = mTempLoc[1] + Math.round(view.getTranslationY());
+        int right = left + view.getWidth();
+        int bottom = top + view.getHeight();
+        transitionValues.values.put(PROPNAME_SCREEN_BOUNDS, new Rect(left, top, right, bottom));
+    }
+
+    @Override
+    public void captureStartValues(TransitionValues transitionValues) {
+        super.captureStartValues(transitionValues);
+        captureValues(transitionValues);
+    }
+
+    @Override
+    public void captureEndValues(TransitionValues transitionValues) {
+        super.captureEndValues(transitionValues);
+        captureValues(transitionValues);
+    }
+
+    private Animator createAnimation(final View view, float startX, float startY, float endX,
+            float endY, float terminalX, float terminalY, TimeInterpolator interpolator) {
+        view.setTranslationX(startX);
+        view.setTranslationY(startY);
+        if (startY == endY && startX == endX) {
+            return null;
+        }
+        Path path = new Path();
+        path.moveTo(startX, startY);
+        path.lineTo(endX, endY);
+        ObjectAnimator pathAnimator = ObjectAnimator.ofFloat(view, View.TRANSLATION_X,
+                View.TRANSLATION_Y, path);
+        pathAnimator.setInterpolator(interpolator);
+        OutAnimatorListener listener = new OutAnimatorListener(view, terminalX, terminalY,
+                endX, endY);
+        pathAnimator.addListener(listener);
+        pathAnimator.addPauseListener(listener);
+
+        return pathAnimator;
+    }
+
+    @Override
+    public Animator onAppear(ViewGroup sceneRoot, View view,
+            TransitionValues startValues, TransitionValues endValues) {
+        if (endValues == null) {
+            return null;
+        }
+        Rect bounds = (Rect) endValues.values.get(PROPNAME_SCREEN_BOUNDS);
+        calculateOut(sceneRoot, bounds, mTempLoc);
+
+        final float endX = view.getTranslationX();
+        final float startX = endX + mTempLoc[0];
+        final float endY = view.getTranslationY();
+        final float startY = endY + mTempLoc[1];
+
+        return createAnimation(view, startX, startY, endX, endY, endX, endY, sDecelerate);
+    }
+
+    @Override
+    public Animator onDisappear(ViewGroup sceneRoot, View view,
+            TransitionValues startValues, TransitionValues endValues) {
+        Rect bounds = (Rect) startValues.values.get(PROPNAME_SCREEN_BOUNDS);
+        calculateOut(sceneRoot, bounds, mTempLoc);
+
+        final float startX = view.getTranslationX();
+        final float endX = startX + mTempLoc[0];
+        final float startY = view.getTranslationY();
+        final float endY = startY + mTempLoc[1];
+
+        return createAnimation(view, startX, startY, endX, endY, startX, startY,
+                sAccelerate);
+    }
+
+    private void calculateOut(View sceneRoot, Rect bounds, int[] outVector) {
+        sceneRoot.getLocationOnScreen(mTempLoc);
+        int sceneRootX = mTempLoc[0];
+        int sceneRootY = mTempLoc[1];
+        int focalX;
+        int focalY;
+
+        Rect epicenter = getEpicenter();
+        if (epicenter == null) {
+            focalX = sceneRootX + (sceneRoot.getWidth() / 2)
+                    + Math.round(sceneRoot.getTranslationX());
+            focalY = sceneRootY + (sceneRoot.getHeight() / 2)
+                    + Math.round(sceneRoot.getTranslationY());
+        } else {
+            focalX = epicenter.centerX();
+            focalY = epicenter.centerY();
+        }
+
+        int centerX = bounds.centerX();
+        int centerY = bounds.centerY();
+        float xVector = centerX - focalX;
+        float yVector = centerY - focalY;
+
+        if (xVector == 0 && yVector == 0) {
+            // Random direction when View is centered on focal View.
+            xVector = (float)(Math.random() * 2) - 1;
+            yVector = (float)(Math.random() * 2) - 1;
+        }
+        float vectorSize = calculateDistance(xVector, yVector);
+        xVector /= vectorSize;
+        yVector /= vectorSize;
+
+        float maxDistance =
+                calculateMaxDistance(sceneRoot, focalX - sceneRootX, focalY - sceneRootY);
+
+        outVector[0] = Math.round(maxDistance * xVector);
+        outVector[1] = Math.round(maxDistance * yVector);
+    }
+
+    private static float calculateMaxDistance(View sceneRoot, int focalX, int focalY) {
+        int maxX = Math.max(focalX, sceneRoot.getWidth() - focalX);
+        int maxY = Math.max(focalY, sceneRoot.getHeight() - focalY);
+        return calculateDistance(maxX, maxY);
+    }
+
+    private static float calculateDistance(float x, float y) {
+        return FloatMath.sqrt((x * x) + (y * y));
+    }
+
+    private static class OutAnimatorListener extends AnimatorListenerAdapter {
+        private final View mView;
+        private boolean mCanceled = false;
+        private float mPausedX;
+        private float mPausedY;
+        private final float mTerminalX;
+        private final float mTerminalY;
+        private final float mEndX;
+        private final float mEndY;
+
+        public OutAnimatorListener(View view, float terminalX, float terminalY,
+                float endX, float endY) {
+            mView = view;
+            mTerminalX = terminalX;
+            mTerminalY = terminalY;
+            mEndX = endX;
+            mEndY = endY;
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animator) {
+            mView.setTranslationX(mTerminalX);
+            mView.setTranslationY(mTerminalY);
+            mCanceled = true;
+        }
+
+        @Override
+        public void onAnimationEnd(Animator animator) {
+            if (!mCanceled) {
+                mView.setTranslationX(mTerminalX);
+                mView.setTranslationY(mTerminalY);
+            }
+        }
+
+        @Override
+        public void onAnimationPause(Animator animator) {
+            mPausedX = mView.getTranslationX();
+            mPausedY = mView.getTranslationY();
+            mView.setTranslationY(mEndX);
+            mView.setTranslationY(mEndY);
+        }
+
+        @Override
+        public void onAnimationResume(Animator animator) {
+            mView.setTranslationX(mPausedX);
+            mView.setTranslationY(mPausedY);
+        }
+    }
+}
diff --git a/core/java/android/transition/Fade.java b/core/java/android/transition/Fade.java
index 8edb1ff..08e27d3 100644
--- a/core/java/android/transition/Fade.java
+++ b/core/java/android/transition/Fade.java
@@ -59,8 +59,6 @@
     private static boolean DBG = Transition.DBG && false;
 
     private static final String LOG_TAG = "Fade";
-    private static final String PROPNAME_SCREEN_X = "android:fade:screenX";
-    private static final String PROPNAME_SCREEN_Y = "android:fade:screenY";
 
     /**
      * Fading mode used in {@link #Fade(int)} to make the transition
@@ -98,245 +96,81 @@
     /**
      * Utility method to handle creating and running the Animator.
      */
-    private Animator createAnimation(View view, float startAlpha, float endAlpha,
-            AnimatorListenerAdapter listener) {
+    private Animator createAnimation(View view, float startAlpha, float endAlpha) {
         if (startAlpha == endAlpha) {
-            // run listener if we're noop'ing the animation, to get the end-state results now
-            if (listener != null) {
-                listener.onAnimationEnd(null);
-            }
             return null;
         }
-        final ObjectAnimator anim = ObjectAnimator.ofFloat(view, "transitionAlpha", startAlpha,
-                endAlpha);
+        view.setTransitionAlpha(startAlpha);
+        final ObjectAnimator anim = ObjectAnimator.ofFloat(view, "transitionAlpha", endAlpha);
         if (DBG) {
             Log.d(LOG_TAG, "Created animator " + anim);
         }
-        if (listener != null) {
-            anim.addListener(listener);
-            anim.addPauseListener(listener);
-        }
+        FadeAnimatorListener listener = new FadeAnimatorListener(view, endAlpha);
+        anim.addListener(listener);
+        anim.addPauseListener(listener);
         return anim;
     }
 
-    private void captureValues(TransitionValues transitionValues) {
-        int[] loc = new int[2];
-        transitionValues.view.getLocationOnScreen(loc);
-        transitionValues.values.put(PROPNAME_SCREEN_X, loc[0]);
-        transitionValues.values.put(PROPNAME_SCREEN_Y, loc[1]);
-    }
-
     @Override
-    public void captureStartValues(TransitionValues transitionValues) {
-        super.captureStartValues(transitionValues);
-        captureValues(transitionValues);
-    }
-
-    @Override
-    public Animator onAppear(ViewGroup sceneRoot,
-            TransitionValues startValues, int startVisibility,
-            TransitionValues endValues, int endVisibility) {
+    public Animator onAppear(ViewGroup sceneRoot, View view,
+            TransitionValues startValues,
+            TransitionValues endValues) {
         if ((mFadingMode & IN) != IN || endValues == null) {
             return null;
         }
-        final View endView = endValues.view;
         if (DBG) {
             View startView = (startValues != null) ? startValues.view : null;
             Log.d(LOG_TAG, "Fade.onAppear: startView, startVis, endView, endVis = " +
-                    startView + ", " + startVisibility + ", " + endView + ", " + endVisibility);
+                    startView + ", " + view);
         }
-        endView.setTransitionAlpha(0);
-        TransitionListener transitionListener = new TransitionListenerAdapter() {
-            boolean mCanceled = false;
-            float mPausedAlpha;
-
-            @Override
-            public void onTransitionCancel(Transition transition) {
-                endView.setTransitionAlpha(1);
-                mCanceled = true;
-            }
-
-            @Override
-            public void onTransitionEnd(Transition transition) {
-                if (!mCanceled) {
-                    endView.setTransitionAlpha(1);
-                }
-            }
-
-            @Override
-            public void onTransitionPause(Transition transition) {
-                mPausedAlpha = endView.getTransitionAlpha();
-                endView.setTransitionAlpha(1);
-            }
-
-            @Override
-            public void onTransitionResume(Transition transition) {
-                endView.setTransitionAlpha(mPausedAlpha);
-            }
-        };
-        addListener(transitionListener);
-        return createAnimation(endView, 0, 1, null);
+        return createAnimation(view, 0, 1);
     }
 
     @Override
-    public Animator onDisappear(ViewGroup sceneRoot,
-            TransitionValues startValues, int startVisibility,
-            TransitionValues endValues, int endVisibility) {
+    public Animator onDisappear(ViewGroup sceneRoot, final View view, TransitionValues startValues,
+            TransitionValues endValues) {
         if ((mFadingMode & OUT) != OUT) {
             return null;
         }
-        View view = null;
-        View startView = (startValues != null) ? startValues.view : null;
-        View endView = (endValues != null) ? endValues.view : null;
-        if (DBG) {
-            Log.d(LOG_TAG, "Fade.onDisappear: startView, startVis, endView, endVis = " +
-                        startView + ", " + startVisibility + ", " + endView + ", " + endVisibility);
-        }
-        View overlayView = null;
-        View viewToKeep = null;
-        if (endView == null || endView.getParent() == null) {
-            if (endView != null) {
-                // endView was removed from its parent - add it to the overlay
-                view = overlayView = endView;
-            } else if (startView != null) {
-                // endView does not exist. Use startView only under certain
-                // conditions, because placing a view in an overlay necessitates
-                // it being removed from its current parent
-                if (startView.getParent() == null) {
-                    // no parent - safe to use
-                    view = overlayView = startView;
-                } else if (startView.getParent() instanceof View &&
-                        startView.getParent().getParent() == null) {
-                    View startParent = (View) startView.getParent();
-                    int id = startParent.getId();
-                    if (id != View.NO_ID && sceneRoot.findViewById(id) != null && mCanRemoveViews) {
-                        // no parent, but its parent is unparented  but the parent
-                        // hierarchy has been replaced by a new hierarchy with the same id
-                        // and it is safe to un-parent startView
-                        view = overlayView = startView;
-                    }
-                }
-            }
-        } else {
-            // visibility change
-            if (endVisibility == View.INVISIBLE) {
-                view = endView;
-                viewToKeep = view;
-            } else {
-                // Becoming GONE
-                if (startView == endView) {
-                    view = endView;
-                    viewToKeep = view;
-                } else {
-                    view = startView;
-                    overlayView = view;
-                }
-            }
-        }
-        final int finalVisibility = endVisibility;
-        // TODO: add automatic facility to Visibility superclass for keeping views around
-        if (overlayView != null) {
-            // TODO: Need to do this for general case of adding to overlay
-            int screenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X);
-            int screenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y);
-            int[] loc = new int[2];
-            sceneRoot.getLocationOnScreen(loc);
-            overlayView.offsetLeftAndRight((screenX - loc[0]) - overlayView.getLeft());
-            overlayView.offsetTopAndBottom((screenY - loc[1]) - overlayView.getTop());
-            sceneRoot.getOverlay().add(overlayView);
-            // TODO: add automatic facility to Visibility superclass for keeping views around
-            final float startAlpha = 1;
-            float endAlpha = 0;
-            final View finalView = view;
-            final View finalOverlayView = overlayView;
-            final View finalViewToKeep = viewToKeep;
-            final ViewGroup finalSceneRoot = sceneRoot;
-            final AnimatorListenerAdapter endListener = new AnimatorListenerAdapter() {
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    finalView.setTransitionAlpha(startAlpha);
-                    // TODO: restore view offset from overlay repositioning
-                    if (finalViewToKeep != null) {
-                        finalViewToKeep.setVisibility(finalVisibility);
-                    }
-                    if (finalOverlayView != null) {
-                        finalSceneRoot.getOverlay().remove(finalOverlayView);
-                    }
-                }
 
-                @Override
-                public void onAnimationPause(Animator animation) {
-                    if (finalOverlayView != null) {
-                        finalSceneRoot.getOverlay().remove(finalOverlayView);
-                    }
-                }
-
-                @Override
-                public void onAnimationResume(Animator animation) {
-                    if (finalOverlayView != null) {
-                        finalSceneRoot.getOverlay().add(finalOverlayView);
-                    }
-                }
-            };
-            return createAnimation(view, startAlpha, endAlpha, endListener);
-        }
-        if (viewToKeep != null) {
-            // TODO: find a different way to do this, like just changing the view to be
-            // VISIBLE for the duration of the transition
-            viewToKeep.setVisibility((View.VISIBLE));
-            // TODO: add automatic facility to Visibility superclass for keeping views around
-            final float startAlpha = 1;
-            float endAlpha = 0;
-            final View finalView = view;
-            final View finalOverlayView = overlayView;
-            final View finalViewToKeep = viewToKeep;
-            final ViewGroup finalSceneRoot = sceneRoot;
-            final AnimatorListenerAdapter endListener = new AnimatorListenerAdapter() {
-                boolean mCanceled = false;
-                float mPausedAlpha = -1;
-
-                @Override
-                public void onAnimationPause(Animator animation) {
-                    if (finalViewToKeep != null && !mCanceled) {
-                        finalViewToKeep.setVisibility(finalVisibility);
-                    }
-                    mPausedAlpha = finalView.getTransitionAlpha();
-                    finalView.setTransitionAlpha(startAlpha);
-                }
-
-                @Override
-                public void onAnimationResume(Animator animation) {
-                    if (finalViewToKeep != null && !mCanceled) {
-                        finalViewToKeep.setVisibility(View.VISIBLE);
-                    }
-                    finalView.setTransitionAlpha(mPausedAlpha);
-                }
-
-                @Override
-                public void onAnimationCancel(Animator animation) {
-                    mCanceled = true;
-                    if (mPausedAlpha >= 0) {
-                        finalView.setTransitionAlpha(mPausedAlpha);
-                    }
-                }
-
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    if (!mCanceled) {
-                        finalView.setTransitionAlpha(startAlpha);
-                    }
-                    // TODO: restore view offset from overlay repositioning
-                    if (finalViewToKeep != null && !mCanceled) {
-                        finalViewToKeep.setVisibility(finalVisibility);
-                    }
-                    if (finalOverlayView != null) {
-                        finalSceneRoot.getOverlay().remove(finalOverlayView);
-                    }
-                }
-            };
-            return createAnimation(view, startAlpha, endAlpha, endListener);
-        }
-        return null;
+        return createAnimation(view, 1, 0);
     }
 
-}
\ No newline at end of file
+    private static class FadeAnimatorListener extends AnimatorListenerAdapter {
+        private final View mView;
+        private final float mEndAlpha;
+        private boolean mCanceled = false;
+        private float mPausedAlpha;
+
+        public FadeAnimatorListener(View view, float endAlpha) {
+            mView = view;
+            mEndAlpha = endAlpha;
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animator) {
+            mCanceled = true;
+            if (mPausedAlpha >= 0) {
+                mView.setTransitionAlpha(mPausedAlpha);
+            }
+        }
+
+        @Override
+        public void onAnimationEnd(Animator animator) {
+            if (!mCanceled) {
+                mView.setTransitionAlpha(mEndAlpha);
+            }
+        }
+
+        @Override
+        public void onAnimationPause(Animator animator) {
+            mPausedAlpha = mView.getTransitionAlpha();
+            mView.setTransitionAlpha(mEndAlpha);
+        }
+
+        @Override
+        public void onAnimationResume(Animator animator) {
+            mView.setTransitionAlpha(mPausedAlpha);
+        }
+    }
+}
diff --git a/core/java/android/transition/MatrixClippedDrawable.java b/core/java/android/transition/MatrixClippedDrawable.java
new file mode 100644
index 0000000..ebaad59
--- /dev/null
+++ b/core/java/android/transition/MatrixClippedDrawable.java
@@ -0,0 +1,300 @@
+/*
+ * 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 android.transition;
+
+import android.content.res.Resources;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Matrix;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.util.Property;
+
+/**
+ * Used in MoveImage to mock an ImageView as a Drawable to be scaled in the scene root Overlay.
+ * @hide
+ */
+class MatrixClippedDrawable extends Drawable implements Drawable.Callback {
+    private static final String TAG = "MatrixClippedDrawable";
+
+    private ClippedMatrixState mClippedMatrixState;
+
+    public static final Property<MatrixClippedDrawable, Rect> CLIP_PROPERTY
+            = new Property<MatrixClippedDrawable, Rect>(Rect.class, "clipRect") {
+
+        @Override
+        public Rect get(MatrixClippedDrawable object) {
+            return object.getClipRect();
+        }
+
+        @Override
+        public void set(MatrixClippedDrawable object, Rect value) {
+            object.setClipRect(value);
+        }
+    };
+
+    public static final Property<MatrixClippedDrawable, Matrix> MATRIX_PROPERTY
+            = new Property<MatrixClippedDrawable, Matrix>(Matrix.class, "matrix") {
+        @Override
+        public void set(MatrixClippedDrawable object, Matrix value) {
+            object.setMatrix(value);
+        }
+
+        @Override
+        public Matrix get(MatrixClippedDrawable object) {
+            return object.getMatrix();
+        }
+    };
+
+    public MatrixClippedDrawable(Drawable drawable) {
+        this(null, null);
+
+        mClippedMatrixState.mDrawable = drawable;
+
+        if (drawable != null) {
+            drawable.setCallback(this);
+        }
+    }
+
+    public void setMatrix(Matrix matrix) {
+        if (matrix == null) {
+            mClippedMatrixState.mMatrix = null;
+        } else {
+            if (mClippedMatrixState.mMatrix == null) {
+                mClippedMatrixState.mMatrix = new Matrix();
+            }
+            mClippedMatrixState.mMatrix.set(matrix);
+        }
+        invalidateSelf();
+    }
+
+    public Matrix getMatrix() {
+        return mClippedMatrixState.mMatrix;
+    }
+
+    public Rect getClipRect() {
+        return mClippedMatrixState.mClipRect;
+    }
+
+    public void setClipRect(Rect clipRect) {
+        if (clipRect == null) {
+            if (mClippedMatrixState.mClipRect != null) {
+                mClippedMatrixState.mClipRect = null;
+                invalidateSelf();
+            }
+        } else {
+            if (mClippedMatrixState.mClipRect == null) {
+                mClippedMatrixState.mClipRect = new Rect(clipRect);
+            } else {
+                mClippedMatrixState.mClipRect.set(clipRect);
+            }
+            invalidateSelf();
+        }
+    }
+
+    // overrides from Drawable.Callback
+
+    public void invalidateDrawable(Drawable who) {
+        final Drawable.Callback callback = getCallback();
+        if (callback != null) {
+            callback.invalidateDrawable(this);
+        }
+    }
+
+    public void scheduleDrawable(Drawable who, Runnable what, long when) {
+        final Drawable.Callback callback = getCallback();
+        if (callback != null) {
+            callback.scheduleDrawable(this, what, when);
+        }
+    }
+
+    public void unscheduleDrawable(Drawable who, Runnable what) {
+        final Drawable.Callback callback = getCallback();
+        if (callback != null) {
+            callback.unscheduleDrawable(this, what);
+        }
+    }
+
+    // overrides from Drawable
+
+    @Override
+    public int getChangingConfigurations() {
+        return super.getChangingConfigurations()
+                | mClippedMatrixState.mChangingConfigurations
+                | mClippedMatrixState.mDrawable.getChangingConfigurations();
+    }
+
+    @Override
+    public boolean getPadding(Rect padding) {
+        // XXX need to adjust padding!
+        return mClippedMatrixState.mDrawable.getPadding(padding);
+    }
+
+    @Override
+    public boolean setVisible(boolean visible, boolean restart) {
+        mClippedMatrixState.mDrawable.setVisible(visible, restart);
+        return super.setVisible(visible, restart);
+    }
+
+    @Override
+    public void setAlpha(int alpha) {
+        mClippedMatrixState.mDrawable.setAlpha(alpha);
+    }
+
+    @Override
+    public int getAlpha() {
+        return mClippedMatrixState.mDrawable.getAlpha();
+    }
+
+    @Override
+    public void setColorFilter(ColorFilter cf) {
+        mClippedMatrixState.mDrawable.setColorFilter(cf);
+    }
+
+    @Override
+    public int getOpacity() {
+        return mClippedMatrixState.mDrawable.getOpacity();
+    }
+
+    @Override
+    public boolean isStateful() {
+        return mClippedMatrixState.mDrawable.isStateful();
+    }
+
+    @Override
+    protected boolean onStateChange(int[] state) {
+        return mClippedMatrixState.mDrawable.setState(state);
+    }
+
+    @Override
+    protected boolean onLevelChange(int level) {
+        mClippedMatrixState.mDrawable.setLevel(level);
+        invalidateSelf();
+        return true;
+    }
+
+    @Override
+    protected void onBoundsChange(Rect bounds) {
+        super.setBounds(bounds);
+        if (mClippedMatrixState.mMatrix == null) {
+            mClippedMatrixState.mDrawable.setBounds(bounds);
+        } else {
+            int drawableWidth = mClippedMatrixState.mDrawable.getIntrinsicWidth();
+            int drawableHeight = mClippedMatrixState.mDrawable.getIntrinsicHeight();
+            mClippedMatrixState.mDrawable.setBounds(bounds.left, bounds.top,
+                    drawableWidth + bounds.left, drawableHeight + bounds.top);
+        }
+        invalidateSelf();
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        Rect bounds = getBounds();
+        int left = bounds.left;
+        int top = bounds.top;
+        int saveCount = canvas.getSaveCount();
+        canvas.save();
+        if (mClippedMatrixState.mClipRect != null) {
+            canvas.clipRect(mClippedMatrixState.mClipRect);
+        } else {
+            canvas.clipRect(bounds);
+        }
+
+        if (mClippedMatrixState != null && !mClippedMatrixState.mMatrix.isIdentity()) {
+            canvas.translate(left, top);
+            canvas.concat(mClippedMatrixState.mMatrix);
+            canvas.translate(-left, -top);
+        }
+        mClippedMatrixState.mDrawable.draw(canvas);
+        canvas.restoreToCount(saveCount);
+    }
+
+    @Override
+    public int getIntrinsicWidth() {
+        return mClippedMatrixState.mDrawable.getIntrinsicWidth();
+    }
+
+    @Override
+    public int getIntrinsicHeight() {
+        return mClippedMatrixState.mDrawable.getIntrinsicHeight();
+    }
+
+    @Override
+    public Drawable.ConstantState getConstantState() {
+        if (mClippedMatrixState.canConstantState()) {
+            mClippedMatrixState.mChangingConfigurations = getChangingConfigurations();
+            return mClippedMatrixState;
+        }
+        return null;
+    }
+
+    final static class ClippedMatrixState extends Drawable.ConstantState {
+        Drawable mDrawable;
+        Matrix mMatrix;
+        Rect mClipRect;
+
+        private boolean mCheckedConstantState;
+        private boolean mCanConstantState;
+        int mChangingConfigurations;
+
+        ClippedMatrixState(ClippedMatrixState orig, MatrixClippedDrawable owner, Resources res) {
+            if (orig != null) {
+                if (res != null) {
+                    mDrawable = orig.mDrawable.getConstantState().newDrawable(res);
+                } else {
+                    mDrawable = orig.mDrawable.getConstantState().newDrawable();
+                }
+                mDrawable.setCallback(owner);
+                mCheckedConstantState = mCanConstantState = true;
+                if (orig.mMatrix != null) {
+                    mMatrix = new Matrix(orig.mMatrix);
+                }
+                if (orig.mClipRect != null) {
+                    mClipRect = new Rect(orig.mClipRect);
+                }
+            }
+        }
+
+        @Override
+        public Drawable newDrawable() {
+            return new MatrixClippedDrawable(this, null);
+        }
+
+        @Override
+        public Drawable newDrawable(Resources res) {
+            return new MatrixClippedDrawable(this, res);
+        }
+
+        @Override
+        public int getChangingConfigurations() {
+            return mChangingConfigurations;
+        }
+
+        boolean canConstantState() {
+            if (!mCheckedConstantState) {
+                mCanConstantState = mDrawable.getConstantState() != null;
+                mCheckedConstantState = true;
+            }
+
+            return mCanConstantState;
+        }
+    }
+
+    private MatrixClippedDrawable(ClippedMatrixState state, Resources res) {
+        mClippedMatrixState = new ClippedMatrixState(state, this, res);
+    }
+
+}
diff --git a/core/java/android/transition/MoveImage.java b/core/java/android/transition/MoveImage.java
new file mode 100644
index 0000000..d68e971
--- /dev/null
+++ b/core/java/android/transition/MoveImage.java
@@ -0,0 +1,326 @@
+/*
+ * 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 android.transition;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.animation.RectEvaluator;
+import android.animation.TypeEvaluator;
+import android.animation.ValueAnimator;
+import android.graphics.Matrix;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.drawable.Drawable;
+import android.util.FloatMath;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewGroupOverlay;
+import android.view.ViewParent;
+import android.widget.ImageView;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+/**
+ * Transitions ImageViews, including size, scaleType, and matrix. The ImageView drawable
+ * must remain the same between both start and end states, but the
+ * {@link ImageView#setScaleType(android.widget.ImageView.ScaleType)} may
+ * differ.
+ */
+public class MoveImage extends Transition {
+    private static final String TAG = "MoveImage";
+    private static final String PROPNAME_MATRIX = "android:moveImage:matrix";
+    private static final String PROPNAME_BOUNDS = "android:moveImage:bounds";
+    private static final String PROPNAME_CLIP = "android:moveImage:clip";
+    private static final String PROPNAME_DRAWABLE = "android:moveImage:drawable";
+
+    private int[] mTempLoc = new int[2];
+
+    private static final String[] sTransitionProperties = {
+            PROPNAME_MATRIX,
+            PROPNAME_BOUNDS,
+            PROPNAME_CLIP,
+            PROPNAME_DRAWABLE,
+    };
+
+    private void captureValues(TransitionValues transitionValues) {
+        View view = transitionValues.view;
+        if (!(view instanceof ImageView) || view.getVisibility() != View.VISIBLE) {
+            return;
+        }
+        Map<String, Object> values = transitionValues.values;
+
+        ViewGroup parent = (ViewGroup) view.getParent();
+        parent.getLocationInWindow(mTempLoc);
+        int paddingLeft = view.getPaddingLeft();
+        int paddingTop = view.getPaddingTop();
+        int paddingRight = view.getPaddingRight();
+        int paddingBottom = view.getPaddingBottom();
+        int left = mTempLoc[0] + paddingLeft + view.getLeft() + Math.round(view.getTranslationX());
+        int top = mTempLoc[1] + paddingTop + view.getTop() + Math.round(view.getTranslationY());
+        int right = left + view.getWidth() - paddingRight - paddingLeft;
+        int bottom = top + view.getHeight() - paddingTop - paddingBottom;
+
+        Rect bounds = new Rect(left, top, right, bottom);
+        values.put(PROPNAME_BOUNDS, bounds);
+        ImageView imageView = (ImageView) view;
+        Matrix matrix = getMatrix(imageView);
+        values.put(PROPNAME_MATRIX, matrix);
+        values.put(PROPNAME_CLIP, findClip(imageView));
+        values.put(PROPNAME_DRAWABLE, imageView.getDrawable());
+    }
+
+    @Override
+    public void captureStartValues(TransitionValues transitionValues) {
+        captureValues(transitionValues);
+    }
+
+    @Override
+    public void captureEndValues(TransitionValues transitionValues) {
+        captureValues(transitionValues);
+    }
+
+    @Override
+    public String[] getTransitionProperties() {
+        return sTransitionProperties;
+    }
+
+    /**
+     * Creates an Animator for ImageViews moving, changing dimensions, and/or changing
+     * {@link android.widget.ImageView.ScaleType}.
+     * @param sceneRoot The root of the transition hierarchy.
+     * @param startValues The values for a specific target in the start scene.
+     * @param endValues The values for the target in the end scene.
+     * @return An Animator to move an ImageView or null if the View is not an ImageView,
+     * the Drawable changed, the View is not VISIBLE, or there was no change.
+     */
+    @Override
+    public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues,
+            TransitionValues endValues) {
+        if (startValues == null || endValues == null
+                || startValues.values.get(PROPNAME_BOUNDS) == null
+                || endValues.values.get(PROPNAME_BOUNDS) == null
+                || startValues.values.get(PROPNAME_DRAWABLE)
+                        != endValues.values.get(PROPNAME_DRAWABLE)) {
+            return null;
+        }
+        ArrayList<PropertyValuesHolder> changes = new ArrayList<PropertyValuesHolder>();
+
+        Matrix startMatrix = (Matrix) startValues.values.get(PROPNAME_MATRIX);
+        Matrix endMatrix = (Matrix) endValues.values.get(PROPNAME_MATRIX);
+
+        if (!startMatrix.equals(endMatrix)) {
+            changes.add(PropertyValuesHolder.ofObject(MatrixClippedDrawable.MATRIX_PROPERTY,
+                    new MatrixEvaluator(), startMatrix, endMatrix));
+        }
+
+        sceneRoot.getLocationInWindow(mTempLoc);
+        int rootX = mTempLoc[0];
+        int rootY = mTempLoc[1];
+        final ImageView imageView = (ImageView) endValues.view;
+
+        Drawable drawable = imageView.getDrawable();
+
+        Rect startBounds = new Rect((Rect) startValues.values.get(PROPNAME_BOUNDS));
+        Rect endBounds = new Rect((Rect) endValues.values.get(PROPNAME_BOUNDS));
+        startBounds.offset(-rootX, -rootY);
+        endBounds.offset(-rootX, -rootY);
+
+        if (!startBounds.equals(endBounds)) {
+            changes.add(PropertyValuesHolder.ofObject("bounds", new RectEvaluator(new Rect()),
+                    startBounds, endBounds));
+        }
+
+        Rect startClip = (Rect) startValues.values.get(PROPNAME_CLIP);
+        Rect endClip = (Rect) endValues.values.get(PROPNAME_CLIP);
+        if (startClip != null || endClip != null) {
+            startClip = nonNullClip(startClip, sceneRoot, rootX, rootY);
+            endClip = nonNullClip(endClip, sceneRoot, rootX, rootY);
+
+            expandClip(startBounds, startMatrix, startClip, endClip);
+            expandClip(endBounds, endMatrix, endClip, startClip);
+            boolean clipped = !startClip.contains(startBounds) || !endClip.contains(endBounds);
+            if (!clipped) {
+                startClip = null;
+            } else if (!startClip.equals(endClip)) {
+                changes.add(PropertyValuesHolder.ofObject(MatrixClippedDrawable.CLIP_PROPERTY,
+                        new RectEvaluator(), startClip, endClip));
+            }
+        }
+
+        if (changes.isEmpty()) {
+            return null;
+        }
+
+        drawable = drawable.getConstantState().newDrawable();
+        final MatrixClippedDrawable matrixClippedDrawable = new MatrixClippedDrawable(drawable);
+        matrixClippedDrawable.setMatrix(startMatrix);
+        matrixClippedDrawable.setBounds(startBounds);
+        matrixClippedDrawable.setClipRect(startClip);
+
+        imageView.setVisibility(View.INVISIBLE);
+        final ViewGroupOverlay overlay = sceneRoot.getOverlay();
+        overlay.add(matrixClippedDrawable);
+        ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(matrixClippedDrawable,
+                changes.toArray(new PropertyValuesHolder[changes.size()]));
+
+        AnimatorListenerAdapter listener = new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                imageView.setVisibility(View.VISIBLE);
+                overlay.remove(matrixClippedDrawable);
+            }
+
+            @Override
+            public void onAnimationPause(Animator animation) {
+                imageView.setVisibility(View.VISIBLE);
+                overlay.remove(matrixClippedDrawable);
+            }
+
+            @Override
+            public void onAnimationResume(Animator animation) {
+                imageView.setVisibility(View.INVISIBLE);
+                overlay.add(matrixClippedDrawable);
+            }
+        };
+
+        animator.addListener(listener);
+        animator.addPauseListener(listener);
+
+        return animator;
+    }
+
+    private static Rect nonNullClip(Rect clip, ViewGroup sceneRoot, int rootX, int rootY) {
+        if (clip != null) {
+            clip = new Rect(clip);
+            clip.offset(-rootX, -rootY);
+        } else {
+            clip = new Rect(0, 0, sceneRoot.getWidth(), sceneRoot.getHeight());
+        }
+        return clip;
+    }
+
+    private static void expandClip(Rect bounds, Matrix matrix, Rect clip, Rect otherClip) {
+        RectF boundsF = new RectF(bounds);
+        matrix.mapRect(boundsF);
+        clip.left = expandMinDimension(boundsF.left, clip.left, otherClip.left);
+        clip.top = expandMinDimension(boundsF.top, clip.top, otherClip.top);
+        clip.right = expandMaxDimension(boundsF.right, clip.right, otherClip.right);
+        clip.bottom = expandMaxDimension(boundsF.bottom, clip.bottom, otherClip.bottom);
+    }
+
+    private static int expandMinDimension(float boundsDimension, int clipDimension,
+            int otherClipDimension) {
+        if (clipDimension > boundsDimension) {
+            // Already clipped in that dimension, return the clipped value
+            return clipDimension;
+        }
+        return Math.min(clipDimension, otherClipDimension);
+    }
+
+    private static int expandMaxDimension(float boundsDimension, int clipDimension,
+            int otherClipDimension) {
+        return -expandMinDimension(-boundsDimension, -clipDimension, -otherClipDimension);
+    }
+
+    private static Matrix getMatrix(ImageView imageView) {
+        Drawable drawable = imageView.getDrawable();
+        int drawableWidth = drawable.getIntrinsicWidth();
+        int drawableHeight = drawable.getIntrinsicHeight();
+        ImageView.ScaleType scaleType = imageView.getScaleType();
+        if (drawableWidth <= 0 || drawableHeight <= 0 || scaleType == ImageView.ScaleType.FIT_XY) {
+            return null;
+        }
+        return new Matrix(imageView.getImageMatrix());
+    }
+
+    private Rect findClip(ImageView imageView) {
+        if (imageView.getCropToPadding()) {
+            Rect clip = getClip(imageView);
+            clip.left += imageView.getPaddingLeft();
+            clip.right -= imageView.getPaddingRight();
+            clip.top += imageView.getPaddingTop();
+            clip.bottom -= imageView.getPaddingBottom();
+            return clip;
+        } else {
+            View view = imageView;
+            ViewParent viewParent;
+            while ((viewParent = view.getParent()) instanceof ViewGroup) {
+                ViewGroup viewGroup = (ViewGroup) viewParent;
+                if (viewGroup.getClipChildren()) {
+                    Rect clip = getClip(view);
+                    return clip;
+                }
+                view = viewGroup;
+            }
+        }
+        return null;
+    }
+
+    private Rect getClip(View clipView) {
+        Rect clipBounds = clipView.getClipBounds();
+        if (clipBounds == null) {
+            clipBounds = new Rect(clipView.getLeft(), clipView.getTop(),
+                    clipView.getRight(), clipView.getBottom());
+        }
+
+        ViewParent parent = clipView.getParent();
+        if (parent instanceof ViewGroup) {
+            ViewGroup parentViewGroup = (ViewGroup) parent;
+            parentViewGroup.getLocationInWindow(mTempLoc);
+            clipBounds.offset(mTempLoc[0], mTempLoc[1]);
+        }
+
+        return clipBounds;
+    }
+
+    @Override
+    public Transition clone() {
+        MoveImage clone = (MoveImage) super.clone();
+        clone.mTempLoc = new int[2];
+        return clone;
+    }
+
+    private static class MatrixEvaluator implements TypeEvaluator<Matrix> {
+        static final Matrix sIdentity = new Matrix();
+        float[] mTempStartValues = new float[9];
+        float[] mTempEndValues = new float[9];
+        Matrix mTempMatrix = new Matrix();
+
+        @Override
+        public Matrix evaluate(float fraction, Matrix startValue, Matrix endValue) {
+            if (startValue == null && endValue == null) {
+                return null;
+            }
+            if (startValue == null) {
+                startValue = sIdentity;
+            } else if (endValue == null) {
+                endValue = sIdentity;
+            }
+            startValue.getValues(mTempStartValues);
+            endValue.getValues(mTempEndValues);
+            for (int i = 0; i < 9; i++) {
+                float diff = mTempEndValues[i] - mTempStartValues[i];
+                mTempEndValues[i] = mTempStartValues[i] + (fraction * diff);
+            }
+            mTempMatrix.setValues(mTempEndValues);
+            return mTempMatrix;
+        }
+    }
+}
diff --git a/core/java/android/transition/SidePropagation.java b/core/java/android/transition/SidePropagation.java
new file mode 100644
index 0000000..c331945
--- /dev/null
+++ b/core/java/android/transition/SidePropagation.java
@@ -0,0 +1,165 @@
+/*
+ * 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 android.transition;
+
+import android.graphics.Rect;
+import android.util.FloatMath;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * A <code>TransitionPropagation</code> that propagates based on the distance to the side
+ * and, orthogonally, the distance to epicenter. If the transitioning View is visible in
+ * the start of the transition, then it will transition sooner when closer to the side and
+ * later when farther. If the view is not visible in the start of the transition, then
+ * it will transition later when closer to the side and sooner when farther from the edge.
+ * This is the default TransitionPropagation used with {@link android.transition.Slide}.
+ */
+public class SidePropagation extends VisibilityPropagation {
+    private static final String TAG = "SlidePropagation";
+
+    /**
+     * Transition propagates relative to the distance of the left side of the scene.
+     */
+    public static final int LEFT = Slide.LEFT;
+
+    /**
+     * Transition propagates relative to the distance of the top of the scene.
+     */
+    public static final int TOP = Slide.TOP;
+
+    /**
+     * Transition propagates relative to the distance of the right side of the scene.
+     */
+    public static final int RIGHT = Slide.RIGHT;
+
+    /**
+     * Transition propagates relative to the distance of the bottom of the scene.
+     */
+    public static final int BOTTOM = Slide.BOTTOM;
+
+    private float mPropagationSpeed = 4.0f;
+    private int mSide = BOTTOM;
+
+    /**
+     * Sets the side that is used to calculate the transition propagation. If the transitioning
+     * View is visible in the start of the transition, then it will transition sooner when
+     * closer to the side and later when farther. If the view is not visible in the start of
+     * the transition, then it will transition later when closer to the side and sooner when
+     * farther from the edge. The default is {@link #BOTTOM}.
+     *
+     * @param side The side that is used to calculate the transition propagation. Must be one of
+     *             {@link #LEFT}, {@link #TOP}, {@link #RIGHT}, or {@link #BOTTOM}.
+     */
+    public void setSide(int side) {
+        mSide = side;
+    }
+
+    /**
+     * Sets the speed at which transition propagation happens, relative to the duration of the
+     * Transition. A <code>propagationSpeed</code> of 1 means that a View centered at the side
+     * set in {@link #setSide(int)} and View centered at the opposite edge will have a difference
+     * in start delay of approximately the duration of the Transition. A speed of 2 means the
+     * start delay difference will be approximately half of the duration of the transition. A
+     * value of 0 is illegal, but negative values will invert the propagation.
+     *
+     * @param propagationSpeed The speed at which propagation occurs, relative to the duration
+     *                         of the transition. A speed of 4 means it works 4 times as fast
+     *                         as the duration of the transition. May not be 0.
+     */
+    public void setPropagationSpeed(float propagationSpeed) {
+        if (propagationSpeed == 0) {
+            throw new IllegalArgumentException("propagationSpeed may not be 0");
+        }
+        mPropagationSpeed = propagationSpeed;
+    }
+
+    @Override
+    public long getStartDelay(ViewGroup sceneRoot, Transition transition,
+            TransitionValues startValues, TransitionValues endValues) {
+        if (startValues == null && endValues == null) {
+            return 0;
+        }
+        int directionMultiplier = 1;
+        Rect epicenter = transition.getEpicenter();
+        TransitionValues positionValues;
+        if (endValues == null || getViewVisibility(startValues) == View.VISIBLE) {
+            positionValues = startValues;
+            directionMultiplier = -1;
+        } else {
+            positionValues = endValues;
+        }
+
+        int viewCenterX = getViewX(positionValues);
+        int viewCenterY = getViewY(positionValues);
+
+        int[] loc = new int[2];
+        sceneRoot.getLocationOnScreen(loc);
+        int left = loc[0] + Math.round(sceneRoot.getTranslationX());
+        int top = loc[1] + Math.round(sceneRoot.getTranslationY());
+        int right = left + sceneRoot.getWidth();
+        int bottom = top + sceneRoot.getHeight();
+
+        int epicenterX;
+        int epicenterY;
+        if (epicenter != null) {
+            epicenterX = epicenter.centerX();
+            epicenterY = epicenter.centerY();
+        } else {
+            epicenterX = (left + right) / 2;
+            epicenterY = (top + bottom) / 2;
+        }
+
+        float distance = distance(viewCenterX, viewCenterY, epicenterX, epicenterY,
+                left, top, right, bottom);
+        float maxDistance = getMaxDistance(sceneRoot);
+        float distanceFraction = distance/maxDistance;
+
+        return Math.round(transition.getDuration() * directionMultiplier / mPropagationSpeed
+                * distanceFraction);
+    }
+
+    private int distance(int viewX, int viewY, int epicenterX, int epicenterY,
+            int left, int top, int right, int bottom) {
+        int distance = 0;
+        switch (mSide) {
+            case LEFT:
+                distance = right - viewX + Math.abs(epicenterY - viewY);
+                break;
+            case TOP:
+                distance = bottom - viewY + Math.abs(epicenterX - viewX);
+                break;
+            case RIGHT:
+                distance = viewX - left + Math.abs(epicenterY - viewY);
+                break;
+            case BOTTOM:
+                distance = viewY - top + Math.abs(epicenterX - viewX);
+                break;
+        }
+        return distance;
+    }
+
+    private int getMaxDistance(ViewGroup sceneRoot) {
+        switch (mSide) {
+            case LEFT:
+            case RIGHT:
+                return sceneRoot.getWidth();
+            default:
+                return sceneRoot.getHeight();
+        }
+    }
+}
diff --git a/core/java/android/transition/Slide.java b/core/java/android/transition/Slide.java
index b38973c..0ff8ddd 100644
--- a/core/java/android/transition/Slide.java
+++ b/core/java/android/transition/Slide.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * 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.
@@ -13,53 +13,240 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package android.transition;
 
 import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.animation.TimeInterpolator;
+import android.animation.ValueAnimator;
+import android.graphics.Rect;
+import android.util.Log;
+import android.util.Property;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.AccelerateInterpolator;
 import android.view.animation.DecelerateInterpolator;
 
 /**
- * This transition captures the visibility of target objects before and
- * after a scene change and animates any changes by sliding the target
- * objects into or out of place.
- *
- * @hide
+ * This transition tracks changes to the visibility of target views in the
+ * start and end scenes and moves views in or out from one of the edges of the
+ * scene. Visibility is determined by both the
+ * {@link View#setVisibility(int)} state of the view as well as whether it
+ * is parented in the current view hierarchy. Disappearing Views are
+ * limited as described in {@link Visibility#onDisappear(android.view.ViewGroup,
+ * TransitionValues, int, TransitionValues, int)}.
  */
 public class Slide extends Visibility {
+    private static final String TAG = "Slide";
 
-    // TODO: Add parameter for sliding factor - it's hard-coded below
+    /**
+     * Move Views in or out of the left edge of the scene.
+     * @see #setSlideEdge(int)
+     */
+    public static final int LEFT = 0;
 
-    private static final TimeInterpolator sAccelerator = new AccelerateInterpolator();
-    private static final TimeInterpolator sDecelerator = new DecelerateInterpolator();
+    /**
+     * Move Views in or out of the top edge of the scene.
+     * @see #setSlideEdge(int)
+     */
+    public static final int TOP = 1;
 
-    @Override
-    public Animator onAppear(ViewGroup sceneRoot,
-            TransitionValues startValues, int startVisibility,
-            TransitionValues endValues, int endVisibility) {
-        View endView = (endValues != null) ? endValues.view : null;
-        endView.setTranslationY(-2 * endView.getHeight());
-        ObjectAnimator anim = ObjectAnimator.ofFloat(endView, View.TRANSLATION_Y,
-                -2 * endView.getHeight(), 0);
-        anim.setInterpolator(sDecelerator);
+    /**
+     * Move Views in or out of the right edge of the scene.
+     * @see #setSlideEdge(int)
+     */
+    public static final int RIGHT = 2;
+
+    /**
+     * Move Views in or out of the bottom edge of the scene. This is the
+     * default slide direction.
+     * @see #setSlideEdge(int)
+     */
+    public static final int BOTTOM = 3;
+
+    private static final TimeInterpolator sDecelerate = new DecelerateInterpolator();
+    private static final TimeInterpolator sAccelerate = new AccelerateInterpolator();
+
+    private int[] mTempLoc = new int[2];
+    private CalculateSlide mSlideCalculator = sCalculateBottom;
+
+    private interface CalculateSlide {
+        /** Returns the translation value for view when it out of the scene */
+        float getGone(ViewGroup sceneRoot, View view);
+
+        /** Returns the translation value for view when it is in the scene */
+        float getHere(View view);
+
+        /** Returns the property to animate translation */
+        Property<View, Float> getProperty();
+    }
+
+    private static abstract class CalculateSlideHorizontal implements CalculateSlide {
+        @Override
+        public float getHere(View view) {
+            return view.getTranslationX();
+        }
+
+        @Override
+        public Property<View, Float> getProperty() {
+            return View.TRANSLATION_X;
+        }
+    }
+
+    private static abstract class CalculateSlideVertical implements CalculateSlide {
+        @Override
+        public float getHere(View view) {
+            return view.getTranslationY();
+        }
+
+        @Override
+        public Property<View, Float> getProperty() {
+            return View.TRANSLATION_Y;
+        }
+    }
+
+    private static final CalculateSlide sCalculateLeft = new CalculateSlideHorizontal() {
+        @Override
+        public float getGone(ViewGroup sceneRoot, View view) {
+            return view.getTranslationX() - sceneRoot.getWidth();
+        }
+    };
+
+    private static final CalculateSlide sCalculateTop = new CalculateSlideVertical() {
+        @Override
+        public float getGone(ViewGroup sceneRoot, View view) {
+            return view.getTranslationY() - sceneRoot.getHeight();
+        }
+    };
+
+    private static final CalculateSlide sCalculateRight = new CalculateSlideHorizontal() {
+        @Override
+        public float getGone(ViewGroup sceneRoot, View view) {
+            return view.getTranslationX() + sceneRoot.getWidth();
+        }
+    };
+
+    private static final CalculateSlide sCalculateBottom = new CalculateSlideVertical() {
+        @Override
+        public float getGone(ViewGroup sceneRoot, View view) {
+            return view.getTranslationY() + sceneRoot.getHeight();
+        }
+    };
+
+    /**
+     * Constructor using the default {@link android.transition.Slide#BOTTOM}
+     * slide edge direction.
+     */
+    public Slide() {
+        setSlideEdge(BOTTOM);
+    }
+
+    /**
+     * Constructor using the provided slide edge direction.
+     */
+    public Slide(int slideEdge) {
+        setSlideEdge(slideEdge);
+    }
+
+    /**
+     * Change the edge that Views appear and disappear from.
+     * @param slideEdge The edge of the scene to use for Views appearing and disappearing.
+     */
+    public void setSlideEdge(int slideEdge) {
+        switch (slideEdge) {
+            case LEFT:
+                mSlideCalculator = sCalculateLeft;
+                break;
+            case TOP:
+                mSlideCalculator = sCalculateTop;
+                break;
+            case RIGHT:
+                mSlideCalculator = sCalculateRight;
+                break;
+            case BOTTOM:
+                mSlideCalculator = sCalculateBottom;
+                break;
+            default:
+                throw new IllegalArgumentException("Invalid slide direction");
+        }
+        SidePropagation propagation = new SidePropagation();
+        propagation.setSide(slideEdge);
+        setPropagation(propagation);
+    }
+
+    private Animator createAnimation(final View view, Property<View, Float> property,
+            float start, float end, float terminalValue, TimeInterpolator interpolator) {
+        view.setTranslationY(start);
+        if (start == end) {
+            return null;
+        }
+        final ObjectAnimator anim = ObjectAnimator.ofFloat(view, property, start, end);
+
+        SlideAnimatorListener listener = new SlideAnimatorListener(view, terminalValue, end);
+        anim.addListener(listener);
+        anim.addPauseListener(listener);
+        anim.setInterpolator(interpolator);
         return anim;
     }
 
     @Override
-    public Animator onDisappear(ViewGroup sceneRoot,
-            TransitionValues startValues, int startVisibility,
-            TransitionValues endValues, int endVisibility) {
-        View startView = (startValues != null) ? startValues.view : null;
-        startView.setTranslationY(0);
-        ObjectAnimator anim = ObjectAnimator.ofFloat(startView, View.TRANSLATION_Y, 0,
-                -2 * startView.getHeight());
-        anim.setInterpolator(sAccelerator);
-        return anim;
+    public Animator onAppear(ViewGroup sceneRoot, View view,
+            TransitionValues startValues, TransitionValues endValues) {
+        if (endValues == null) {
+            return null;
+        }
+        float end = mSlideCalculator.getHere(view);
+        float start = mSlideCalculator.getGone(sceneRoot, view);
+        return createAnimation(view, mSlideCalculator.getProperty(), start, end, end, sDecelerate);
     }
 
+    @Override
+    public Animator onDisappear(ViewGroup sceneRoot, View view,
+            TransitionValues startValues, TransitionValues endValues) {
+        float start = mSlideCalculator.getHere(view);
+        float end = mSlideCalculator.getGone(sceneRoot, view);
+
+        return createAnimation(view, mSlideCalculator.getProperty(), start, end, start,
+                sAccelerate);
+    }
+
+    private static class SlideAnimatorListener extends AnimatorListenerAdapter {
+        private boolean mCanceled = false;
+        private float mPausedY;
+        private final View mView;
+        private final float mEndY;
+        private final float mTerminalY;
+
+        public SlideAnimatorListener(View view, float terminalY, float endY) {
+            mView = view;
+            mTerminalY = terminalY;
+            mEndY = endY;
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animator) {
+            mView.setTranslationY(mTerminalY);
+            mCanceled = true;
+        }
+
+        @Override
+        public void onAnimationEnd(Animator animator) {
+            if (!mCanceled) {
+                mView.setTranslationY(mTerminalY);
+            }
+        }
+
+        @Override
+        public void onAnimationPause(Animator animator) {
+            mPausedY = mView.getTranslationY();
+            mView.setTranslationY(mEndY);
+        }
+
+        @Override
+        public void onAnimationResume(Animator animator) {
+            mView.setTranslationY(mPausedY);
+        }
+    }
 }
diff --git a/core/java/android/transition/Transition.java b/core/java/android/transition/Transition.java
index c88b4c0..b7ae31e 100644
--- a/core/java/android/transition/Transition.java
+++ b/core/java/android/transition/Transition.java
@@ -19,10 +19,12 @@
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.TimeInterpolator;
+import android.graphics.Rect;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.LongSparseArray;
 import android.util.SparseArray;
+import android.util.SparseLongArray;
 import android.view.SurfaceView;
 import android.view.TextureView;
 import android.view.View;
@@ -60,10 +62,18 @@
  * <p>Transitions can be declared in XML resource files inside the <code>res/transition</code>
  * directory. Transition resources consist of a tag name for one of the Transition
  * subclasses along with attributes to define some of the attributes of that transition.
- * For example, here is a minimal resource file that declares a {@link ChangeBounds} transition:</p>
+ * For example, here is a minimal resource file that declares a {@link ChangeBounds} transition:
  *
  * {@sample development/samples/ApiDemos/res/transition/changebounds.xml ChangeBounds}
  *
+ * <p>{@link android.transition.Explode} transition:</p>
+ *
+ * {@sample development/samples/ApiDemos/res/transition/explode.xml Explode}
+ *
+ * <p>{@link android.transition.MoveImage} transition:</p>
+ *
+ * {@sample development/samples/ApiDemos/res/transition/move_image.xml MoveImage}
+ *
  * <p>Note that attributes for the transition are not required, just as they are
  * optional when declared in code; Transitions created from XML resources will use
  * the same defaults as their code-created equivalents. Here is a slightly more
@@ -87,7 +97,8 @@
  *
  * Further information on XML resource descriptions for transitions can be found for
  * {@link android.R.styleable#Transition}, {@link android.R.styleable#TransitionSet},
- * {@link android.R.styleable#TransitionTarget}, and {@link android.R.styleable#Fade}.
+ * {@link android.R.styleable#TransitionTarget}, {@link android.R.styleable#Fade}, and
+ * {@link android.R.styleable#Slide}.
  *
  */
 public abstract class Transition implements Cloneable {
@@ -149,6 +160,13 @@
     // to be run in runAnimators()
     ArrayList<Animator> mAnimators = new ArrayList<Animator>();
 
+    // The function for calculating the Animation start delay.
+    TransitionPropagation mPropagation;
+
+    // The rectangular region for Transitions like Explode and TransitionPropagations
+    // like CircularPropagation
+    EpicenterCallback mEpicenterCallback;
+
     /**
      * Constructs a Transition object with no target objects. A transition with
      * no targets defaults to running on all target objects in the scene hierarchy
@@ -435,6 +453,9 @@
             endValuesList.add(end);
         }
         ArrayMap<Animator, AnimationInfo> runningAnimators = getRunningAnimators();
+        long minStartDelay = Long.MAX_VALUE;
+        int minAnimator = mAnimators.size();
+        SparseLongArray startDelays = new SparseLongArray();
         for (int i = 0; i < startValuesList.size(); ++i) {
             TransitionValues start = startValuesList.get(i);
             TransitionValues end = endValuesList.get(i);
@@ -497,6 +518,12 @@
                             view = (start != null) ? start.view : null;
                         }
                         if (animator != null) {
+                            if (mPropagation != null) {
+                                long delay = mPropagation
+                                        .getStartDelay(sceneRoot, this, start, end);
+                                startDelays.put(mAnimators.size(), delay);
+                                minStartDelay = Math.min(delay, minStartDelay);
+                            }
                             AnimationInfo info = new AnimationInfo(view, getName(),
                                     sceneRoot.getWindowId(), infoValues);
                             runningAnimators.put(animator, info);
@@ -506,6 +533,14 @@
                 }
             }
         }
+        if (minStartDelay != 0) {
+            for (int i = 0; i < startDelays.size(); i++) {
+                int index = startDelays.keyAt(i);
+                Animator animator = mAnimators.get(index);
+                long delay = startDelays.valueAt(i) - minStartDelay + animator.getStartDelay();
+                animator.setStartDelay(delay);
+            }
+        }
     }
 
     /**
@@ -565,7 +600,7 @@
 
     /**
      * This is called internally once all animations have been set up by the
-     * transition hierarchy. \
+     * transition hierarchy.
      *
      * @hide
      */
@@ -1010,6 +1045,7 @@
                         } else {
                             captureEndValues(values);
                         }
+                        capturePropagationValues(values);
                         if (start) {
                             mStartValues.viewValues.put(view, values);
                             if (id >= 0) {
@@ -1035,6 +1071,7 @@
                         } else {
                             captureEndValues(values);
                         }
+                        capturePropagationValues(values);
                         if (start) {
                             mStartValues.viewValues.put(view, values);
                         } else {
@@ -1122,6 +1159,7 @@
             } else {
                 captureEndValues(values);
             }
+            capturePropagationValues(values);
             if (start) {
                 if (!isListViewItem) {
                     mStartValues.viewValues.put(view, values);
@@ -1340,7 +1378,7 @@
                 animator.setDuration(getDuration());
             }
             if (getStartDelay() >= 0) {
-                animator.setStartDelay(getStartDelay());
+                animator.setStartDelay(getStartDelay() + animator.getStartDelay());
             }
             if (getInterpolator() != null) {
                 animator.setInterpolator(getInterpolator());
@@ -1473,6 +1511,98 @@
         return this;
     }
 
+    /**
+     * Sets the callback to use to find the epicenter of a Transition. A null value indicates
+     * that there is no epicenter in the Transition and getEpicenter() will return null.
+     * Transitions like {@link android.transition.Explode} use a point or Rect to orient
+     * the direction of travel. This is called the epicenter of the Transition and is
+     * typically centered on a touched View. The
+     * {@link android.transition.Transition.EpicenterCallback} allows a Transition to
+     * dynamically retrieve the epicenter during a Transition.
+     * @param epicenterCallback The callback to use to find the epicenter of the Transition.
+     */
+    public void setEpicenterCallback(EpicenterCallback epicenterCallback) {
+        mEpicenterCallback = epicenterCallback;
+    }
+
+    /**
+     * Returns the callback used to find the epicenter of the Transition.
+     * Transitions like {@link android.transition.Explode} use a point or Rect to orient
+     * the direction of travel. This is called the epicenter of the Transition and is
+     * typically centered on a touched View. The
+     * {@link android.transition.Transition.EpicenterCallback} allows a Transition to
+     * dynamically retrieve the epicenter during a Transition.
+     * @return the callback used to find the epicenter of the Transition.
+     */
+    public EpicenterCallback getEpicenterCallback() {
+        return mEpicenterCallback;
+    }
+
+    /**
+     * Returns the epicenter as specified by the
+     * {@link android.transition.Transition.EpicenterCallback} or null if no callback exists.
+     * @return the epicenter as specified by the
+     * {@link android.transition.Transition.EpicenterCallback} or null if no callback exists.
+     * @see #setEpicenterCallback(android.transition.Transition.EpicenterCallback)
+     */
+    public Rect getEpicenter() {
+        if (mEpicenterCallback == null) {
+            return null;
+        }
+        return mEpicenterCallback.getEpicenter(this);
+    }
+
+    /**
+     * Sets the method for determining Animator start delays.
+     * When a Transition affects several Views like {@link android.transition.Explode} or
+     * {@link android.transition.Slide}, there may be a desire to have a "wave-front" effect
+     * such that the Animator start delay depends on position of the View. The
+     * TransitionPropagation specifies how the start delays are calculated.
+     * @param transitionPropagation The class used to determine the start delay of
+     *                              Animators created by this Transition. A null value
+     *                              indicates that no delay should be used.
+     */
+    public void setPropagation(TransitionPropagation transitionPropagation) {
+        mPropagation = transitionPropagation;
+    }
+
+    /**
+     * Returns the {@link android.transition.TransitionPropagation} used to calculate Animator start
+     * delays.
+     * When a Transition affects several Views like {@link android.transition.Explode} or
+     * {@link android.transition.Slide}, there may be a desire to have a "wave-front" effect
+     * such that the Animator start delay depends on position of the View. The
+     * TransitionPropagation specifies how the start delays are calculated.
+     * @return the {@link android.transition.TransitionPropagation} used to calculate Animator start
+     * delays. This is null by default.
+     */
+    public TransitionPropagation getPropagation() {
+        return mPropagation;
+    }
+
+    /**
+     * Captures TransitionPropagation values for the given view and the
+     * hierarchy underneath it.
+     */
+    void capturePropagationValues(TransitionValues transitionValues) {
+        if (mPropagation != null) {
+            String[] propertyNames = mPropagation.getPropagationProperties();
+            if (propertyNames == null) {
+                return;
+            }
+            boolean containsAll = true;
+            for (int i = 0; i < propertyNames.length; i++) {
+                if (!transitionValues.values.containsKey(propertyNames[i])) {
+                    containsAll = false;
+                    break;
+                }
+            }
+            if (!containsAll) {
+                mPropagation.captureValues(transitionValues);
+            }
+        }
+    }
+
     Transition setSceneRoot(ViewGroup sceneRoot) {
         mSceneRoot = sceneRoot;
         return this;
@@ -1710,4 +1840,28 @@
         }
     }
 
+    /**
+     * Class to get the epicenter of Transition. Use
+     * {@link #setEpicenterCallback(android.transition.Transition.EpicenterCallback)} to
+     * set the callback used to calculate the epicenter of the Transition. Override
+     * {@link #getEpicenter()} to return the rectangular region in screen coordinates of
+     * the epicenter of the transition.
+     * @see #setEpicenterCallback(android.transition.Transition.EpicenterCallback)
+     */
+    public static abstract class EpicenterCallback {
+
+        /**
+         * Implementers must override to return the epicenter of the Transition in screen
+         * coordinates. Transitions like {@link android.transition.Explode} depend upon
+         * an epicenter for the Transition. In Explode, Views move toward or away from the
+         * center of the epicenter Rect along the vector between the epicenter and the center
+         * of the View appearing and disappearing. Some Transitions, such as
+         * {@link android.transition.Fade} pay no attention to the epicenter.
+         *
+         * @param transition The transition for which the epicenter applies.
+         * @return The Rect region of the epicenter of <code>transition</code> or null if
+         * there is no epicenter.
+         */
+        public abstract Rect getEpicenter(Transition transition);
+    }
 }
diff --git a/core/java/android/transition/TransitionInflater.java b/core/java/android/transition/TransitionInflater.java
index 912f2ed..f675c6a 100644
--- a/core/java/android/transition/TransitionInflater.java
+++ b/core/java/android/transition/TransitionInflater.java
@@ -20,7 +20,6 @@
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.content.res.XmlResourceParser;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Xml;
 import android.view.InflateException;
@@ -146,7 +145,13 @@
                 transition = new ChangeBounds();
                 newTransition = true;
             } else if ("slide".equals(name)) {
-                transition = new Slide();
+                transition = createSlideTransition(attrs);
+                newTransition = true;
+            } else if ("explode".equals(name)) {
+                transition = new Explode();
+                newTransition = true;
+            } else if ("moveImage".equals(name)) {
+                transition = new MoveImage();
                 newTransition = true;
             } else if ("autoTransition".equals(name)) {
                 transition = new AutoTransition();
@@ -189,6 +194,15 @@
         return transition;
     }
 
+    private Slide createSlideTransition(AttributeSet attrs) {
+        TypedArray a = mContext.obtainStyledAttributes(attrs,
+                com.android.internal.R.styleable.Slide);
+        int edge = a.getInt(com.android.internal.R.styleable.Slide_slideEdge, Slide.BOTTOM);
+        Slide slide = new Slide(edge);
+        a.recycle();
+        return slide;
+    }
+
     private void getTargetIds(XmlPullParser parser,
             AttributeSet attrs, Transition transition) throws XmlPullParserException, IOException {
 
diff --git a/core/java/android/transition/TransitionPropagation.java b/core/java/android/transition/TransitionPropagation.java
new file mode 100644
index 0000000..9a481c2
--- /dev/null
+++ b/core/java/android/transition/TransitionPropagation.java
@@ -0,0 +1,88 @@
+/*
+ * 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 android.transition;
+
+import android.graphics.Rect;
+import android.view.ViewGroup;
+
+/**
+ * Extend <code>TransitionPropagation</code> to customize start delays for Animators created
+ * in {@link android.transition.Transition#createAnimator(ViewGroup,
+ * TransitionValues, TransitionValues)}. A Transition such as {@link android.transition.Explode}
+ * defaults to using {@link android.transition.CircularPropagation} and Views closer to the
+ * epicenter will move out of the scene later and into the scene sooner than Views farther
+ * from the epicenter, giving the appearance of inertia. With no TransitionPropagation, all
+ * Views will react simultaneously to the start of the transition.
+ *
+ * @see Transition#setPropagation(TransitionPropagation)
+ * @see Transition#getEpicenter()
+ */
+public abstract class TransitionPropagation {
+    /**
+     * Called by Transition to alter the Animator start delay. All start delays will be adjusted
+     * such that the minimum becomes zero.
+     * @param sceneRoot The root of the View hierarchy running the transition.
+     * @param transition The transition that created the Animator
+     * @param startValues The values for a specific target in the start scene.
+     * @param endValues The values for the target in the end scene.
+     * @return A start delay to use with the Animator created by <code>transition</code>. The
+     * delay will be offset by the minimum delay of all <code>TransitionPropagation</code>s
+     * used in the Transition so that the smallest delay will be 0. Returned values may be
+     * negative.
+     */
+    public abstract long getStartDelay(ViewGroup sceneRoot, Transition transition,
+            TransitionValues startValues, TransitionValues endValues);
+
+    /**
+     * Captures the values in the start or end scene for the properties that this
+     * transition propagation monitors. These values are then passed as the startValues
+     * or endValues structure in a later call to
+     * {@link #getStartDelay(ViewGroup, Transition, TransitionValues, TransitionValues)}.
+     * The main concern for an implementation is what the
+     * properties are that the transition cares about and what the values are
+     * for all of those properties. The start and end values will be compared
+     * later during the
+     * {@link #getStartDelay(ViewGroup, Transition, TransitionValues, TransitionValues)}.
+     * method to determine the start delay.
+     *
+     * <p>Subclasses must implement this method. The method should only be called by the
+     * transition system; it is not intended to be called from external classes.</p>
+     *
+     * @param transitionValues The holder for any values that the Transition
+     * wishes to store. Values are stored in the <code>values</code> field
+     * of this TransitionValues object and are keyed from
+     * a String value. For example, to store a view's rotation value,
+     * a transition might call
+     * <code>transitionValues.values.put("appname:transitionname:rotation",
+     * view.getRotation())</code>. The target view will already be stored in
+     * the transitionValues structure when this method is called.
+     */
+    public abstract void captureValues(TransitionValues transitionValues);
+
+    /**
+     * Returns the set of property names stored in the {@link TransitionValues}
+     * object passed into {@link #captureValues(TransitionValues)} that
+     * this transition propagation cares about for the purposes of preventing
+     * duplicate capturing of property values.
+
+     * <p>A <code>TransitionPropagation</code> must override this method to prevent
+     * duplicate capturing of values and must contain at least one </p>
+     *
+     * @return An array of property names as described in the class documentation for
+     * {@link TransitionValues}.
+     */
+    public abstract String[] getPropagationProperties() ;
+}
diff --git a/core/java/android/transition/TransitionSet.java b/core/java/android/transition/TransitionSet.java
index 19d6b3d..966b24d 100644
--- a/core/java/android/transition/TransitionSet.java
+++ b/core/java/android/transition/TransitionSet.java
@@ -17,6 +17,7 @@
 package android.transition;
 
 import android.animation.TimeInterpolator;
+import android.graphics.Rect;
 import android.util.AndroidRuntimeException;
 import android.view.View;
 import android.view.ViewGroup;
@@ -315,6 +316,15 @@
         }
     }
 
+    @Override
+    void capturePropagationValues(TransitionValues transitionValues) {
+        super.capturePropagationValues(transitionValues);
+        int numTransitions = mTransitions.size();
+        for (int i = 0; i < numTransitions; ++i) {
+            mTransitions.get(i).capturePropagationValues(transitionValues);
+        }
+    }
+
     /** @hide */
     @Override
     public void pause(View sceneRoot) {
@@ -365,6 +375,24 @@
     }
 
     @Override
+    public void setPropagation(TransitionPropagation propagation) {
+        super.setPropagation(propagation);
+        int numTransitions = mTransitions.size();
+        for (int i = 0; i < numTransitions; ++i) {
+            mTransitions.get(i).setPropagation(propagation);
+        }
+    }
+
+    @Override
+    public void setEpicenterCallback(EpicenterCallback epicenterCallback) {
+        super.setEpicenterCallback(epicenterCallback);
+        int numTransitions = mTransitions.size();
+        for (int i = 0; i < numTransitions; ++i) {
+            mTransitions.get(i).setEpicenterCallback(epicenterCallback);
+        }
+    }
+
+    @Override
     String toString(String indent) {
         String result = super.toString(indent);
         for (int i = 0; i < mTransitions.size(); ++i) {
@@ -383,5 +411,4 @@
         }
         return clone;
     }
-
 }
diff --git a/core/java/android/transition/Visibility.java b/core/java/android/transition/Visibility.java
index 44f92cd..7783b6f 100644
--- a/core/java/android/transition/Visibility.java
+++ b/core/java/android/transition/Visibility.java
@@ -17,6 +17,7 @@
 package android.transition;
 
 import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
 import android.view.View;
 import android.view.ViewGroup;
 
@@ -29,15 +30,20 @@
  * information to determine the specific animations to run when visibility
  * changes occur. Subclasses should implement one or both of the methods
  * {@link #onAppear(ViewGroup, TransitionValues, int, TransitionValues, int)},
- * {@link #onDisappear(ViewGroup, TransitionValues, int, TransitionValues, int)},
+ * {@link #onDisappear(ViewGroup, TransitionValues, int, TransitionValues, int)} or
+ * {@link #onAppear(ViewGroup, View, TransitionValues, TransitionValues)},
+ * {@link #onDisappear(ViewGroup, View, TransitionValues, TransitionValues)}.
  */
 public abstract class Visibility extends Transition {
 
     private static final String PROPNAME_VISIBILITY = "android:visibility:visibility";
     private static final String PROPNAME_PARENT = "android:visibility:parent";
+    private static final String PROPNAME_SCREEN_LOCATION = "android:visibility:screenLocation";
+
     private static final String[] sTransitionProperties = {
             PROPNAME_VISIBILITY,
             PROPNAME_PARENT,
+            PROPNAME_SCREEN_LOCATION,
     };
 
     private static class VisibilityInfo {
@@ -58,6 +64,9 @@
         int visibility = transitionValues.view.getVisibility();
         transitionValues.values.put(PROPNAME_VISIBILITY, visibility);
         transitionValues.values.put(PROPNAME_PARENT, transitionValues.view.getParent());
+        int[] loc = new int[2];
+        transitionValues.view.getLocationOnScreen(loc);
+        transitionValues.values.put(PROPNAME_SCREEN_LOCATION, loc);
     }
 
     @Override
@@ -179,8 +188,11 @@
     }
 
     /**
-     * The default implementation of this method does nothing. Subclasses
-     * should override if they need to create an Animator when targets appear.
+     * The default implementation of this method calls
+     * {@link #onAppear(ViewGroup, View, TransitionValues, TransitionValues)}.
+     * Subclasses should override this method or
+     * {@link #onAppear(ViewGroup, View, TransitionValues, TransitionValues)}.
+     * if they need to create an Animator when targets appear.
      * The method should only be called by the Visibility class; it is
      * not intended to be called from external classes.
      *
@@ -196,15 +208,53 @@
     public Animator onAppear(ViewGroup sceneRoot,
             TransitionValues startValues, int startVisibility,
             TransitionValues endValues, int endVisibility) {
+        return onAppear(sceneRoot, endValues.view, startValues, endValues);
+    }
+
+    /**
+     * The default implementation of this method returns a null Animator. Subclasses should
+     * override this method to make targets appear with the desired transition. The
+     * method should only be called from
+     * {@link #onAppear(ViewGroup, TransitionValues, int, TransitionValues, int)}.
+     *
+     * @param sceneRoot The root of the transition hierarchy
+     * @param view The View to make appear. This will be in the target scene's View hierarchy and
+     *             will be VISIBLE.
+     * @param startValues The target values in the start scene
+     * @param endValues The target values in the end scene
+     * @return An Animator to be started at the appropriate time in the
+     * overall transition for this scene change. A null value means no animation
+     * should be run.
+     */
+    public Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues,
+            TransitionValues endValues) {
         return null;
     }
 
     /**
-     * The default implementation of this method does nothing. Subclasses
-     * should override if they need to create an Animator when targets disappear.
+     * Subclasses should override this method or
+     * {@link #onDisappear(ViewGroup, View, TransitionValues, TransitionValues)}
+     * if they need to create an Animator when targets disappear.
      * The method should only be called by the Visibility class; it is
      * not intended to be called from external classes.
-     *
+     * <p>
+     * The default implementation of this method attempts to find a View to use to call
+     * {@link #onDisappear(ViewGroup, View, TransitionValues, TransitionValues)},
+     * based on the situation of the View in the View hierarchy. For example,
+     * if a View was simply removed from its parent, then the View will be added
+     * into a {@link android.view.ViewGroupOverlay} and passed as the <code>view</code>
+     * parameter in {@link #onDisappear(ViewGroup, View, TransitionValues, TransitionValues)}.
+     * If a visible View is changed to be {@link View#GONE} or {@link View#INVISIBLE},
+     * then it can be used as the <code>view</code> and the visibility will be changed
+     * to {@link View#VISIBLE} for the duration of the animation. However, if a View
+     * is in a hierarchy which is also altering its visibility, the situation can be
+     * more complicated. In general, if a view that is no longer in the hierarchy in
+     * the end scene still has a parent (so its parent hierarchy was removed, but it
+     * was not removed from its parent), then it will be left alone to avoid side-effects from
+     * improperly removing it from its parent. The only exception to this is if
+     * the previous {@link Scene} was {@link Scene#getSceneForLayout(ViewGroup, int,
+     * android.content.Context) created from a layout resource file}, then it is considered
+     * safe to un-parent the starting scene view in order to make it disappear.</p>
      *
      * @param sceneRoot The root of the transition hierarchy
      * @param startValues The target values in the start scene
@@ -218,6 +268,144 @@
     public Animator onDisappear(ViewGroup sceneRoot,
             TransitionValues startValues, int startVisibility,
             TransitionValues endValues, int endVisibility) {
+        View startView = (startValues != null) ? startValues.view : null;
+        View endView = (endValues != null) ? endValues.view : null;
+        View overlayView = null;
+        View viewToKeep = null;
+        if (endView == null || endView.getParent() == null) {
+            if (endView != null) {
+                // endView was removed from its parent - add it to the overlay
+                overlayView = endView;
+            } else if (startView != null) {
+                // endView does not exist. Use startView only under certain
+                // conditions, because placing a view in an overlay necessitates
+                // it being removed from its current parent
+                if (startView.getParent() == null) {
+                    // no parent - safe to use
+                    overlayView = startView;
+                } else if (startView.getParent() instanceof View &&
+                        startView.getParent().getParent() == null) {
+                    View startParent = (View) startView.getParent();
+                    int id = startParent.getId();
+                    if (id != View.NO_ID && sceneRoot.findViewById(id) != null && mCanRemoveViews) {
+                        // no parent, but its parent is unparented  but the parent
+                        // hierarchy has been replaced by a new hierarchy with the same id
+                        // and it is safe to un-parent startView
+                        overlayView = startView;
+                    }
+                }
+            }
+        } else {
+            // visibility change
+            if (endVisibility == View.INVISIBLE) {
+                viewToKeep = endView;
+            } else {
+                // Becoming GONE
+                if (startView == endView) {
+                    viewToKeep = endView;
+                } else {
+                    overlayView = startView;
+                }
+            }
+        }
+        final int finalVisibility = endVisibility;
+        final ViewGroup finalSceneRoot = sceneRoot;
+
+        if (overlayView != null) {
+            // TODO: Need to do this for general case of adding to overlay
+            int[] screenLoc = (int[]) startValues.values.get(PROPNAME_SCREEN_LOCATION);
+            int screenX = screenLoc[0];
+            int screenY = screenLoc[1];
+            int[] loc = new int[2];
+            sceneRoot.getLocationOnScreen(loc);
+            overlayView.offsetLeftAndRight((screenX - loc[0]) - overlayView.getLeft());
+            overlayView.offsetTopAndBottom((screenY - loc[1]) - overlayView.getTop());
+            sceneRoot.getOverlay().add(overlayView);
+            Animator animator = onDisappear(sceneRoot, overlayView, startValues, endValues);
+            if (animator == null) {
+                sceneRoot.getOverlay().remove(overlayView);
+            } else {
+                final View finalOverlayView = overlayView;
+                animator.addListener(new AnimatorListenerAdapter() {
+                    @Override
+                    public void onAnimationEnd(Animator animation) {
+                        finalSceneRoot.getOverlay().remove(finalOverlayView);
+                    }
+
+                    @Override
+                    public void onAnimationPause(Animator animation) {
+                        finalSceneRoot.getOverlay().remove(finalOverlayView);
+                    }
+
+                    @Override
+                    public void onAnimationResume(Animator animation) {
+                        finalSceneRoot.getOverlay().add(finalOverlayView);
+                    }
+                });
+            }
+            return animator;
+        }
+
+        if (viewToKeep != null) {
+            viewToKeep.setVisibility(View.VISIBLE);
+            Animator animator = onDisappear(sceneRoot, viewToKeep, startValues, endValues);
+            if (animator == null) {
+                viewToKeep.setVisibility(finalVisibility);
+            } else {
+                final View finalViewToKeep = viewToKeep;
+                animator.addListener(new AnimatorListenerAdapter() {
+                    boolean mCanceled = false;
+
+                    @Override
+                    public void onAnimationPause(Animator animation) {
+                        if (!mCanceled) {
+                            finalViewToKeep.setVisibility(finalVisibility);
+                        }
+                    }
+
+                    @Override
+                    public void onAnimationResume(Animator animation) {
+                        if (!mCanceled) {
+                            finalViewToKeep.setVisibility(View.VISIBLE);
+                        }
+                    }
+
+                    @Override
+                    public void onAnimationCancel(Animator animation) {
+                        mCanceled = true;
+                    }
+
+                    @Override
+                    public void onAnimationEnd(Animator animation) {
+                        if (!mCanceled) {
+                            finalViewToKeep.setVisibility(finalVisibility);
+                        }
+                    }
+                });
+            }
+            return animator;
+        }
+        return null;
+    }
+
+    /**
+     * The default implementation of this method returns a null Animator. Subclasses should
+     * override this method to make targets disappear with the desired transition. The
+     * method should only be called from
+     * {@link #onDisappear(ViewGroup, TransitionValues, int, TransitionValues, int)}.
+     *
+     * @param sceneRoot The root of the transition hierarchy
+     * @param view The View to make disappear. This will be in the target scene's View
+     *             hierarchy or in an {@link android.view.ViewGroupOverlay} and will be
+     *             VISIBLE.
+     * @param startValues The target values in the start scene
+     * @param endValues The target values in the end scene
+     * @return An Animator to be started at the appropriate time in the
+     * overall transition for this scene change. A null value means no animation
+     * should be run.
+     */
+    public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues startValues,
+            TransitionValues endValues) {
         return null;
     }
 }
diff --git a/core/java/android/transition/VisibilityPropagation.java b/core/java/android/transition/VisibilityPropagation.java
new file mode 100644
index 0000000..0326d47
--- /dev/null
+++ b/core/java/android/transition/VisibilityPropagation.java
@@ -0,0 +1,112 @@
+/*
+ * 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 android.transition;
+
+import android.view.View;
+
+/**
+ * Base class for <code>TransitionPropagation</code>s that care about
+ * View Visibility and the center position of the View.
+ */
+public abstract class VisibilityPropagation extends TransitionPropagation {
+
+    /**
+     * The property key used for {@link android.view.View#getVisibility()}.
+     */
+    private static final String PROPNAME_VISIBILITY = "android:visibilityPropagation:visibility";
+
+    /**
+     * The property key used for the center of the View in screen coordinates. This is an
+     * int[2] with the index 0 taking the x coordinate and index 1 taking the y coordinate.
+     */
+    private static final String PROPNAME_VIEW_CENTER = "android:visibilityPropagation:center";
+
+    private static final String[] VISIBILITY_PROPAGATION_VALUES = {
+            PROPNAME_VISIBILITY,
+            PROPNAME_VIEW_CENTER,
+    };
+
+    @Override
+    public void captureValues(TransitionValues values) {
+        View view = values.view;
+        values.values.put(PROPNAME_VISIBILITY, view.getVisibility());
+        int[] loc = new int[2];
+        view.getLocationOnScreen(loc);
+        loc[0] += Math.round(view.getTranslationX());
+        loc[0] += view.getWidth() / 2;
+        loc[1] += Math.round(view.getTranslationY());
+        loc[1] += view.getHeight() / 2;
+        values.values.put(PROPNAME_VIEW_CENTER, loc);
+    }
+
+    @Override
+    public String[] getPropagationProperties() {
+        return VISIBILITY_PROPAGATION_VALUES;
+    }
+
+    /**
+     * Returns {@link android.view.View#getVisibility()} for the View at the time the values
+     * were captured.
+     * @param values The TransitionValues captured at the start or end of the Transition.
+     * @return {@link android.view.View#getVisibility()} for the View at the time the values
+     * were captured.
+     */
+    public int getViewVisibility(TransitionValues values) {
+        if (values == null) {
+            return View.GONE;
+        }
+        Integer visibility = (Integer) values.values.get(PROPNAME_VISIBILITY);
+        if (visibility == null) {
+            return View.GONE;
+        }
+        return visibility;
+    }
+
+    /**
+     * Returns the View's center x coordinate, relative to the screen, at the time the values
+     * were captured.
+     * @param values The TransitionValues captured at the start or end of the Transition.
+     * @return the View's center x coordinate, relative to the screen, at the time the values
+     * were captured.
+     */
+    public int getViewX(TransitionValues values) {
+        return getViewCoordinate(values, 0);
+    }
+
+    /**
+     * Returns the View's center y coordinate, relative to the screen, at the time the values
+     * were captured.
+     * @param values The TransitionValues captured at the start or end of the Transition.
+     * @return the View's center y coordinate, relative to the screen, at the time the values
+     * were captured.
+     */
+    public int getViewY(TransitionValues values) {
+        return getViewCoordinate(values, 1);
+    }
+
+    private static int getViewCoordinate(TransitionValues values, int coordinateIndex) {
+        if (values == null) {
+            return -1;
+        }
+
+        int[] coordinates = (int[]) values.values.get(PROPNAME_VIEW_CENTER);
+        if (coordinates == null) {
+            return -1;
+        }
+
+        return coordinates[coordinateIndex];
+    }
+}
diff --git a/core/java/android/tv/ITvInputClient.aidl b/core/java/android/tv/ITvInputClient.aidl
new file mode 100644
index 0000000..43be6f0
--- /dev/null
+++ b/core/java/android/tv/ITvInputClient.aidl
@@ -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.
+ */
+
+package android.tv;
+
+import android.content.ComponentName;
+import android.tv.ITvInputSession;
+
+/**
+ * Interface a client of the ITvInputManager implements, to identify itself and receive information
+ * about changes to the state of each TV input service.
+ * @hide
+ */
+oneway interface ITvInputClient {
+    void onSessionCreated(in ComponentName name, IBinder token, int seq);
+    void onAvailabilityChanged(in ComponentName name, boolean isAvailable);
+}
diff --git a/core/java/android/tv/ITvInputManager.aidl b/core/java/android/tv/ITvInputManager.aidl
new file mode 100644
index 0000000..a927dc9
--- /dev/null
+++ b/core/java/android/tv/ITvInputManager.aidl
@@ -0,0 +1,43 @@
+/*
+ * 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 android.tv;
+
+import android.content.ComponentName;
+import android.net.Uri;
+import android.tv.ITvInputClient;
+import android.tv.TvInputInfo;
+import android.view.Surface;
+
+/**
+ * Interface to the TV input manager service.
+ * @hide
+ */
+interface ITvInputManager {
+    List<TvInputInfo> getTvInputList(int userId);
+
+    boolean getAvailability(in ITvInputClient client, in ComponentName name, int userId);
+
+    void registerCallback(in ITvInputClient client, in ComponentName name, int userId);
+    void unregisterCallback(in ITvInputClient client, in ComponentName name, int userId);
+
+    void createSession(in ITvInputClient client, in ComponentName name, int seq, int userId);
+    void releaseSession(in IBinder sessionToken, int userId);
+
+    void setSurface(in IBinder sessionToken, in Surface surface, int userId);
+    void setVolume(in IBinder sessionToken, float volume, int userId);
+    void tune(in IBinder sessionToken, in Uri channelUri, int userId);
+}
diff --git a/core/java/android/tv/ITvInputService.aidl b/core/java/android/tv/ITvInputService.aidl
new file mode 100644
index 0000000..d80f286
--- /dev/null
+++ b/core/java/android/tv/ITvInputService.aidl
@@ -0,0 +1,31 @@
+/*
+ * 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 android.tv;
+
+import android.tv.ITvInputServiceCallback;
+import android.tv.ITvInputSession;
+import android.tv.ITvInputSessionCallback;
+
+/**
+ * Top-level interface to a TV input component (implemented in a Service).
+ * @hide
+ */
+oneway interface ITvInputService {
+    void registerCallback(ITvInputServiceCallback callback);
+    void unregisterCallback(in ITvInputServiceCallback callback);
+    void createSession(ITvInputSessionCallback callback);
+}
diff --git a/core/java/android/tv/ITvInputServiceCallback.aidl b/core/java/android/tv/ITvInputServiceCallback.aidl
new file mode 100644
index 0000000..e535c81
--- /dev/null
+++ b/core/java/android/tv/ITvInputServiceCallback.aidl
@@ -0,0 +1,28 @@
+/*
+ * 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 android.tv;
+
+import android.content.ComponentName;
+
+/**
+ * Helper interface for ITvInputService to allow the TV input to notify the client when its status
+ * has been changed.
+ * @hide
+ */
+oneway interface ITvInputServiceCallback {
+    void onAvailabilityChanged(in ComponentName name, boolean isAvailable);
+}
diff --git a/core/java/android/tv/ITvInputSession.aidl b/core/java/android/tv/ITvInputSession.aidl
new file mode 100644
index 0000000..d379d2d
--- /dev/null
+++ b/core/java/android/tv/ITvInputSession.aidl
@@ -0,0 +1,34 @@
+/*
+ * 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 android.tv;
+
+import android.net.Uri;
+import android.view.Surface;
+
+/**
+ * Sub-interface of ITvInputService which is created per session and has its own context.
+ * @hide
+ */
+oneway interface ITvInputSession {
+    void release();
+
+    void setSurface(in Surface surface);
+    // TODO: Remove this once it becomes irrelevant for applications to handle audio focus. The plan
+    // is to introduce some new concepts that will solve a number of problems in audio policy today.
+    void setVolume(float volume);
+    void tune(in Uri channelUri);
+}
diff --git a/core/java/android/tv/ITvInputSessionCallback.aidl b/core/java/android/tv/ITvInputSessionCallback.aidl
new file mode 100644
index 0000000..a2bd0d7
--- /dev/null
+++ b/core/java/android/tv/ITvInputSessionCallback.aidl
@@ -0,0 +1,28 @@
+/*
+ * 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 android.tv;
+
+import android.tv.ITvInputSession;
+
+/**
+ * Helper interface for ITvInputSession to allow the TV input to notify the system service when a
+ * new session has been created.
+ * @hide
+ */
+oneway interface ITvInputSessionCallback {
+    void onSessionCreated(ITvInputSession session);
+}
diff --git a/core/java/android/tv/ITvInputSessionWrapper.java b/core/java/android/tv/ITvInputSessionWrapper.java
new file mode 100644
index 0000000..66fe5e1
--- /dev/null
+++ b/core/java/android/tv/ITvInputSessionWrapper.java
@@ -0,0 +1,100 @@
+/*
+ * 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 android.tv;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Message;
+import android.tv.TvInputService.TvInputSessionImpl;
+import android.util.Log;
+import android.view.Surface;
+
+import com.android.internal.os.HandlerCaller;
+
+/**
+ * Implements the internal ITvInputSession interface to convert incoming calls on to it back to
+ * calls on the public TvInputSession interface, scheduling them on the main thread of the process.
+ *
+ * @hide
+ */
+public class ITvInputSessionWrapper extends ITvInputSession.Stub implements HandlerCaller.Callback {
+    private static final String TAG = "TvInputSessionWrapper";
+
+    private static final int DO_RELEASE = 1;
+    private static final int DO_SET_SURFACE = 2;
+    private static final int DO_SET_VOLUME = 3;
+    private static final int DO_TUNE = 4;
+
+    private TvInputSessionImpl mTvInputSession;
+    private final HandlerCaller mCaller;
+
+    public ITvInputSessionWrapper(Context context, TvInputSessionImpl session) {
+        mCaller = new HandlerCaller(context, null, this, true /* asyncHandler */);
+        mTvInputSession = session;
+    }
+
+    @Override
+    public void executeMessage(Message msg) {
+        if (mTvInputSession == null) {
+            return;
+        }
+
+        switch (msg.what) {
+            case DO_RELEASE: {
+                mTvInputSession.release();
+                mTvInputSession = null;
+                return;
+            }
+            case DO_SET_SURFACE: {
+                mTvInputSession.setSurface((Surface) msg.obj);
+                return;
+            }
+            case DO_SET_VOLUME: {
+                mTvInputSession.setVolume((Float) msg.obj);
+                return;
+            }
+            case DO_TUNE: {
+                mTvInputSession.tune((Uri) msg.obj);
+                return;
+            }
+            default: {
+                Log.w(TAG, "Unhandled message code: " + msg.what);
+                return;
+            }
+        }
+    }
+
+    @Override
+    public void release() {
+        mCaller.executeOrSendMessage(mCaller.obtainMessage(DO_RELEASE));
+    }
+
+    @Override
+    public void setSurface(Surface surface) {
+        mCaller.executeOrSendMessage(mCaller.obtainMessageO(DO_SET_SURFACE, surface));
+    }
+
+    @Override
+    public final void setVolume(float volume) {
+        mCaller.executeOrSendMessage(mCaller.obtainMessageO(DO_SET_VOLUME, volume));
+    }
+
+    @Override
+    public void tune(Uri channelUri) {
+        mCaller.executeOrSendMessage(mCaller.obtainMessageO(DO_TUNE, channelUri));
+    }
+}
diff --git a/core/java/android/tv/TvInputInfo.aidl b/core/java/android/tv/TvInputInfo.aidl
new file mode 100644
index 0000000..abc4b47
--- /dev/null
+++ b/core/java/android/tv/TvInputInfo.aidl
@@ -0,0 +1,19 @@
+/*
+ * 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 android.tv;
+
+parcelable TvInputInfo;
diff --git a/core/java/android/tv/TvInputInfo.java b/core/java/android/tv/TvInputInfo.java
new file mode 100644
index 0000000..90e4177
--- /dev/null
+++ b/core/java/android/tv/TvInputInfo.java
@@ -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.
+ */
+
+package android.tv;
+
+import android.content.ComponentName;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * This class is used to specify meta information of a TV input.
+ */
+public final class TvInputInfo implements Parcelable {
+    private final ResolveInfo mService;
+    private final String mId;
+
+    /**
+     * Constructor.
+     *
+     * @param service The ResolveInfo returned from the package manager about this TV input service.
+     * @hide
+     */
+    public TvInputInfo(ResolveInfo service) {
+        mService = service;
+        ServiceInfo si = service.serviceInfo;
+        mId = new ComponentName(si.packageName, si.name).flattenToShortString();
+    }
+
+    /**
+     * Returns a unique ID for this TV input. The ID is generated from the package and class name
+     * implementing the TV input service.
+     */
+    public String getId() {
+        return mId;
+    }
+
+    /**
+     * Returns the .apk package that implements this TV input service.
+     */
+    public String getPackageName() {
+        return mService.serviceInfo.packageName;
+    }
+
+    /**
+     * Returns the class name of the service component that implements this TV input service.
+     */
+    public String getServiceName() {
+        return mService.serviceInfo.name;
+    }
+
+    /**
+     * Returns the component of the service that implements this TV input.
+     */
+    public ComponentName getComponent() {
+        return new ComponentName(mService.serviceInfo.packageName, mService.serviceInfo.name);
+    }
+
+    /**
+     * Loads the user-displayed label for this TV input service.
+     *
+     * @param pm Supplies a PackageManager used to load the TV input's resources.
+     * @return Returns a CharSequence containing the TV input's label. If the TV input does not have
+     *         a label, its name is returned.
+     */
+    public CharSequence loadLabel(PackageManager pm) {
+        return mService.loadLabel(pm);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public int hashCode() {
+        return mId.hashCode();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == this) {
+            return true;
+        }
+
+        if (!(o instanceof TvInputInfo)) {
+            return false;
+        }
+
+        TvInputInfo obj = (TvInputInfo) o;
+        return mId.equals(obj.mId)
+                && mService.serviceInfo.packageName.equals(obj.mService.serviceInfo.packageName)
+                && mService.serviceInfo.name.equals(obj.mService.serviceInfo.name);
+    }
+
+    @Override
+    public String toString() {
+        return "TvInputInfo{id=" + mId
+                + ", pkg=" + mService.serviceInfo.packageName
+                + ", service=" + mService.serviceInfo.name + "}";
+    }
+
+    /**
+     * Used to package this object into a {@link Parcel}.
+     *
+     * @param dest The {@link Parcel} to be written.
+     * @param flags The flags used for parceling.
+     */
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeString(mId);
+        mService.writeToParcel(dest, flags);
+    }
+
+    /**
+     * Used to make this class parcelable.
+     *
+     * @hide
+     */
+    public static final Parcelable.Creator<TvInputInfo> CREATOR =
+            new Parcelable.Creator<TvInputInfo>() {
+        @Override
+        public TvInputInfo createFromParcel(Parcel in) {
+            return new TvInputInfo(in);
+        }
+
+        @Override
+        public TvInputInfo[] newArray(int size) {
+            return new TvInputInfo[size];
+        }
+    };
+
+    private TvInputInfo(Parcel in) {
+        mId = in.readString();
+        mService = ResolveInfo.CREATOR.createFromParcel(in);
+    }
+}
diff --git a/core/java/android/tv/TvInputManager.java b/core/java/android/tv/TvInputManager.java
new file mode 100644
index 0000000..4cf2b35
--- /dev/null
+++ b/core/java/android/tv/TvInputManager.java
@@ -0,0 +1,392 @@
+/*
+ * 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 android.tv;
+
+import android.content.ComponentName;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Log;
+import android.util.SparseArray;
+import android.view.Surface;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Central system API to the overall TV input framework (TIF) architecture, which arbitrates
+ * interaction between applications and the selected TV inputs.
+ */
+public final class TvInputManager {
+    private static final String TAG = "TvInputManager";
+
+    private final ITvInputManager mService;
+
+    // A mapping from an input to the list of its TvInputListenerRecords.
+    private final Map<ComponentName, List<TvInputListenerRecord>> mTvInputListenerRecordsMap =
+            new HashMap<ComponentName, List<TvInputListenerRecord>>();
+
+    // A mapping from the sequence number of a session to its SessionCreateCallbackRecord.
+    private final SparseArray<SessionCreateCallbackRecord> mSessionCreateCallbackRecordMap =
+            new SparseArray<SessionCreateCallbackRecord>();
+
+    // A sequence number for the next session to be created. Should be protected by a lock
+    // {@code mSessionCreateCallbackRecordMap}.
+    private int mNextSeq;
+
+    private final ITvInputClient mClient;
+
+    private final int mUserId;
+
+    /**
+     * Interface used to receive the created session.
+     */
+    public interface SessionCreateCallback {
+        /**
+         * This is called after {@link TvInputManager#createSession} has been processed.
+         *
+         * @param session A {@link TvInputManager.Session} instance created. This can be
+         *            {@code null} if the creation request failed.
+         */
+        void onSessionCreated(Session session);
+    }
+
+    private static final class SessionCreateCallbackRecord {
+        private final SessionCreateCallback mSessionCreateCallback;
+        private final Handler mHandler;
+
+        public SessionCreateCallbackRecord(SessionCreateCallback sessionCreateCallback,
+                Handler handler) {
+            mSessionCreateCallback = sessionCreateCallback;
+            mHandler = handler;
+        }
+
+        public void postSessionCreated(final Session session) {
+            mHandler.post(new Runnable() {
+                @Override
+                public void run() {
+                    mSessionCreateCallback.onSessionCreated(session);
+                }
+            });
+        }
+    }
+
+    /**
+     * Interface used to monitor status of the TV input.
+     */
+    public abstract static class TvInputListener {
+        /**
+         * This is called when the availability status of a given TV input is changed.
+         *
+         * @param name {@link ComponentName} of {@link android.app.Service} that implements the
+         *            given TV input.
+         * @param isAvailable {@code true} if the given TV input is available to show TV programs.
+         *            {@code false} otherwise.
+         */
+        public void onAvailabilityChanged(ComponentName name, boolean isAvailable) {
+        }
+    }
+
+    private static final class TvInputListenerRecord {
+        private final TvInputListener mListener;
+        private final Handler mHandler;
+
+        public TvInputListenerRecord(TvInputListener listener, Handler handler) {
+            mListener = listener;
+            mHandler = handler;
+        }
+
+        public TvInputListener getListener() {
+            return mListener;
+        }
+
+        public void postAvailabilityChanged(final ComponentName name, final boolean isAvailable) {
+            mHandler.post(new Runnable() {
+                @Override
+                public void run() {
+                    mListener.onAvailabilityChanged(name, isAvailable);
+                }
+            });
+        }
+    }
+
+    /**
+     * @hide
+     */
+    public TvInputManager(ITvInputManager service, int userId) {
+        mService = service;
+        mUserId = userId;
+        mClient = new ITvInputClient.Stub() {
+            @Override
+            public void onSessionCreated(ComponentName name, IBinder token, int seq) {
+                synchronized (mSessionCreateCallbackRecordMap) {
+                    SessionCreateCallbackRecord record = mSessionCreateCallbackRecordMap.get(seq);
+                    mSessionCreateCallbackRecordMap.delete(seq);
+                    if (record == null) {
+                        Log.e(TAG, "Callback not found for " + token);
+                        return;
+                    }
+                    Session session = null;
+                    if (token != null) {
+                        session = new Session(name, token, mService, mUserId);
+                    }
+                    record.postSessionCreated(session);
+                }
+            }
+
+            @Override
+            public void onAvailabilityChanged(ComponentName name, boolean isAvailable) {
+                synchronized (mTvInputListenerRecordsMap) {
+                    List<TvInputListenerRecord> records = mTvInputListenerRecordsMap.get(name);
+                    if (records == null) {
+                        // Silently ignore - no listener is registered yet.
+                        return;
+                    }
+                    int recordsCount = records.size();
+                    for (int i = 0; i < recordsCount; i++) {
+                        records.get(i).postAvailabilityChanged(name, isAvailable);
+                    }
+                }
+            }
+        };
+    }
+
+    /**
+     * Returns the complete list of TV inputs on the system.
+     *
+     * @return List of {@link TvInputInfo} for each TV input that describes its meta information.
+     */
+    public List<TvInputInfo> getTvInputList() {
+        try {
+            return mService.getTvInputList(mUserId);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Returns the availability of a given TV input.
+     *
+     * @param name {@link ComponentName} of {@link android.app.Service} that implements the given TV
+     *            input.
+     * @throws IllegalArgumentException if the argument is {@code null}.
+     * @throws IllegalStateException If there is no {@link TvInputListener} registered on the given
+     *             TV input.
+     */
+    public boolean getAvailability(ComponentName name) {
+        if (name == null) {
+            throw new IllegalArgumentException("name cannot be null");
+        }
+        synchronized (mTvInputListenerRecordsMap) {
+            List<TvInputListenerRecord> records = mTvInputListenerRecordsMap.get(name);
+            if (records == null || records.size() == 0) {
+                throw new IllegalStateException("At least one listener should be registered.");
+            }
+        }
+        try {
+            return mService.getAvailability(mClient, name, mUserId);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Registers a {@link TvInputListener} for a given TV input.
+     *
+     * @param name {@link ComponentName} of {@link android.app.Service} that implements the given TV
+     *            input.
+     * @param listener a listener used to monitor status of the given TV input.
+     * @param handler a {@link Handler} that the status change will be delivered to.
+     * @throws IllegalArgumentException if any of the arguments is {@code null}.
+     */
+    public void registerListener(ComponentName name, TvInputListener listener, Handler handler) {
+        if (name == null) {
+            throw new IllegalArgumentException("name cannot be null");
+        }
+        if (listener == null) {
+            throw new IllegalArgumentException("listener cannot be null");
+        }
+        if (handler == null) {
+            throw new IllegalArgumentException("handler cannot be null");
+        }
+        synchronized (mTvInputListenerRecordsMap) {
+            List<TvInputListenerRecord> records = mTvInputListenerRecordsMap.get(name);
+            if (records == null) {
+                records = new ArrayList<TvInputListenerRecord>();
+                mTvInputListenerRecordsMap.put(name, records);
+                try {
+                    mService.registerCallback(mClient, name, mUserId);
+                } catch (RemoteException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+            records.add(new TvInputListenerRecord(listener, handler));
+        }
+    }
+
+    /**
+     * Unregisters the existing {@link TvInputListener} for a given TV input.
+     *
+     * @param name {@link ComponentName} of {@link android.app.Service} that implements the given TV
+     *            input.
+     * @param listener the existing listener to remove for the given TV input.
+     * @throws IllegalArgumentException if any of the arguments is {@code null}.
+     */
+    public void unregisterListener(ComponentName name, final TvInputListener listener) {
+        if (name == null) {
+            throw new IllegalArgumentException("name cannot be null");
+        }
+        if (listener == null) {
+            throw new IllegalArgumentException("listener cannot be null");
+        }
+        synchronized (mTvInputListenerRecordsMap) {
+            List<TvInputListenerRecord> records = mTvInputListenerRecordsMap.get(name);
+            if (records == null) {
+                Log.e(TAG, "No listener found for " + name.getClassName());
+                return;
+            }
+            for (Iterator<TvInputListenerRecord> it = records.iterator(); it.hasNext();) {
+                TvInputListenerRecord record = it.next();
+                if (record.getListener() == listener) {
+                    it.remove();
+                }
+            }
+            if (records.isEmpty()) {
+                try {
+                    mService.unregisterCallback(mClient, name, mUserId);
+                } catch (RemoteException e) {
+                    throw new RuntimeException(e);
+                } finally {
+                    mTvInputListenerRecordsMap.remove(name);
+                }
+            }
+        }
+    }
+
+    /**
+     * Creates a {@link Session} for a given TV input.
+     * <p>
+     * The number of sessions that can be created at the same time is limited by the capability of
+     * the given TV input.
+     * </p>
+     *
+     * @param name {@link ComponentName} of {@link android.app.Service} that implements the given TV
+     *            input.
+     * @param callback a callback used to receive the created session.
+     * @param handler a {@link Handler} that the session creation will be delivered to.
+     * @throws IllegalArgumentException if any of the arguments is {@code null}.
+     */
+    public void createSession(ComponentName name, final SessionCreateCallback callback,
+            Handler handler) {
+        if (name == null) {
+            throw new IllegalArgumentException("name cannot be null");
+        }
+        if (callback == null) {
+            throw new IllegalArgumentException("callback cannot be null");
+        }
+        if (handler == null) {
+            throw new IllegalArgumentException("handler cannot be null");
+        }
+        SessionCreateCallbackRecord record = new SessionCreateCallbackRecord(callback, handler);
+        synchronized (mSessionCreateCallbackRecordMap) {
+            int seq = mNextSeq++;
+            mSessionCreateCallbackRecordMap.put(seq, record);
+            try {
+                mService.createSession(mClient, name, seq, mUserId);
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /** The Session provides the per-session functionality of TV inputs. */
+    public static final class Session {
+        private final ITvInputManager mService;
+        private final IBinder mToken;
+        private final int mUserId;
+
+        /** @hide */
+        private Session(ComponentName name, IBinder token, ITvInputManager service, int userId) {
+            mToken = token;
+            mService = service;
+            mUserId = userId;
+        }
+
+        /**
+         * Releases this session.
+         */
+        public void release() {
+            try {
+                mService.releaseSession(mToken, mUserId);
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        /**
+         * Sets the {@link android.view.Surface} for this session.
+         *
+         * @param surface A {@link android.view.Surface} used to render video.
+         */
+        public void setSurface(Surface surface) {
+            // surface can be null.
+            try {
+                mService.setSurface(mToken, surface, mUserId);
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        /**
+         * Sets the relative volume of this session to handle a change of audio focus.
+         *
+         * @param volume A volume value between 0.0f to 1.0f.
+         * @throws IllegalArgumentException if the volume value is out of range.
+         */
+        public void setVolume(float volume) {
+            try {
+                if (volume < 0.0f || volume > 1.0f) {
+                    throw new IllegalArgumentException("volume should be between 0.0f and 1.0f");
+                }
+                mService.setVolume(mToken, volume, mUserId);
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        /**
+         * Tunes to a given channel.
+         *
+         * @param channelUri The URI of a channel.
+         * @throws IllegalArgumentException if the argument is {@code null}.
+         */
+        public void tune(Uri channelUri) {
+            if (channelUri == null) {
+                throw new IllegalArgumentException("channelUri cannot be null");
+            }
+            try {
+                mService.tune(mToken, channelUri, mUserId);
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+}
diff --git a/core/java/android/tv/TvInputService.java b/core/java/android/tv/TvInputService.java
new file mode 100644
index 0000000..d7f6c32
--- /dev/null
+++ b/core/java/android/tv/TvInputService.java
@@ -0,0 +1,237 @@
+/*
+ * 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 android.tv;
+
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteCallbackList;
+import android.os.RemoteException;
+import android.util.Log;
+import android.view.Surface;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+/**
+ * A base class for implementing television input service.
+ */
+public abstract class TvInputService extends Service {
+    // STOPSHIP: Turn debugging off.
+    private static final boolean DEBUG = true;
+    private static final String TAG = "TvInputService";
+
+    /**
+     * This is the interface name that a service implementing a TV input should say that it support
+     * -- that is, this is the action it uses for its intent filter. To be supported, the service
+     * must also require the {@link android.Manifest.permission#BIND_TV_INPUT} permission so that
+     * other applications cannot abuse it.
+     */
+    public static final String SERVICE_INTERFACE = "android.tv.TvInputService";
+
+    private ComponentName mComponentName;
+    private final Handler mHandler = new ServiceHandler();
+    private final RemoteCallbackList<ITvInputServiceCallback> mCallbacks =
+            new RemoteCallbackList<ITvInputServiceCallback>();
+    private boolean mAvailable;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mComponentName = new ComponentName(getPackageName(), getClass().getName());
+    }
+
+    @Override
+    public final IBinder onBind(Intent intent) {
+        return new ITvInputService.Stub() {
+            @Override
+            public void registerCallback(ITvInputServiceCallback cb) {
+                if (cb != null) {
+                    mCallbacks.register(cb);
+                    // The first time a callback is registered, the service needs to report its
+                    // availability status so that the system can know its initial value.
+                    try {
+                        cb.onAvailabilityChanged(mComponentName, mAvailable);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in onAvailabilityChanged", e);
+                    }
+                }
+            }
+
+            @Override
+            public void unregisterCallback(ITvInputServiceCallback cb) {
+                if (cb != null) {
+                    mCallbacks.unregister(cb);
+                }
+            }
+
+            @Override
+            public void createSession(ITvInputSessionCallback cb) {
+                if (cb != null) {
+                    mHandler.obtainMessage(ServiceHandler.DO_CREATE_SESSION, cb).sendToTarget();
+                }
+            }
+        };
+    }
+
+    /**
+     * Convenience method to notify an availability change of this TV input service.
+     *
+     * @param available {@code true} if the input service is available to show TV programs.
+     */
+    public final void setAvailable(boolean available) {
+        if (available != mAvailable) {
+            mAvailable = available;
+            mHandler.obtainMessage(ServiceHandler.DO_BROADCAST_AVAILABILITY_CHANGE, available)
+                    .sendToTarget();
+        }
+    }
+
+    /**
+     * Get the number of callbacks that are registered.
+     *
+     * @hide
+     */
+    @VisibleForTesting
+    public final int getRegisteredCallbackCount() {
+        return mCallbacks.getRegisteredCallbackCount();
+    }
+
+    /**
+     * Returns a concrete implementation of {@link TvInputSessionImpl}.
+     * <p>
+     * May return {@code null} if this TV input service fails to create a session for some reason.
+     * </p>
+     */
+    public abstract TvInputSessionImpl onCreateSession();
+
+    /**
+     * Base class for derived classes to implement to provide {@link TvInputManager.Session}.
+     */
+    public abstract static class TvInputSessionImpl {
+        /**
+         * Called when the session is released.
+         */
+        public abstract void onRelease();
+
+        /**
+         * Sets the {@link Surface} for the current input session on which the TV input renders
+         * video.
+         *
+         * @param surface {@link Surface} an application passes to this TV input session.
+         * @return {@code true} if the surface was set, {@code false} otherwise.
+         */
+        public abstract boolean onSetSurface(Surface surface);
+
+        /**
+         * Sets the relative volume of the current TV input session to handle the change of audio
+         * focus by setting.
+         *
+         * @param volume Volume scale from 0.0 to 1.0.
+         */
+        public abstract void onSetVolume(float volume);
+
+        /**
+         * Tunes to a given channel.
+         *
+         * @param channelUri The URI of the channel.
+         * @return {@code true} the tuning was successful, {@code false} otherwise.
+         */
+        public abstract boolean onTune(Uri channelUri);
+
+        /**
+         * This method is called when the application would like to stop using the current input
+         * session.
+         */
+        void release() {
+            onRelease();
+        }
+
+        /**
+         * Calls {@link onSetSurface}.
+         */
+        void setSurface(Surface surface) {
+            onSetSurface(surface);
+            // TODO: Handle failure.
+        }
+
+        /**
+         * Calls {@link onSetVolume}.
+         */
+        void setVolume(float volume) {
+            onSetVolume(volume);
+        }
+
+        /**
+         * Calls {@link onTune}.
+         */
+        void tune(Uri channelUri) {
+            onTune(channelUri);
+            // TODO: Handle failure.
+        }
+    }
+
+    private final class ServiceHandler extends Handler {
+        private static final int DO_CREATE_SESSION = 1;
+        private static final int DO_BROADCAST_AVAILABILITY_CHANGE = 2;
+
+        @Override
+        public final void handleMessage(Message msg) {
+            switch (msg.what) {
+                case DO_CREATE_SESSION: {
+                    ITvInputSessionCallback cb = (ITvInputSessionCallback) msg.obj;
+                    try {
+                        TvInputSessionImpl sessionImpl = onCreateSession();
+                        if (sessionImpl == null) {
+                            // Failed to create a session.
+                            cb.onSessionCreated(null);
+                            return;
+                        }
+                        ITvInputSession stub = new ITvInputSessionWrapper(TvInputService.this,
+                                sessionImpl);
+                        cb.onSessionCreated(stub);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in onSessionCreated");
+                    }
+                    return;
+                }
+                case DO_BROADCAST_AVAILABILITY_CHANGE: {
+                    boolean isAvailable = (Boolean) msg.obj;
+                    int n = mCallbacks.beginBroadcast();
+                    try {
+                        for (int i = 0; i < n; i++) {
+                            mCallbacks.getBroadcastItem(i).onAvailabilityChanged(mComponentName,
+                                    isAvailable);
+                        }
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "Unexpected exception", e);
+                    } finally {
+                        mCallbacks.finishBroadcast();
+                    }
+                    return;
+                }
+                default: {
+                    Log.w(TAG, "Unhandled message code: " + msg.what);
+                    return;
+                }
+            }
+        }
+    }
+}
diff --git a/core/java/android/util/ArrayMap.java b/core/java/android/util/ArrayMap.java
index df1d4cd..9a0b7fc 100644
--- a/core/java/android/util/ArrayMap.java
+++ b/core/java/android/util/ArrayMap.java
@@ -16,6 +16,8 @@
 
 package android.util;
 
+import libcore.util.EmptyArray;
+
 import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
@@ -234,8 +236,8 @@
      * will grow once items are added to it.
      */
     public ArrayMap() {
-        mHashes = ContainerHelpers.EMPTY_INTS;
-        mArray = ContainerHelpers.EMPTY_OBJECTS;
+        mHashes = EmptyArray.INT;
+        mArray = EmptyArray.OBJECT;
         mSize = 0;
     }
 
@@ -244,8 +246,8 @@
      */
     public ArrayMap(int capacity) {
         if (capacity == 0) {
-            mHashes = ContainerHelpers.EMPTY_INTS;
-            mArray = ContainerHelpers.EMPTY_OBJECTS;
+            mHashes = EmptyArray.INT;
+            mArray = EmptyArray.OBJECT;
         } else {
             allocArrays(capacity);
         }
@@ -253,8 +255,8 @@
     }
 
     private ArrayMap(boolean immutable) {
-        mHashes = EMPTY_IMMUTABLE_INTS;
-        mArray = ContainerHelpers.EMPTY_OBJECTS;
+        mHashes = EmptyArray.INT;
+        mArray = EmptyArray.OBJECT;
         mSize = 0;
     }
 
@@ -275,8 +277,8 @@
     public void clear() {
         if (mSize > 0) {
             freeArrays(mHashes, mArray, mSize);
-            mHashes = ContainerHelpers.EMPTY_INTS;
-            mArray = ContainerHelpers.EMPTY_OBJECTS;
+            mHashes = EmptyArray.INT;
+            mArray = EmptyArray.OBJECT;
             mSize = 0;
         }
     }
@@ -540,8 +542,8 @@
             // Now empty.
             if (DEBUG) Log.d(TAG, "remove: shrink from " + mHashes.length + " to 0");
             freeArrays(mHashes, mArray, mSize);
-            mHashes = ContainerHelpers.EMPTY_INTS;
-            mArray = ContainerHelpers.EMPTY_OBJECTS;
+            mHashes = EmptyArray.INT;
+            mArray = EmptyArray.OBJECT;
             mSize = 0;
         } else {
             if (mHashes.length > (BASE_SIZE*2) && mSize < mHashes.length/3) {
diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java
index 3c695e9..9d4b720 100644
--- a/core/java/android/util/ArraySet.java
+++ b/core/java/android/util/ArraySet.java
@@ -16,6 +16,8 @@
 
 package android.util;
 
+import libcore.util.EmptyArray;
+
 import java.lang.reflect.Array;
 import java.util.Collection;
 import java.util.Iterator;
@@ -222,8 +224,8 @@
      * will grow once items are added to it.
      */
     public ArraySet() {
-        mHashes = ContainerHelpers.EMPTY_INTS;
-        mArray = ContainerHelpers.EMPTY_OBJECTS;
+        mHashes = EmptyArray.INT;
+        mArray = EmptyArray.OBJECT;
         mSize = 0;
     }
 
@@ -232,8 +234,8 @@
      */
     public ArraySet(int capacity) {
         if (capacity == 0) {
-            mHashes = ContainerHelpers.EMPTY_INTS;
-            mArray = ContainerHelpers.EMPTY_OBJECTS;
+            mHashes = EmptyArray.INT;
+            mArray = EmptyArray.OBJECT;
         } else {
             allocArrays(capacity);
         }
@@ -258,8 +260,8 @@
     public void clear() {
         if (mSize != 0) {
             freeArrays(mHashes, mArray, mSize);
-            mHashes = ContainerHelpers.EMPTY_INTS;
-            mArray = ContainerHelpers.EMPTY_OBJECTS;
+            mHashes = EmptyArray.INT;
+            mArray = EmptyArray.OBJECT;
             mSize = 0;
         }
     }
@@ -413,8 +415,8 @@
             // Now empty.
             if (DEBUG) Log.d(TAG, "remove: shrink from " + mHashes.length + " to 0");
             freeArrays(mHashes, mArray, mSize);
-            mHashes = ContainerHelpers.EMPTY_INTS;
-            mArray = ContainerHelpers.EMPTY_OBJECTS;
+            mHashes = EmptyArray.INT;
+            mArray = EmptyArray.OBJECT;
             mSize = 0;
         } else {
             if (mHashes.length > (BASE_SIZE*2) && mSize < mHashes.length/3) {
diff --git a/core/java/android/util/ContainerHelpers.java b/core/java/android/util/ContainerHelpers.java
index 624c4bd..4e5fefb 100644
--- a/core/java/android/util/ContainerHelpers.java
+++ b/core/java/android/util/ContainerHelpers.java
@@ -17,10 +17,6 @@
 package android.util;
 
 class ContainerHelpers {
-    static final boolean[] EMPTY_BOOLEANS = new boolean[0];
-    static final int[] EMPTY_INTS = new int[0];
-    static final long[] EMPTY_LONGS = new long[0];
-    static final Object[] EMPTY_OBJECTS = new Object[0];
 
     // This is Arrays.binarySearch(), but doesn't do any argument validation.
     static int binarySearch(int[] array, int size, int value) {
diff --git a/core/java/android/util/LongArray.java b/core/java/android/util/LongArray.java
index d5f15f0..54a6882 100644
--- a/core/java/android/util/LongArray.java
+++ b/core/java/android/util/LongArray.java
@@ -17,6 +17,7 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import libcore.util.EmptyArray;
 
 /**
  * Implements a growing array of long primitives.
@@ -41,10 +42,9 @@
      */
     public LongArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mValues = ContainerHelpers.EMPTY_LONGS;
+            mValues = EmptyArray.LONG;
         } else {
-            initialCapacity = ArrayUtils.idealLongArraySize(initialCapacity);
-            mValues = new long[initialCapacity];
+            mValues = ArrayUtils.newUnpaddedLongArray(initialCapacity);
         }
         mSize = 0;
     }
@@ -97,7 +97,7 @@
             final int targetCap = currentSize + (currentSize < (MIN_CAPACITY_INCREMENT / 2) ?
                     MIN_CAPACITY_INCREMENT : currentSize >> 1);
             final int newCapacity = targetCap > minCapacity ? targetCap : minCapacity;
-            final long[] newValues = new long[ArrayUtils.idealLongArraySize(newCapacity)];
+            final long[] newValues = ArrayUtils.newUnpaddedLongArray(newCapacity);
             System.arraycopy(mValues, 0, newValues, 0, currentSize);
             mValues = newValues;
         }
diff --git a/core/java/android/util/LongSparseArray.java b/core/java/android/util/LongSparseArray.java
index dab853a..6b45ff4 100644
--- a/core/java/android/util/LongSparseArray.java
+++ b/core/java/android/util/LongSparseArray.java
@@ -17,6 +17,9 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 /**
  * SparseArray mapping longs to Objects.  Unlike a normal array of Objects,
@@ -70,12 +73,11 @@
      */
     public LongSparseArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mKeys = ContainerHelpers.EMPTY_LONGS;
-            mValues = ContainerHelpers.EMPTY_OBJECTS;
+            mKeys = EmptyArray.LONG;
+            mValues = EmptyArray.OBJECT;
         } else {
-            initialCapacity = ArrayUtils.idealLongArraySize(initialCapacity);
-            mKeys = new long[initialCapacity];
-            mValues = new Object[initialCapacity];
+            mKeys = ArrayUtils.newUnpaddedLongArray(initialCapacity);
+            mValues = ArrayUtils.newUnpaddedObjectArray(initialCapacity);
         }
         mSize = 0;
     }
@@ -202,28 +204,8 @@
                 i = ~ContainerHelpers.binarySearch(mKeys, mSize, key);
             }
 
-            if (mSize >= mKeys.length) {
-                int n = ArrayUtils.idealLongArraySize(mSize + 1);
-
-                long[] nkeys = new long[n];
-                Object[] nvalues = new Object[n];
-
-                // Log.e("SparseArray", "grow " + mKeys.length + " to " + n);
-                System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-                System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-                mKeys = nkeys;
-                mValues = nvalues;
-            }
-
-            if (mSize - i != 0) {
-                // Log.e("SparseArray", "move " + (mSize - i));
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = value;
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, value);
             mSize++;
         }
     }
@@ -353,24 +335,9 @@
             gc();
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            int n = ArrayUtils.idealLongArraySize(pos + 1);
-
-            long[] nkeys = new long[n];
-            Object[] nvalues = new Object[n];
-
-            // Log.e("SparseArray", "grow " + mKeys.length + " to " + n);
-            System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-            System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-            mKeys = nkeys;
-            mValues = nvalues;
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = value;
-        mSize = pos + 1;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, value);
+        mSize++;
     }
 
     /**
diff --git a/core/java/android/util/LongSparseLongArray.java b/core/java/android/util/LongSparseLongArray.java
index b8073dd..a361457 100644
--- a/core/java/android/util/LongSparseLongArray.java
+++ b/core/java/android/util/LongSparseLongArray.java
@@ -17,6 +17,9 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 /**
  * Map of {@code long} to {@code long}. Unlike a normal array of longs, there
@@ -62,12 +65,11 @@
      */
     public LongSparseLongArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mKeys = ContainerHelpers.EMPTY_LONGS;
-            mValues = ContainerHelpers.EMPTY_LONGS;
+            mKeys = EmptyArray.LONG;
+            mValues = EmptyArray.LONG;
         } else {
-            initialCapacity = ArrayUtils.idealLongArraySize(initialCapacity);
-            mKeys = new long[initialCapacity];
-            mValues = new long[initialCapacity];
+            mKeys = ArrayUtils.newUnpaddedLongArray(initialCapacity);
+            mValues = new long[mKeys.length];
         }
         mSize = 0;
     }
@@ -140,17 +142,8 @@
         } else {
             i = ~i;
 
-            if (mSize >= mKeys.length) {
-                growKeyAndValueArrays(mSize + 1);
-            }
-
-            if (mSize - i != 0) {
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = value;
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, value);
             mSize++;
         }
     }
@@ -234,27 +227,9 @@
             return;
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            growKeyAndValueArrays(pos + 1);
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = value;
-        mSize = pos + 1;
-    }
-
-    private void growKeyAndValueArrays(int minNeededSize) {
-        int n = ArrayUtils.idealLongArraySize(minNeededSize);
-
-        long[] nkeys = new long[n];
-        long[] nvalues = new long[n];
-
-        System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-        System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-        mKeys = nkeys;
-        mValues = nvalues;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, value);
+        mSize++;
     }
 
     /**
diff --git a/core/java/android/util/Patterns.java b/core/java/android/util/Patterns.java
index 0f8da44..13cc88b 100644
--- a/core/java/android/util/Patterns.java
+++ b/core/java/android/util/Patterns.java
@@ -28,7 +28,12 @@
      *  List accurate as of 2011/07/18.  List taken from:
      *  http://data.iana.org/TLD/tlds-alpha-by-domain.txt
      *  This pattern is auto-generated by frameworks/ex/common/tools/make-iana-tld-pattern.py
+     *
+     *  @deprecated Due to the recent profileration of gTLDs, this API is
+     *  expected to become out-of-date very quickly. Therefore it is now
+     *  deprecated.
      */
+    @Deprecated
     public static final String TOP_LEVEL_DOMAIN_STR =
         "((aero|arpa|asia|a[cdefgilmnoqrstuwxz])"
         + "|(biz|b[abdefghijmnorstvwyz])"
@@ -59,7 +64,9 @@
 
     /**
      *  Regular expression pattern to match all IANA top-level domains.
+     *  @deprecated This API is deprecated. See {@link #TOP_LEVEL_DOMAIN_STR}.
      */
+    @Deprecated
     public static final Pattern TOP_LEVEL_DOMAIN =
         Pattern.compile(TOP_LEVEL_DOMAIN_STR);
 
@@ -68,7 +75,10 @@
      *  List accurate as of 2011/07/18.  List taken from:
      *  http://data.iana.org/TLD/tlds-alpha-by-domain.txt
      *  This pattern is auto-generated by frameworks/ex/common/tools/make-iana-tld-pattern.py
+     *
+     *  @deprecated This API is deprecated. See {@link #TOP_LEVEL_DOMAIN_STR}.
      */
+    @Deprecated
     public static final String TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL =
         "(?:"
         + "(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])"
@@ -107,6 +117,24 @@
     public static final String GOOD_IRI_CHAR =
         "a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF";
 
+    public static final Pattern IP_ADDRESS
+        = Pattern.compile(
+            "((25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(25[0-5]|2[0-4]"
+            + "[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]"
+            + "[0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}"
+            + "|[1-9][0-9]|[0-9]))");
+
+    /**
+     * RFC 1035 Section 2.3.4 limits the labels to a maximum 63 octets.
+     */
+    private static final String IRI
+        = "[" + GOOD_IRI_CHAR + "]([" + GOOD_IRI_CHAR + "\\-]{0,61}[" + GOOD_IRI_CHAR + "]){0,1}";
+
+    private static final String HOST_NAME = IRI + "(?:\\." + IRI + ")+";
+
+    public static final Pattern DOMAIN_NAME
+        = Pattern.compile("(" + HOST_NAME + "|" + IP_ADDRESS + ")");
+
     /**
      *  Regular expression pattern to match most part of RFC 3987
      *  Internationalized URLs, aka IRIs.  Commonly used Unicode characters are
@@ -116,13 +144,7 @@
         "((?:(http|https|Http|Https|rtsp|Rtsp):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)"
         + "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_"
         + "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?"
-        + "((?:(?:[" + GOOD_IRI_CHAR + "][" + GOOD_IRI_CHAR + "\\-]{0,64}\\.)+"   // named host
-        + TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL
-        + "|(?:(?:25[0-5]|2[0-4]" // or ip address
-        + "[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(?:25[0-5]|2[0-4][0-9]"
-        + "|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1]"
-        + "[0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}"
-        + "|[1-9][0-9]|[0-9])))"
+        + "(?:" + DOMAIN_NAME + ")"
         + "(?:\\:\\d{1,5})?)" // plus option port number
         + "(\\/(?:(?:[" + GOOD_IRI_CHAR + "\\;\\/\\?\\:\\@\\&\\=\\#\\~"  // plus option query params
         + "\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?"
@@ -130,19 +152,6 @@
                         // input.  This is to stop foo.sure from
                         // matching as foo.su
 
-    public static final Pattern IP_ADDRESS
-        = Pattern.compile(
-            "((25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(25[0-5]|2[0-4]"
-            + "[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]"
-            + "[0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}"
-            + "|[1-9][0-9]|[0-9]))");
-
-    public static final Pattern DOMAIN_NAME
-        = Pattern.compile(
-            "(((([" + GOOD_IRI_CHAR + "][" + GOOD_IRI_CHAR + "\\-]*)*[" + GOOD_IRI_CHAR + "]\\.)+"
-            + TOP_LEVEL_DOMAIN + ")|"
-            + IP_ADDRESS + ")");
-
     public static final Pattern EMAIL_ADDRESS
         = Pattern.compile(
             "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
@@ -159,7 +168,7 @@
      * might be phone numbers in arbitrary text, not for validating whether
      * something is in fact a phone number.  It will miss many things that
      * are legitimate phone numbers.
-     * 
+     *
      * <p> The pattern matches the following:
      * <ul>
      * <li>Optionally, a + sign followed immediately by one or more digits. Spaces, dots, or dashes
diff --git a/core/java/android/util/SparseArray.java b/core/java/android/util/SparseArray.java
index 46d9d45..92e874f 100644
--- a/core/java/android/util/SparseArray.java
+++ b/core/java/android/util/SparseArray.java
@@ -17,6 +17,9 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 /**
  * SparseArrays map integers to Objects.  Unlike a normal array of Objects,
@@ -70,12 +73,11 @@
      */
     public SparseArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mKeys = ContainerHelpers.EMPTY_INTS;
-            mValues = ContainerHelpers.EMPTY_OBJECTS;
+            mKeys = EmptyArray.INT;
+            mValues = EmptyArray.OBJECT;
         } else {
-            initialCapacity = ArrayUtils.idealIntArraySize(initialCapacity);
-            mKeys = new int[initialCapacity];
-            mValues = new Object[initialCapacity];
+            mValues = ArrayUtils.newUnpaddedObjectArray(initialCapacity);
+            mKeys = new int[mValues.length];
         }
         mSize = 0;
     }
@@ -215,28 +217,8 @@
                 i = ~ContainerHelpers.binarySearch(mKeys, mSize, key);
             }
 
-            if (mSize >= mKeys.length) {
-                int n = ArrayUtils.idealIntArraySize(mSize + 1);
-
-                int[] nkeys = new int[n];
-                Object[] nvalues = new Object[n];
-
-                // Log.e("SparseArray", "grow " + mKeys.length + " to " + n);
-                System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-                System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-                mKeys = nkeys;
-                mValues = nvalues;
-            }
-
-            if (mSize - i != 0) {
-                // Log.e("SparseArray", "move " + (mSize - i));
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = value;
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, value);
             mSize++;
         }
     }
@@ -368,24 +350,9 @@
             gc();
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            int n = ArrayUtils.idealIntArraySize(pos + 1);
-
-            int[] nkeys = new int[n];
-            Object[] nvalues = new Object[n];
-
-            // Log.e("SparseArray", "grow " + mKeys.length + " to " + n);
-            System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-            System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-            mKeys = nkeys;
-            mValues = nvalues;
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = value;
-        mSize = pos + 1;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, value);
+        mSize++;
     }
 
     /**
diff --git a/core/java/android/util/SparseBooleanArray.java b/core/java/android/util/SparseBooleanArray.java
index f59ef0f6d..e293b1f 100644
--- a/core/java/android/util/SparseBooleanArray.java
+++ b/core/java/android/util/SparseBooleanArray.java
@@ -17,6 +17,9 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 /**
  * SparseBooleanArrays map integers to booleans.
@@ -57,12 +60,11 @@
      */
     public SparseBooleanArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mKeys = ContainerHelpers.EMPTY_INTS;
-            mValues = ContainerHelpers.EMPTY_BOOLEANS;
+            mKeys = EmptyArray.INT;
+            mValues = EmptyArray.BOOLEAN;
         } else {
-            initialCapacity = ArrayUtils.idealIntArraySize(initialCapacity);
-            mKeys = new int[initialCapacity];
-            mValues = new boolean[initialCapacity];
+            mKeys = ArrayUtils.newUnpaddedIntArray(initialCapacity);
+            mValues = new boolean[mKeys.length];
         }
         mSize = 0;
     }
@@ -135,28 +137,8 @@
         } else {
             i = ~i;
 
-            if (mSize >= mKeys.length) {
-                int n = ArrayUtils.idealIntArraySize(mSize + 1);
-
-                int[] nkeys = new int[n];
-                boolean[] nvalues = new boolean[n];
-
-                // Log.e("SparseBooleanArray", "grow " + mKeys.length + " to " + n);
-                System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-                System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-                mKeys = nkeys;
-                mValues = nvalues;
-            }
-
-            if (mSize - i != 0) {
-                // Log.e("SparseBooleanArray", "move " + (mSize - i));
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = value;
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, value);
             mSize++;
         }
     }
@@ -245,24 +227,9 @@
             return;
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            int n = ArrayUtils.idealIntArraySize(pos + 1);
-
-            int[] nkeys = new int[n];
-            boolean[] nvalues = new boolean[n];
-
-            // Log.e("SparseBooleanArray", "grow " + mKeys.length + " to " + n);
-            System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-            System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-            mKeys = nkeys;
-            mValues = nvalues;
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = value;
-        mSize = pos + 1;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, value);
+        mSize++;
     }
 
     /**
diff --git a/core/java/android/util/SparseIntArray.java b/core/java/android/util/SparseIntArray.java
index 4f5ca07..2b85a21 100644
--- a/core/java/android/util/SparseIntArray.java
+++ b/core/java/android/util/SparseIntArray.java
@@ -17,6 +17,9 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 /**
  * SparseIntArrays map integers to integers.  Unlike a normal array of integers,
@@ -60,12 +63,11 @@
      */
     public SparseIntArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mKeys = ContainerHelpers.EMPTY_INTS;
-            mValues = ContainerHelpers.EMPTY_INTS;
+            mKeys = EmptyArray.INT;
+            mValues = EmptyArray.INT;
         } else {
-            initialCapacity = ArrayUtils.idealIntArraySize(initialCapacity);
-            mKeys = new int[initialCapacity];
-            mValues = new int[initialCapacity];
+            mKeys = ArrayUtils.newUnpaddedIntArray(initialCapacity);
+            mValues = new int[mKeys.length];
         }
         mSize = 0;
     }
@@ -138,28 +140,8 @@
         } else {
             i = ~i;
 
-            if (mSize >= mKeys.length) {
-                int n = ArrayUtils.idealIntArraySize(mSize + 1);
-
-                int[] nkeys = new int[n];
-                int[] nvalues = new int[n];
-
-                // Log.e("SparseIntArray", "grow " + mKeys.length + " to " + n);
-                System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-                System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-                mKeys = nkeys;
-                mValues = nvalues;
-            }
-
-            if (mSize - i != 0) {
-                // Log.e("SparseIntArray", "move " + (mSize - i));
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = value;
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, value);
             mSize++;
         }
     }
@@ -243,24 +225,9 @@
             return;
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            int n = ArrayUtils.idealIntArraySize(pos + 1);
-
-            int[] nkeys = new int[n];
-            int[] nvalues = new int[n];
-
-            // Log.e("SparseIntArray", "grow " + mKeys.length + " to " + n);
-            System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-            System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-            mKeys = nkeys;
-            mValues = nvalues;
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = value;
-        mSize = pos + 1;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, value);
+        mSize++;
     }
 
     /**
diff --git a/core/java/android/util/SparseLongArray.java b/core/java/android/util/SparseLongArray.java
index 39fc8a3..0166c4a 100644
--- a/core/java/android/util/SparseLongArray.java
+++ b/core/java/android/util/SparseLongArray.java
@@ -17,6 +17,9 @@
 package android.util;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
+
+import libcore.util.EmptyArray;
 
 /**
  * SparseLongArrays map integers to longs.  Unlike a normal array of longs,
@@ -60,12 +63,11 @@
      */
     public SparseLongArray(int initialCapacity) {
         if (initialCapacity == 0) {
-            mKeys = ContainerHelpers.EMPTY_INTS;
-            mValues = ContainerHelpers.EMPTY_LONGS;
+            mKeys = EmptyArray.INT;
+            mValues = EmptyArray.LONG;
         } else {
-            initialCapacity = ArrayUtils.idealLongArraySize(initialCapacity);
-            mKeys = new int[initialCapacity];
-            mValues = new long[initialCapacity];
+            mValues = ArrayUtils.newUnpaddedLongArray(initialCapacity);
+            mKeys = new int[mValues.length];
         }
         mSize = 0;
     }
@@ -138,17 +140,8 @@
         } else {
             i = ~i;
 
-            if (mSize >= mKeys.length) {
-                growKeyAndValueArrays(mSize + 1);
-            }
-
-            if (mSize - i != 0) {
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = value;
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, value);
             mSize++;
         }
     }
@@ -232,27 +225,9 @@
             return;
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            growKeyAndValueArrays(pos + 1);
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = value;
-        mSize = pos + 1;
-    }
-
-    private void growKeyAndValueArrays(int minNeededSize) {
-        int n = ArrayUtils.idealLongArraySize(minNeededSize);
-
-        int[] nkeys = new int[n];
-        long[] nvalues = new long[n];
-
-        System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-        System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-        mKeys = nkeys;
-        mValues = nvalues;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, value);
+        mSize++;
     }
 
     /**
diff --git a/core/java/android/view/AccessibilityInteractionController.java b/core/java/android/view/AccessibilityInteractionController.java
index abae068..477c994 100644
--- a/core/java/android/view/AccessibilityInteractionController.java
+++ b/core/java/android/view/AccessibilityInteractionController.java
@@ -52,7 +52,7 @@
  */
 final class AccessibilityInteractionController {
 
-    private static final boolean ENFORCE_NODE_TREE_CONSISTENT = Build.IS_DEBUGGABLE;
+    private static final boolean ENFORCE_NODE_TREE_CONSISTENT = false;
 
     private final ArrayList<AccessibilityNodeInfo> mTempAccessibilityNodeInfoList =
         new ArrayList<AccessibilityNodeInfo>();
diff --git a/core/java/android/view/AnimationRenderStats.aidl b/core/java/android/view/AnimationRenderStats.aidl
new file mode 100644
index 0000000..4599708
--- /dev/null
+++ b/core/java/android/view/AnimationRenderStats.aidl
@@ -0,0 +1,19 @@
+/**
+ * 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 android.view;
+
+parcelable AnimationRenderStats;
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index d3f63b4..d7a913d 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -204,6 +204,36 @@
     public static final int TYPE_VIRTUAL = 5;
 
     /**
+     * Display state: The display state is unknown.
+     *
+     * @see #getState
+     */
+    public static final int STATE_UNKNOWN = 0;
+
+    /**
+     * Display state: The display is off.
+     *
+     * @see #getState
+     */
+    public static final int STATE_OFF = 1;
+
+    /**
+     * Display state: The display is on.
+     *
+     * @see #getState
+     */
+    public static final int STATE_ON = 2;
+
+    /**
+     * Display state: The display is dozing in a low-power state; it may be showing
+     * system-provided content while the device is in a non-interactive state.
+     *
+     * @see #getState
+     * @see android.os.PowerManager#isInteractive
+     */
+    public static final int STATE_DOZING = 3;
+
+    /**
      * Internal method to create a display.
      * Applications should use {@link android.view.WindowManager#getDefaultDisplay()}
      * or {@link android.hardware.display.DisplayManager#getDisplay}
@@ -630,6 +660,19 @@
     }
 
     /**
+     * Gets the state of the display, such as whether it is on or off.
+     *
+     * @return The state of the display: one of {@link #STATE_OFF}, {@link #STATE_ON},
+     * {@link #STATE_DOZING}, or {@link #STATE_UNKNOWN}.
+     */
+    public int getState() {
+        synchronized (this) {
+            updateDisplayInfoLocked();
+            return mIsValid ? mDisplayInfo.state : STATE_UNKNOWN;
+        }
+    }
+
+    /**
      * Returns true if the specified UID has access to this display.
      * @hide
      */
@@ -720,5 +763,22 @@
                 return Integer.toString(type);
         }
     }
-}
 
+    /**
+     * @hide
+     */
+    public static String stateToString(int state) {
+        switch (state) {
+            case STATE_UNKNOWN:
+                return "UNKNOWN";
+            case STATE_OFF:
+                return "OFF";
+            case STATE_ON:
+                return "ON";
+            case STATE_DOZING:
+                return "DOZING";
+            default:
+                return Integer.toString(state);
+        }
+    }
+}
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index 7fd7b83..b0fe0fa 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -180,6 +180,11 @@
     public float physicalYDpi;
 
     /**
+     * The state of the display, such as {@link android.view.Display#STATE_ON}.
+     */
+    public int state;
+
+    /**
      * The UID of the application that owns this display, or zero if it is owned by the system.
      * <p>
      * If the display is private, then only the owner can use it.
@@ -248,6 +253,7 @@
                 && logicalDensityDpi == other.logicalDensityDpi
                 && physicalXDpi == other.physicalXDpi
                 && physicalYDpi == other.physicalYDpi
+                && state == other.state
                 && ownerUid == other.ownerUid
                 && Objects.equal(ownerPackageName, other.ownerPackageName);
     }
@@ -280,6 +286,7 @@
         logicalDensityDpi = other.logicalDensityDpi;
         physicalXDpi = other.physicalXDpi;
         physicalYDpi = other.physicalYDpi;
+        state = other.state;
         ownerUid = other.ownerUid;
         ownerPackageName = other.ownerPackageName;
     }
@@ -307,6 +314,7 @@
         logicalDensityDpi = source.readInt();
         physicalXDpi = source.readFloat();
         physicalYDpi = source.readFloat();
+        state = source.readInt();
         ownerUid = source.readInt();
         ownerPackageName = source.readString();
     }
@@ -335,6 +343,7 @@
         dest.writeInt(logicalDensityDpi);
         dest.writeFloat(physicalXDpi);
         dest.writeFloat(physicalYDpi);
+        dest.writeInt(state);
         dest.writeInt(ownerUid);
         dest.writeString(ownerPackageName);
     }
@@ -431,7 +440,7 @@
         sb.append(smallestNominalAppHeight);
         sb.append(", ");
         sb.append(refreshRate);
-        sb.append(" fps, rotation");
+        sb.append(" fps, rotation ");
         sb.append(rotation);
         sb.append(", density ");
         sb.append(logicalDensityDpi);
@@ -446,6 +455,8 @@
         if (address != null) {
             sb.append(", address ").append(address);
         }
+        sb.append(", state ");
+        sb.append(Display.stateToString(state));
         if (ownerUid != 0 || ownerPackageName != null) {
             sb.append(", owner ").append(ownerPackageName);
             sb.append(" (uid ").append(ownerUid).append(")");
diff --git a/core/java/android/view/DisplayList.java b/core/java/android/view/DisplayList.java
deleted file mode 100644
index ed52803..0000000
--- a/core/java/android/view/DisplayList.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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 android.view;
-
-/** TODO: Remove once frameworks/webview is updated
- *  @hide
- */
-public class DisplayList {
-    /** @hide */
-    public static final int STATUS_DONE = 0x0;
-}
diff --git a/core/java/android/view/FrameStats.java b/core/java/android/view/FrameStats.java
new file mode 100644
index 0000000..541b336
--- /dev/null
+++ b/core/java/android/view/FrameStats.java
@@ -0,0 +1,97 @@
+/*
+ * 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 android.view;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * This is the base class for frame statistics.
+ */
+public abstract class FrameStats {
+    /**
+     * Undefined time.
+     */
+    public static final long UNDEFINED_TIME_NANO = -1;
+
+    protected long mRefreshPeriodNano;
+    protected long[] mFramesPresentedTimeNano;
+
+    /**
+     * Gets the refresh period of the display hosting the window(s) for
+     * which these statistics apply.
+     *
+     * @return The refresh period in nanoseconds.
+     */
+    public final long getRefreshPeriodNano() {
+        return mRefreshPeriodNano;
+    }
+
+    /**
+     * Gets the number of frames for which there is data.
+     *
+     * @return The number of frames.
+     */
+    public final int getFrameCount() {
+        return mFramesPresentedTimeNano != null
+                ? mFramesPresentedTimeNano.length : 0;
+    }
+
+    /**
+     * Gets the start time of the interval for which these statistics
+     * apply. The start interval is the time when the first frame was
+     * presented.
+     *
+     * @return The start time in nanoseconds or {@link #UNDEFINED_TIME_NANO}
+     *         if there is no frame data.
+     */
+    public final long getStartTimeNano() {
+        if (getFrameCount() <= 0) {
+            return UNDEFINED_TIME_NANO;
+        }
+        return mFramesPresentedTimeNano[0];
+    }
+
+    /**
+     * Gets the end time of the interval for which these statistics
+     * apply. The end interval is the time when the last frame was
+     * presented.
+     *
+     * @return The end time in nanoseconds or {@link #UNDEFINED_TIME_NANO}
+     *         if there is no frame data.
+     */
+    public final long getEndTimeNano() {
+        if (getFrameCount() <= 0) {
+            return UNDEFINED_TIME_NANO;
+        }
+        return mFramesPresentedTimeNano[mFramesPresentedTimeNano.length - 1];
+    }
+
+    /**
+     * Get the time a frame at a given index was presented.
+     *
+     * @param index The frame index.
+     * @return The presented time in nanoseconds or {@link #UNDEFINED_TIME_NANO}
+     *         if the frame is not presented yet.
+     */
+    public final long getFramePresentedTimeNano(int index) {
+        if (mFramesPresentedTimeNano == null) {
+            throw new IndexOutOfBoundsException();
+        }
+        return mFramesPresentedTimeNano[index];
+    }
+}
diff --git a/core/java/android/view/GLRenderer.java b/core/java/android/view/GLRenderer.java
index 90824ab..eba4f7f 100644
--- a/core/java/android/view/GLRenderer.java
+++ b/core/java/android/view/GLRenderer.java
@@ -555,6 +555,32 @@
     }
 
     @Override
+    public void invokeFunctor(long functor, boolean waitForCompletion) {
+        boolean needsContext = !isEnabled() || checkRenderContext() == SURFACE_STATE_ERROR;
+        boolean hasContext = !needsContext;
+
+        if (needsContext) {
+            GLRendererEglContext managedContext =
+                    (GLRendererEglContext) sEglContextStorage.get();
+            if (managedContext != null) {
+                usePbufferSurface(managedContext.getContext());
+                hasContext = true;
+            }
+        }
+
+        try {
+            nInvokeFunctor(functor, hasContext);
+        } finally {
+            if (needsContext) {
+                sEgl.eglMakeCurrent(sEglDisplay, EGL_NO_SURFACE,
+                        EGL_NO_SURFACE, EGL_NO_CONTEXT);
+            }
+        }
+    }
+
+    private static native void nInvokeFunctor(long functor, boolean hasContext);
+
+    @Override
     void destroyHardwareResources(final View view) {
         if (view != null) {
             safelyRun(new Runnable() {
@@ -812,6 +838,11 @@
         }
     }
 
+    @Override
+    void pauseSurface(Surface surface) {
+        // No-op
+    }
+
     boolean initializeEgl() {
         synchronized (sEglLock) {
             if (sEgl == null && sEglConfig == null) {
@@ -1096,8 +1127,7 @@
             }
 
             if (checkRenderContext() != SURFACE_STATE_ERROR) {
-                int status = mCanvas.invokeFunctors(mRedrawClip);
-                handleFunctorStatus(attachInfo, status);
+                mCanvas.invokeFunctors(mRedrawClip);
             }
         }
     }
@@ -1196,14 +1226,14 @@
         }
     }
 
-    void setDisplayListData(long displayList, long newData) {
-        nSetDisplayListData(displayList, newData);
+    @Override
+    void fence() {
+        // Everything is immediate, so this is a no-op
     }
-    private static native void nSetDisplayListData(long displayList, long newData);
 
     private RenderNode buildDisplayList(View view, HardwareCanvas canvas) {
         if (mDrawDelta <= 0) {
-            return view.mDisplayList;
+            return view.mRenderNode;
         }
 
         view.mRecreateDisplayList = (view.mPrivateFlags & View.PFLAG_INVALIDATED)
@@ -1214,12 +1244,12 @@
         canvas.clearLayerUpdates();
 
         Trace.traceBegin(Trace.TRACE_TAG_VIEW, "getDisplayList");
-        RenderNode displayList = view.getDisplayList();
+        RenderNode renderNode = view.getDisplayList();
         Trace.traceEnd(Trace.TRACE_TAG_VIEW);
 
         endBuildDisplayListProfiling(buildDisplayListStartTime);
 
-        return displayList;
+        return renderNode;
     }
 
     private Rect beginFrame(HardwareCanvas canvas, Rect dirty, int surfaceState) {
@@ -1287,7 +1317,7 @@
         }
 
         Trace.traceBegin(Trace.TRACE_TAG_VIEW, "drawDisplayList");
-        nUpdateRenderNodeProperties(displayList.getNativeDisplayList());
+        nPrepareTree(displayList.getNativeDisplayList());
         try {
             status |= canvas.drawDisplayList(displayList, mRedrawClip,
                     RenderNode.FLAG_CLIP_CHILDREN);
@@ -1301,7 +1331,6 @@
             mProfileData[mProfileCurrentFrame + 1] = total;
         }
 
-        handleFunctorStatus(attachInfo, status);
         return status;
     }
 
@@ -1337,26 +1366,6 @@
         }
     }
 
-    private void handleFunctorStatus(View.AttachInfo attachInfo, int status) {
-        // If the draw flag is set, functors will be invoked while executing
-        // the tree of display lists
-        if ((status & RenderNode.STATUS_DRAW) != 0) {
-            if (mRedrawClip.isEmpty()) {
-                attachInfo.mViewRootImpl.invalidate();
-            } else {
-                attachInfo.mViewRootImpl.invalidateChildInParent(null, mRedrawClip);
-                mRedrawClip.setEmpty();
-            }
-        }
-
-        if ((status & RenderNode.STATUS_INVOKE) != 0 ||
-                attachInfo.mHandler.hasCallbacks(mFunctorsRunnable)) {
-            attachInfo.mHandler.removeCallbacks(mFunctorsRunnable);
-            mFunctorsRunnable.attachInfo = attachInfo;
-            attachInfo.mHandler.postDelayed(mFunctorsRunnable, FUNCTOR_PROCESS_DELAY);
-        }
-    }
-
     @Override
     void detachFunctor(long functor) {
         if (mCanvas != null) {
@@ -1467,7 +1476,7 @@
 
     static native void nDestroyLayer(long layerPtr);
 
-    private static native void nUpdateRenderNodeProperties(long displayListPtr);
+    private static native void nPrepareTree(long displayListPtr);
 
     class DrawPerformanceDataProvider extends GraphDataProvider {
         private final int mGraphType;
diff --git a/core/java/android/view/HardwareCanvas.java b/core/java/android/view/HardwareCanvas.java
index f695b20..233f846 100644
--- a/core/java/android/view/HardwareCanvas.java
+++ b/core/java/android/view/HardwareCanvas.java
@@ -23,7 +23,7 @@
 
 /**
  * Hardware accelerated canvas.
- * 
+ *
  * @hide
  */
 public abstract class HardwareCanvas extends Canvas {
@@ -40,7 +40,7 @@
 
     /**
      * Invoked before any drawing operation is performed in this canvas.
-     * 
+     *
      * @param dirty The dirty rectangle to update, can be null.
      * @return {@link RenderNode#STATUS_DREW} if anything was drawn (such as a call to clear
      *         the canvas).
@@ -70,13 +70,11 @@
      * Draws the specified display list onto this canvas.
      *
      * @param displayList The display list to replay.
-     * @param dirty The dirty region to redraw in the next pass, matters only
-     *        if this method returns {@link RenderNode#STATUS_DRAW}, can be null.
+     * @param dirty Ignored, can be null.
      * @param flags Optional flags about drawing, see {@link RenderNode} for
      *              the possible flags.
      *
-     * @return One of {@link RenderNode#STATUS_DONE}, {@link RenderNode#STATUS_DRAW}, or
-     *         {@link RenderNode#STATUS_INVOKE}, or'd with {@link RenderNode#STATUS_DREW}
+     * @return One of {@link RenderNode#STATUS_DONE} or {@link RenderNode#STATUS_DREW}
      *         if anything was drawn.
      *
      * @hide
@@ -101,9 +99,8 @@
      * This function may return true if an invalidation is needed after the call.
      *
      * @param drawGLFunction A native function pointer
-     *                       
-     * @return One of {@link RenderNode#STATUS_DONE}, {@link RenderNode#STATUS_DRAW} or
-     *         {@link RenderNode#STATUS_INVOKE}
+     *
+     * @return {@link RenderNode#STATUS_DONE}
      *
      * @hide
      */
@@ -114,11 +111,10 @@
 
     /**
      * Invoke all the functors who requested to be invoked during the previous frame.
-     * 
-     * @param dirty The region to redraw when the functors return {@link RenderNode#STATUS_DRAW}
-     *              
-     * @return One of {@link RenderNode#STATUS_DONE}, {@link RenderNode#STATUS_DRAW} or
-     *         {@link RenderNode#STATUS_INVOKE}
+     *
+     * @param dirty Ignored
+     *
+     * @return Ignored
      *
      * @hide
      */
@@ -154,7 +150,7 @@
 
     /**
      * Indicates that the specified layer must be updated as soon as possible.
-     * 
+     *
      * @param layer The layer to update
      *
      * @see #clearLayerUpdates()
@@ -187,7 +183,7 @@
 
     /**
      * Removes all enqueued layer updates.
-     * 
+     *
      * @see #pushLayerUpdate(HardwareLayer)
      *
      * @hide
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index 34efcf5..56d96e1 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -182,7 +182,7 @@
     public static boolean sSystemRendererDisabled = false;
 
     /** @hide */
-    public static boolean sUseRenderThread = false;
+    public static boolean sUseRenderThread = true;
 
     private boolean mEnabled;
     private boolean mRequested = true;
@@ -234,6 +234,13 @@
     abstract void updateSurface(Surface surface) throws OutOfResourcesException;
 
     /**
+     * Stops any rendering into the surface. Use this if it is unclear whether
+     * or not the surface used by the HardwareRenderer will be changing. It
+     * Suspends any rendering into the surface, but will not do any destruction
+     */
+    abstract void pauseSurface(Surface surface);
+
+    /**
      * Destroys all hardware rendering resources associated with the specified
      * view hierarchy.
      *
@@ -438,6 +445,17 @@
     abstract void attachFunctor(View.AttachInfo attachInfo, long functor);
 
     /**
+     * Schedules the functor for execution in either kModeProcess or
+     * kModeProcessNoContext, depending on whether or not there is an EGLContext.
+     *
+     * @param functor The native functor to invoke
+     * @param waitForCompletion If true, this will not return until the functor
+     *                          has invoked. If false, the functor may be invoked
+     *                          asynchronously.
+     */
+    public abstract void invokeFunctor(long functor, boolean waitForCompletion);
+
+    /**
      * Initializes the hardware renderer for the specified surface and setup the
      * renderer for drawing, if needed. This is invoked when the ViewAncestor has
      * potentially lost the hardware renderer. The hardware renderer should be
@@ -562,7 +580,10 @@
         mRequested = requested;
     }
 
-    abstract void setDisplayListData(long displayList, long newData);
+    /**
+     * Blocks until all previously queued work has completed.
+     */
+    abstract void fence();
 
     /**
      * Describes a series of frames that should be drawn on screen as a graph.
diff --git a/core/java/android/view/IWindow.aidl b/core/java/android/view/IWindow.aidl
index 8ec07ef..3670eed 100644
--- a/core/java/android/view/IWindow.aidl
+++ b/core/java/android/view/IWindow.aidl
@@ -50,7 +50,6 @@
     void moved(int newX, int newY);
     void dispatchAppVisibility(boolean visible);
     void dispatchGetNewSurface();
-    void dispatchScreenState(boolean on);
 
     /**
      * Tell the window that it is either gaining or losing focus.  Keep it up
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 8f542bb..7d13399 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -37,6 +37,7 @@
 import android.view.InputChannel;
 import android.view.InputDevice;
 import android.view.IInputFilter;
+import android.view.WindowContentFrameStats;
 
 /**
  * System private interface to the window manager.
@@ -233,4 +234,25 @@
      * Device is in safe mode.
      */
     boolean isSafeModeEnabled();
+
+    /**
+     * Enables the screen if all conditions are met.
+     */
+    void enableScreenIfNeeded();
+
+    /**
+     * Clears the frame statistics for a given window.
+     *
+     * @param token The window token.
+     * @return Whether the frame statistics were cleared.
+     */
+    boolean clearWindowContentFrameStats(IBinder token);
+
+    /**
+     * Gets the content frame statistics for a given window.
+     *
+     * @param token The window token.
+     * @return The frame statistics or null if the window does not exist.
+     */
+    WindowContentFrameStats getWindowContentFrameStats(IBinder token);
 }
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
index 0b12cbe..ae5f37e 100644
--- a/core/java/android/view/InputDevice.java
+++ b/core/java/android/view/InputDevice.java
@@ -579,6 +579,18 @@
     }
 
     /**
+     * Determines whether the input device supports the given source or sources.
+     *
+     * @param source The input source or sources to check against. This can be a generic device
+     * type such as {@link InputDevice#SOURCE_MOUSE}, a more generic device class, such as
+     * {@link InputDevice#SOURCE_CLASS_POINTER}, or a combination of sources bitwise ORed together.
+     * @return Whether the device can produce all of the given sources.
+     */
+    public boolean supportsSource(int source) {
+        return (mSources & source) == source;
+    }
+
+    /**
      * Gets the keyboard type.
      * @return The keyboard type.
      */
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index c183f08..c3f429c 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -1166,7 +1166,11 @@
 
     /**
      * This mask is set if the device woke because of this key event.
+     *
+     * @deprecated This flag will never be set by the system since the system
+     * consumes all wake keys itself.
      */
+    @Deprecated
     public static final int FLAG_WOKE_HERE = 0x1;
 
     /**
diff --git a/core/java/android/view/LayoutInflater.java b/core/java/android/view/LayoutInflater.java
index c4fac46..e19bda9 100644
--- a/core/java/android/view/LayoutInflater.java
+++ b/core/java/android/view/LayoutInflater.java
@@ -590,6 +590,7 @@
             Object[] args = mConstructorArgs;
             args[1] = attrs;
 
+            constructor.setAccessible(true);
             final View view = constructor.newInstance(args);
             if (view instanceof ViewStub) {
                 // always use ourselves when inflating ViewStub later
diff --git a/core/java/android/view/RenderNode.java b/core/java/android/view/RenderNode.java
index 6c8c3c7..30e4281 100644
--- a/core/java/android/view/RenderNode.java
+++ b/core/java/android/view/RenderNode.java
@@ -16,6 +16,7 @@
 
 package android.view;
 
+import android.annotation.NonNull;
 import android.graphics.Matrix;
 import android.graphics.Outline;
 
@@ -173,12 +174,10 @@
     public static final int STATUS_DREW = 0x4;
 
     private boolean mValid;
-    private final long mNativeDisplayList;
-    private HardwareRenderer mRenderer;
+    private final long mNativeRenderNode;
 
     private RenderNode(String name) {
-        mNativeDisplayList = nCreate();
-        nSetDisplayListName(mNativeDisplayList, name);
+        mNativeRenderNode = nCreate(name);
     }
 
     /**
@@ -196,18 +195,20 @@
     }
 
     /**
-     * Starts recording the display list. All operations performed on the
-     * returned canvas are recorded and stored in this display list.
+     * Starts recording a display list for the render node. All
+     * operations performed on the returned canvas are recorded and
+     * stored in this display list.
      *
-     * Calling this method will mark the display list invalid until
-     * {@link #end()} is called. Only valid display lists can be replayed.
+     * Calling this method will mark the render node invalid until
+     * {@link #end(HardwareCanvas)} is called.
+     * Only valid render nodes can be replayed.
      *
-     * @param width The width of the display list's viewport
-     * @param height The height of the display list's viewport
+     * @param width The width of the recording viewport
+     * @param height The height of the recording viewport
      *
      * @return A canvas to record drawing operations.
      *
-     * @see #end()
+     * @see #end(HardwareCanvas)
      * @see #isValid()
      */
     public HardwareCanvas start(int width, int height) {
@@ -226,21 +227,15 @@
      * @see #start(int, int)
      * @see #isValid()
      */
-    public void end(HardwareRenderer renderer, HardwareCanvas endCanvas) {
+    public void end(HardwareCanvas endCanvas) {
         if (!(endCanvas instanceof GLES20RecordingCanvas)) {
             throw new IllegalArgumentException("Passed an invalid canvas to end!");
         }
 
         GLES20RecordingCanvas canvas = (GLES20RecordingCanvas) endCanvas;
         canvas.onPostDraw();
-        long displayListData = canvas.finishRecording();
-        if (renderer != mRenderer) {
-            // If we are changing renderers first destroy with the old
-            // renderer, then set with the new one
-            destroyDisplayListData();
-        }
-        mRenderer = renderer;
-        setDisplayListData(displayListData);
+        long renderNodeData = canvas.finishRecording();
+        nSetDisplayListData(mNativeRenderNode, renderNodeData);
         canvas.recycle();
         mValid = true;
     }
@@ -255,22 +250,13 @@
     public void destroyDisplayListData() {
         if (!mValid) return;
 
-        setDisplayListData(0);
-        mRenderer = null;
+        nSetDisplayListData(mNativeRenderNode, 0);
         mValid = false;
     }
 
-    private void setDisplayListData(long newData) {
-        if (mRenderer != null) {
-            mRenderer.setDisplayListData(mNativeDisplayList, newData);
-        } else {
-            throw new IllegalStateException("Trying to set data without a renderer! data=" + newData);
-        }
-    }
-
     /**
-     * Returns whether the display list is currently usable. If this returns false,
-     * the display list should be re-recorded prior to replaying it.
+     * Returns whether the RenderNode's display list content is currently usable.
+     * If this returns false, the display list should be re-recorded prior to replaying it.
      *
      * @return boolean true if the display list is able to be replayed, false otherwise.
      */
@@ -280,11 +266,27 @@
         if (!mValid) {
             throw new IllegalStateException("The display list is not valid.");
         }
-        return mNativeDisplayList;
+        return mNativeRenderNode;
     }
 
     ///////////////////////////////////////////////////////////////////////////
-    // DisplayList Property Setters
+    // Matrix manipulation
+    ///////////////////////////////////////////////////////////////////////////
+
+    public boolean hasIdentityMatrix() {
+        return nHasIdentityMatrix(mNativeRenderNode);
+    }
+
+    public void getMatrix(@NonNull Matrix outMatrix) {
+        nGetTransformMatrix(mNativeRenderNode, outMatrix.native_instance);
+    }
+
+    public void getInverseMatrix(@NonNull Matrix outMatrix) {
+        nGetInverseTransformMatrix(mNativeRenderNode, outMatrix.native_instance);
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+    // RenderProperty Setters
     ///////////////////////////////////////////////////////////////////////////
 
     /**
@@ -297,30 +299,28 @@
      * @hide
      */
     public void setCaching(boolean caching) {
-        nSetCaching(mNativeDisplayList, caching);
+        nSetCaching(mNativeRenderNode, caching);
     }
 
     /**
-     * Set whether the display list should clip itself to its bounds. This property is controlled by
+     * Set whether the Render node should clip itself to its bounds. This property is controlled by
      * the view's parent.
      *
      * @param clipToBounds true if the display list should clip to its bounds
      */
     public void setClipToBounds(boolean clipToBounds) {
-        nSetClipToBounds(mNativeDisplayList, clipToBounds);
+        nSetClipToBounds(mNativeRenderNode, clipToBounds);
     }
 
     /**
      * Sets whether the display list should be drawn immediately after the
-     * closest ancestor display list where isolateZVolume is true. If the
-     * display list itself satisfies this constraint, changing this attribute
-     * has no effect on drawing order.
+     * closest ancestor display list containing a projection receiver.
      *
      * @param shouldProject true if the display list should be projected onto a
      *            containing volume.
      */
     public void setProjectBackwards(boolean shouldProject) {
-        nSetProjectBackwards(mNativeDisplayList, shouldProject);
+        nSetProjectBackwards(mNativeRenderNode, shouldProject);
     }
 
     /**
@@ -329,7 +329,7 @@
      * ProjectBackwards=true directly on top of it. Default value is false.
      */
     public void setProjectionReceiver(boolean shouldRecieve) {
-        nSetProjectionReceiver(mNativeDisplayList, shouldRecieve);
+        nSetProjectionReceiver(mNativeRenderNode, shouldRecieve);
     }
 
     /**
@@ -340,14 +340,14 @@
      */
     public void setOutline(Outline outline) {
         if (outline == null) {
-            nSetOutlineEmpty(mNativeDisplayList);
+            nSetOutlineEmpty(mNativeRenderNode);
         } else if (!outline.isValid()) {
             throw new IllegalArgumentException("Outline must be valid");
         } else if (outline.mRect != null) {
-            nSetOutlineRoundRect(mNativeDisplayList, outline.mRect.left, outline.mRect.top,
+            nSetOutlineRoundRect(mNativeRenderNode, outline.mRect.left, outline.mRect.top,
                     outline.mRect.right, outline.mRect.bottom, outline.mRadius);
         } else if (outline.mPath != null) {
-            nSetOutlineConvexPath(mNativeDisplayList, outline.mPath.mNativePath);
+            nSetOutlineConvexPath(mNativeRenderNode, outline.mPath.mNativePath);
         }
     }
 
@@ -357,7 +357,7 @@
      * @param clipToOutline true if clipping to the outline.
      */
     public void setClipToOutline(boolean clipToOutline) {
-        nSetClipToOutline(mNativeDisplayList, clipToOutline);
+        nSetClipToOutline(mNativeRenderNode, clipToOutline);
     }
 
     /**
@@ -365,7 +365,7 @@
      */
     public void setRevealClip(boolean shouldClip, boolean inverseClip,
             float x, float y, float radius) {
-        nSetRevealClip(mNativeDisplayList, shouldClip, inverseClip, x, y, radius);
+        nSetRevealClip(mNativeRenderNode, shouldClip, inverseClip, x, y, radius);
     }
 
     /**
@@ -373,12 +373,9 @@
      * transforms (such as {@link #setScaleX(float)}, {@link #setRotation(float)}, etc.)
      *
      * @param matrix A transform matrix to apply to this display list
-     *
-     * @see #getMatrix(android.graphics.Matrix)
-     * @see #getMatrix()
      */
     public void setStaticMatrix(Matrix matrix) {
-        nSetStaticMatrix(mNativeDisplayList, matrix.native_instance);
+        nSetStaticMatrix(mNativeRenderNode, matrix.native_instance);
     }
 
     /**
@@ -392,7 +389,7 @@
      * @hide
      */
     public void setAnimationMatrix(Matrix matrix) {
-        nSetAnimationMatrix(mNativeDisplayList,
+        nSetAnimationMatrix(mNativeRenderNode,
                 (matrix != null) ? matrix.native_instance : 0);
     }
 
@@ -405,7 +402,7 @@
      * @see #getAlpha()
      */
     public void setAlpha(float alpha) {
-        nSetAlpha(mNativeDisplayList, alpha);
+        nSetAlpha(mNativeRenderNode, alpha);
     }
 
     /**
@@ -416,7 +413,7 @@
      * @see #setAlpha(float)
      */
     public float getAlpha() {
-        return nGetAlpha(mNativeDisplayList);
+        return nGetAlpha(mNativeRenderNode);
     }
 
     /**
@@ -431,7 +428,7 @@
      * @see #hasOverlappingRendering()
      */
     public void setHasOverlappingRendering(boolean hasOverlappingRendering) {
-        nSetHasOverlappingRendering(mNativeDisplayList, hasOverlappingRendering);
+        nSetHasOverlappingRendering(mNativeRenderNode, hasOverlappingRendering);
     }
 
     /**
@@ -443,7 +440,7 @@
      */
     public boolean hasOverlappingRendering() {
         //noinspection SimplifiableIfStatement
-        return nHasOverlappingRendering(mNativeDisplayList);
+        return nHasOverlappingRendering(mNativeRenderNode);
     }
 
     /**
@@ -455,7 +452,7 @@
      * @see #getTranslationX()
      */
     public void setTranslationX(float translationX) {
-        nSetTranslationX(mNativeDisplayList, translationX);
+        nSetTranslationX(mNativeRenderNode, translationX);
     }
 
     /**
@@ -464,7 +461,7 @@
      * @see #setTranslationX(float)
      */
     public float getTranslationX() {
-        return nGetTranslationX(mNativeDisplayList);
+        return nGetTranslationX(mNativeRenderNode);
     }
 
     /**
@@ -476,7 +473,7 @@
      * @see #getTranslationY()
      */
     public void setTranslationY(float translationY) {
-        nSetTranslationY(mNativeDisplayList, translationY);
+        nSetTranslationY(mNativeRenderNode, translationY);
     }
 
     /**
@@ -485,7 +482,7 @@
      * @see #setTranslationY(float)
      */
     public float getTranslationY() {
-        return nGetTranslationY(mNativeDisplayList);
+        return nGetTranslationY(mNativeRenderNode);
     }
 
     /**
@@ -495,7 +492,7 @@
      * @see #getTranslationZ()
      */
     public void setTranslationZ(float translationZ) {
-        nSetTranslationZ(mNativeDisplayList, translationZ);
+        nSetTranslationZ(mNativeRenderNode, translationZ);
     }
 
     /**
@@ -504,7 +501,7 @@
      * @see #setTranslationZ(float)
      */
     public float getTranslationZ() {
-        return nGetTranslationZ(mNativeDisplayList);
+        return nGetTranslationZ(mNativeRenderNode);
     }
 
     /**
@@ -516,7 +513,7 @@
      * @see #getRotation()
      */
     public void setRotation(float rotation) {
-        nSetRotation(mNativeDisplayList, rotation);
+        nSetRotation(mNativeRenderNode, rotation);
     }
 
     /**
@@ -525,7 +522,7 @@
      * @see #setRotation(float)
      */
     public float getRotation() {
-        return nGetRotation(mNativeDisplayList);
+        return nGetRotation(mNativeRenderNode);
     }
 
     /**
@@ -537,7 +534,7 @@
      * @see #getRotationX()
      */
     public void setRotationX(float rotationX) {
-        nSetRotationX(mNativeDisplayList, rotationX);
+        nSetRotationX(mNativeRenderNode, rotationX);
     }
 
     /**
@@ -546,7 +543,7 @@
      * @see #setRotationX(float)
      */
     public float getRotationX() {
-        return nGetRotationX(mNativeDisplayList);
+        return nGetRotationX(mNativeRenderNode);
     }
 
     /**
@@ -558,7 +555,7 @@
      * @see #getRotationY()
      */
     public void setRotationY(float rotationY) {
-        nSetRotationY(mNativeDisplayList, rotationY);
+        nSetRotationY(mNativeRenderNode, rotationY);
     }
 
     /**
@@ -567,7 +564,7 @@
      * @see #setRotationY(float)
      */
     public float getRotationY() {
-        return nGetRotationY(mNativeDisplayList);
+        return nGetRotationY(mNativeRenderNode);
     }
 
     /**
@@ -579,7 +576,7 @@
      * @see #getScaleX()
      */
     public void setScaleX(float scaleX) {
-        nSetScaleX(mNativeDisplayList, scaleX);
+        nSetScaleX(mNativeRenderNode, scaleX);
     }
 
     /**
@@ -588,7 +585,7 @@
      * @see #setScaleX(float)
      */
     public float getScaleX() {
-        return nGetScaleX(mNativeDisplayList);
+        return nGetScaleX(mNativeRenderNode);
     }
 
     /**
@@ -600,7 +597,7 @@
      * @see #getScaleY()
      */
     public void setScaleY(float scaleY) {
-        nSetScaleY(mNativeDisplayList, scaleY);
+        nSetScaleY(mNativeRenderNode, scaleY);
     }
 
     /**
@@ -609,29 +606,7 @@
      * @see #setScaleY(float)
      */
     public float getScaleY() {
-        return nGetScaleY(mNativeDisplayList);
-    }
-
-    /**
-     * Sets all of the transform-related values of the display list
-     *
-     * @param alpha The alpha value of the display list
-     * @param translationX The translationX value of the display list
-     * @param translationY The translationY value of the display list
-     * @param rotation The rotation value of the display list
-     * @param rotationX The rotationX value of the display list
-     * @param rotationY The rotationY value of the display list
-     * @param scaleX The scaleX value of the display list
-     * @param scaleY The scaleY value of the display list
-     *
-     * @hide
-     */
-    public void setTransformationInfo(float alpha,
-            float translationX, float translationY, float translationZ,
-            float rotation, float rotationX, float rotationY, float scaleX, float scaleY) {
-        nSetTransformationInfo(mNativeDisplayList, alpha,
-                translationX, translationY, translationZ,
-                rotation, rotationX, rotationY, scaleX, scaleY);
+        return nGetScaleY(mNativeRenderNode);
     }
 
     /**
@@ -643,7 +618,7 @@
      * @see #getPivotX()
      */
     public void setPivotX(float pivotX) {
-        nSetPivotX(mNativeDisplayList, pivotX);
+        nSetPivotX(mNativeRenderNode, pivotX);
     }
 
     /**
@@ -652,7 +627,7 @@
      * @see #setPivotX(float)
      */
     public float getPivotX() {
-        return nGetPivotX(mNativeDisplayList);
+        return nGetPivotX(mNativeRenderNode);
     }
 
     /**
@@ -664,7 +639,7 @@
      * @see #getPivotY()
      */
     public void setPivotY(float pivotY) {
-        nSetPivotY(mNativeDisplayList, pivotY);
+        nSetPivotY(mNativeRenderNode, pivotY);
     }
 
     /**
@@ -673,7 +648,11 @@
      * @see #setPivotY(float)
      */
     public float getPivotY() {
-        return nGetPivotY(mNativeDisplayList);
+        return nGetPivotY(mNativeRenderNode);
+    }
+
+    public boolean isPivotExplicitlySet() {
+        return nIsPivotExplicitlySet(mNativeRenderNode);
     }
 
     /**
@@ -687,7 +666,7 @@
      * @see #getCameraDistance()
      */
     public void setCameraDistance(float distance) {
-        nSetCameraDistance(mNativeDisplayList, distance);
+        nSetCameraDistance(mNativeRenderNode, distance);
     }
 
     /**
@@ -696,7 +675,7 @@
      * @see #setCameraDistance(float)
      */
     public float getCameraDistance() {
-        return nGetCameraDistance(mNativeDisplayList);
+        return nGetCameraDistance(mNativeRenderNode);
     }
 
     /**
@@ -708,7 +687,7 @@
      * @see #getLeft()
      */
     public void setLeft(int left) {
-        nSetLeft(mNativeDisplayList, left);
+        nSetLeft(mNativeRenderNode, left);
     }
 
     /**
@@ -717,7 +696,7 @@
      * @see #setLeft(int)
      */
     public float getLeft() {
-        return nGetLeft(mNativeDisplayList);
+        return nGetLeft(mNativeRenderNode);
     }
 
     /**
@@ -729,7 +708,7 @@
      * @see #getTop()
      */
     public void setTop(int top) {
-        nSetTop(mNativeDisplayList, top);
+        nSetTop(mNativeRenderNode, top);
     }
 
     /**
@@ -738,7 +717,7 @@
      * @see #setTop(int)
      */
     public float getTop() {
-        return nGetTop(mNativeDisplayList);
+        return nGetTop(mNativeRenderNode);
     }
 
     /**
@@ -750,7 +729,7 @@
      * @see #getRight()
      */
     public void setRight(int right) {
-        nSetRight(mNativeDisplayList, right);
+        nSetRight(mNativeRenderNode, right);
     }
 
     /**
@@ -759,7 +738,7 @@
      * @see #setRight(int)
      */
     public float getRight() {
-        return nGetRight(mNativeDisplayList);
+        return nGetRight(mNativeRenderNode);
     }
 
     /**
@@ -771,7 +750,7 @@
      * @see #getBottom()
      */
     public void setBottom(int bottom) {
-        nSetBottom(mNativeDisplayList, bottom);
+        nSetBottom(mNativeRenderNode, bottom);
     }
 
     /**
@@ -780,7 +759,7 @@
      * @see #setBottom(int)
      */
     public float getBottom() {
-        return nGetBottom(mNativeDisplayList);
+        return nGetBottom(mNativeRenderNode);
     }
 
     /**
@@ -797,7 +776,7 @@
      * @see View#setBottom(int)
      */
     public void setLeftTopRightBottom(int left, int top, int right, int bottom) {
-        nSetLeftTopRightBottom(mNativeDisplayList, left, top, right, bottom);
+        nSetLeftTopRightBottom(mNativeRenderNode, left, top, right, bottom);
     }
 
     /**
@@ -809,7 +788,7 @@
      * @see View#offsetLeftAndRight(int)
      */
     public void offsetLeftAndRight(float offset) {
-        nOffsetLeftAndRight(mNativeDisplayList, offset);
+        nOffsetLeftAndRight(mNativeRenderNode, offset);
     }
 
     /**
@@ -821,7 +800,7 @@
      * @see View#offsetTopAndBottom(int)
      */
     public void offsetTopAndBottom(float offset) {
-        nOffsetTopAndBottom(mNativeDisplayList, offset);
+        nOffsetTopAndBottom(mNativeRenderNode, offset);
     }
 
     /**
@@ -831,76 +810,80 @@
      * @hide
      */
     public void output() {
-        nOutput(mNativeDisplayList);
+        nOutput(mNativeRenderNode);
     }
 
     ///////////////////////////////////////////////////////////////////////////
     // Native methods
     ///////////////////////////////////////////////////////////////////////////
 
-    private static native long nCreate();
-    private static native void nDestroyDisplayList(long displayList);
-    private static native void nSetDisplayListName(long displayList, String name);
+    private static native long nCreate(String name);
+    private static native void nDestroyRenderNode(long renderNode);
+    private static native void nSetDisplayListData(long renderNode, long newData);
+
+    // Matrix
+
+    private static native void nGetTransformMatrix(long renderNode, long nativeMatrix);
+    private static native void nGetInverseTransformMatrix(long renderNode, long nativeMatrix);
+    private static native boolean nHasIdentityMatrix(long renderNode);
 
     // Properties
 
-    private static native void nOffsetTopAndBottom(long displayList, float offset);
-    private static native void nOffsetLeftAndRight(long displayList, float offset);
-    private static native void nSetLeftTopRightBottom(long displayList, int left, int top,
+    private static native void nOffsetTopAndBottom(long renderNode, float offset);
+    private static native void nOffsetLeftAndRight(long renderNode, float offset);
+    private static native void nSetLeftTopRightBottom(long renderNode, int left, int top,
             int right, int bottom);
-    private static native void nSetBottom(long displayList, int bottom);
-    private static native void nSetRight(long displayList, int right);
-    private static native void nSetTop(long displayList, int top);
-    private static native void nSetLeft(long displayList, int left);
-    private static native void nSetCameraDistance(long displayList, float distance);
-    private static native void nSetPivotY(long displayList, float pivotY);
-    private static native void nSetPivotX(long displayList, float pivotX);
-    private static native void nSetCaching(long displayList, boolean caching);
-    private static native void nSetClipToBounds(long displayList, boolean clipToBounds);
-    private static native void nSetProjectBackwards(long displayList, boolean shouldProject);
-    private static native void nSetProjectionReceiver(long displayList, boolean shouldRecieve);
-    private static native void nSetOutlineRoundRect(long displayList, int left, int top,
+    private static native void nSetBottom(long renderNode, int bottom);
+    private static native void nSetRight(long renderNode, int right);
+    private static native void nSetTop(long renderNode, int top);
+    private static native void nSetLeft(long renderNode, int left);
+    private static native void nSetCameraDistance(long renderNode, float distance);
+    private static native void nSetPivotY(long renderNode, float pivotY);
+    private static native void nSetPivotX(long renderNode, float pivotX);
+    private static native void nSetCaching(long renderNode, boolean caching);
+    private static native void nSetClipToBounds(long renderNode, boolean clipToBounds);
+    private static native void nSetProjectBackwards(long renderNode, boolean shouldProject);
+    private static native void nSetProjectionReceiver(long renderNode, boolean shouldRecieve);
+    private static native void nSetOutlineRoundRect(long renderNode, int left, int top,
             int right, int bottom, float radius);
-    private static native void nSetOutlineConvexPath(long displayList, long nativePath);
-    private static native void nSetOutlineEmpty(long displayList);
-    private static native void nSetClipToOutline(long displayList, boolean clipToOutline);
-    private static native void nSetRevealClip(long displayList,
+    private static native void nSetOutlineConvexPath(long renderNode, long nativePath);
+    private static native void nSetOutlineEmpty(long renderNode);
+    private static native void nSetClipToOutline(long renderNode, boolean clipToOutline);
+    private static native void nSetRevealClip(long renderNode,
             boolean shouldClip, boolean inverseClip, float x, float y, float radius);
-    private static native void nSetAlpha(long displayList, float alpha);
-    private static native void nSetHasOverlappingRendering(long displayList,
+    private static native void nSetAlpha(long renderNode, float alpha);
+    private static native void nSetHasOverlappingRendering(long renderNode,
             boolean hasOverlappingRendering);
-    private static native void nSetTranslationX(long displayList, float translationX);
-    private static native void nSetTranslationY(long displayList, float translationY);
-    private static native void nSetTranslationZ(long displayList, float translationZ);
-    private static native void nSetRotation(long displayList, float rotation);
-    private static native void nSetRotationX(long displayList, float rotationX);
-    private static native void nSetRotationY(long displayList, float rotationY);
-    private static native void nSetScaleX(long displayList, float scaleX);
-    private static native void nSetScaleY(long displayList, float scaleY);
-    private static native void nSetTransformationInfo(long displayList, float alpha,
-            float translationX, float translationY, float translationZ,
-            float rotation, float rotationX, float rotationY, float scaleX, float scaleY);
-    private static native void nSetStaticMatrix(long displayList, long nativeMatrix);
-    private static native void nSetAnimationMatrix(long displayList, long animationMatrix);
+    private static native void nSetTranslationX(long renderNode, float translationX);
+    private static native void nSetTranslationY(long renderNode, float translationY);
+    private static native void nSetTranslationZ(long renderNode, float translationZ);
+    private static native void nSetRotation(long renderNode, float rotation);
+    private static native void nSetRotationX(long renderNode, float rotationX);
+    private static native void nSetRotationY(long renderNode, float rotationY);
+    private static native void nSetScaleX(long renderNode, float scaleX);
+    private static native void nSetScaleY(long renderNode, float scaleY);
+    private static native void nSetStaticMatrix(long renderNode, long nativeMatrix);
+    private static native void nSetAnimationMatrix(long renderNode, long animationMatrix);
 
-    private static native boolean nHasOverlappingRendering(long displayList);
-    private static native float nGetAlpha(long displayList);
-    private static native float nGetLeft(long displayList);
-    private static native float nGetTop(long displayList);
-    private static native float nGetRight(long displayList);
-    private static native float nGetBottom(long displayList);
-    private static native float nGetCameraDistance(long displayList);
-    private static native float nGetScaleX(long displayList);
-    private static native float nGetScaleY(long displayList);
-    private static native float nGetTranslationX(long displayList);
-    private static native float nGetTranslationY(long displayList);
-    private static native float nGetTranslationZ(long displayList);
-    private static native float nGetRotation(long displayList);
-    private static native float nGetRotationX(long displayList);
-    private static native float nGetRotationY(long displayList);
-    private static native float nGetPivotX(long displayList);
-    private static native float nGetPivotY(long displayList);
-    private static native void nOutput(long displayList);
+    private static native boolean nHasOverlappingRendering(long renderNode);
+    private static native float nGetAlpha(long renderNode);
+    private static native float nGetLeft(long renderNode);
+    private static native float nGetTop(long renderNode);
+    private static native float nGetRight(long renderNode);
+    private static native float nGetBottom(long renderNode);
+    private static native float nGetCameraDistance(long renderNode);
+    private static native float nGetScaleX(long renderNode);
+    private static native float nGetScaleY(long renderNode);
+    private static native float nGetTranslationX(long renderNode);
+    private static native float nGetTranslationY(long renderNode);
+    private static native float nGetTranslationZ(long renderNode);
+    private static native float nGetRotation(long renderNode);
+    private static native float nGetRotationX(long renderNode);
+    private static native float nGetRotationY(long renderNode);
+    private static native boolean nIsPivotExplicitlySet(long renderNode);
+    private static native float nGetPivotX(long renderNode);
+    private static native float nGetPivotY(long renderNode);
+    private static native void nOutput(long renderNode);
 
     ///////////////////////////////////////////////////////////////////////////
     // Finalization
@@ -909,8 +892,7 @@
     @Override
     protected void finalize() throws Throwable {
         try {
-            destroyDisplayListData();
-            nDestroyDisplayList(mNativeDisplayList);
+            nDestroyRenderNode(mNativeRenderNode);
         } finally {
             super.finalize();
         }
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 5a8d2c8..2d55a01 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -20,7 +20,6 @@
 import android.graphics.Bitmap;
 import android.graphics.Rect;
 import android.graphics.Region;
-import android.view.Surface;
 import android.os.IBinder;
 import android.util.Log;
 import android.view.Surface.OutOfResourcesException;
@@ -59,6 +58,11 @@
     private static native void nativeSetWindowCrop(long nativeObject, int l, int t, int r, int b);
     private static native void nativeSetLayerStack(long nativeObject, int layerStack);
 
+    private static native boolean nativeClearContentFrameStats(long nativeObject);
+    private static native boolean nativeGetContentFrameStats(long nativeObject, WindowContentFrameStats outStats);
+    private static native boolean nativeClearAnimationFrameStats();
+    private static native boolean nativeGetAnimationFrameStats(WindowAnimationFrameStats outStats);
+
     private static native IBinder nativeGetBuiltInDisplay(int physicalDisplayId);
     private static native IBinder nativeCreateDisplay(String name, boolean secure);
     private static native void nativeDestroyDisplay(IBinder displayToken);
@@ -357,6 +361,24 @@
         nativeSetTransparentRegionHint(mNativeObject, region);
     }
 
+    public boolean clearContentFrameStats() {
+        checkNotReleased();
+        return nativeClearContentFrameStats(mNativeObject);
+    }
+
+    public boolean getContentFrameStats(WindowContentFrameStats outStats) {
+        checkNotReleased();
+        return nativeGetContentFrameStats(mNativeObject, outStats);
+    }
+
+    public static boolean clearAnimationFrameStats() {
+        return nativeClearAnimationFrameStats();
+    }
+
+    public static boolean getAnimationFrameStats(WindowAnimationFrameStats outStats) {
+        return nativeGetAnimationFrameStats(outStats);
+    }
+
     /**
      * Sets an alpha value for the entire Surface.  This value is combined with the
      * per-pixel alpha.  It may be used with opaque Surfaces.
@@ -542,7 +564,6 @@
         return nativeGetBuiltInDisplay(builtInDisplayId);
     }
 
-
     /**
      * Copy the current screen contents into the provided {@link Surface}
      *
@@ -592,7 +613,6 @@
         screenshot(display, consumer, 0, 0, 0, 0, true, false);
     }
 
-
     /**
      * Copy the current screen contents into a bitmap and return it.
      *
@@ -626,8 +646,8 @@
     }
 
     /**
-     * Like {@link SurfaceControl#screenshot(int, int, int, int)} but includes all
-     * Surfaces in the screenshot.
+     * Like {@link SurfaceControl#screenshot(int, int, int, int, boolean)} but
+     * includes all Surfaces in the screenshot.
      *
      * @param width The desired width of the returned bitmap; the raw
      * screen will be scaled down to this size.
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 2a488a0..1429837 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -54,28 +54,49 @@
 
     private int mWidth, mHeight;
     private long mNativeProxy;
+    private boolean mInitialized = false;
+    private RenderNode mRootNode;
 
     ThreadedRenderer(boolean translucent) {
         mNativeProxy = nCreateProxy(translucent);
-        setEnabled(mNativeProxy != 0);
+        mRootNode = RenderNode.create("RootNode");
+        mRootNode.setClipToBounds(false);
     }
 
     @Override
     void destroy(boolean full) {
-        nDestroyCanvas(mNativeProxy);
+        mInitialized = false;
+        updateEnabledState(null);
+        nDestroyCanvasAndSurface(mNativeProxy);
+    }
+
+    private void updateEnabledState(Surface surface) {
+        if (surface == null || !surface.isValid()) {
+            setEnabled(false);
+        } else {
+            setEnabled(mInitialized);
+        }
     }
 
     @Override
     boolean initialize(Surface surface) throws OutOfResourcesException {
+        mInitialized = true;
+        updateEnabledState(surface);
         return nInitialize(mNativeProxy, surface);
     }
 
     @Override
     void updateSurface(Surface surface) throws OutOfResourcesException {
+        updateEnabledState(surface);
         nUpdateSurface(mNativeProxy, surface);
     }
 
     @Override
+    void pauseSurface(Surface surface) {
+        nPauseSurface(mNativeProxy, surface);
+    }
+
+    @Override
     void destroyHardwareResources(View view) {
         destroyResources(view);
         // TODO: GLES20Canvas.flushCaches(GLES20Canvas.FLUSH_CACHES_LAYERS);
@@ -109,6 +130,7 @@
     void setup(int width, int height) {
         mWidth = width;
         mHeight = height;
+        mRootNode.setLeftTopRightBottom(0, 0, mWidth, mHeight);
         nSetup(mNativeProxy, width, height);
     }
 
@@ -147,15 +169,7 @@
     public void repeatLastDraw() {
     }
 
-    @Override
-    void setDisplayListData(long displayList, long newData) {
-        nSetDisplayListData(mNativeProxy, displayList, newData);
-    }
-
-    @Override
-    void draw(View view, AttachInfo attachInfo, HardwareDrawCallbacks callbacks, Rect dirty) {
-        attachInfo.mIgnoreDirtyState = true;
-        attachInfo.mDrawingTime = SystemClock.uptimeMillis();
+    private void updateRootDisplayList(View view, HardwareDrawCallbacks callbacks) {
         view.mPrivateFlags |= View.PFLAG_DRAWN;
 
         view.mRecreateDisplayList = (view.mPrivateFlags & View.PFLAG_INVALIDATED)
@@ -163,26 +177,43 @@
         view.mPrivateFlags &= ~View.PFLAG_INVALIDATED;
 
         Trace.traceBegin(Trace.TRACE_TAG_VIEW, "getDisplayList");
-        RenderNode displayList = view.getDisplayList();
+        HardwareCanvas canvas = mRootNode.start(mWidth, mHeight);
+        callbacks.onHardwarePostDraw(canvas);
+        canvas.drawDisplayList(view.getDisplayList());
+        callbacks.onHardwarePostDraw(canvas);
+        mRootNode.end(canvas);
         Trace.traceEnd(Trace.TRACE_TAG_VIEW);
 
         view.mRecreateDisplayList = false;
+    }
+
+    @Override
+    void draw(View view, AttachInfo attachInfo, HardwareDrawCallbacks callbacks, Rect dirty) {
+        attachInfo.mIgnoreDirtyState = true;
+        attachInfo.mDrawingTime = SystemClock.uptimeMillis();
+
+        updateRootDisplayList(view, callbacks);
 
         if (dirty == null) {
             dirty = NULL_RECT;
         }
-        nDrawDisplayList(mNativeProxy, displayList.getNativeDisplayList(),
+        nDrawDisplayList(mNativeProxy, mRootNode.getNativeDisplayList(),
                 dirty.left, dirty.top, dirty.right, dirty.bottom);
     }
 
     @Override
     void detachFunctor(long functor) {
-        nDetachFunctor(mNativeProxy, functor);
+        // no-op, we never attach functors to need to detach them
     }
 
     @Override
     void attachFunctor(AttachInfo attachInfo, long functor) {
-        nAttachFunctor(mNativeProxy, functor);
+        invokeFunctor(functor, true);
+    }
+
+    @Override
+    public void invokeFunctor(long functor, boolean waitForCompletion) {
+        nInvokeFunctor(mNativeProxy, functor, waitForCompletion);
     }
 
     @Override
@@ -240,9 +271,15 @@
     }
 
     @Override
+    void fence() {
+        nFence(mNativeProxy);
+    }
+
+    @Override
     protected void finalize() throws Throwable {
         try {
             nDeleteProxy(mNativeProxy);
+            mNativeProxy = 0;
         } finally {
             super.finalize();
         }
@@ -256,19 +293,21 @@
 
     private static native boolean nInitialize(long nativeProxy, Surface window);
     private static native void nUpdateSurface(long nativeProxy, Surface window);
+    private static native void nPauseSurface(long nativeProxy, Surface window);
     private static native void nSetup(long nativeProxy, int width, int height);
     private static native void nSetDisplayListData(long nativeProxy, long displayList,
             long newData);
     private static native void nDrawDisplayList(long nativeProxy, long displayList,
             int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom);
     private static native void nRunWithGlContext(long nativeProxy, Runnable runnable);
-    private static native void nDestroyCanvas(long nativeProxy);
+    private static native void nDestroyCanvasAndSurface(long nativeProxy);
 
-    private static native void nAttachFunctor(long nativeProxy, long functor);
-    private static native void nDetachFunctor(long nativeProxy, long functor);
+    private static native void nInvokeFunctor(long nativeProxy, long functor, boolean waitForCompletion);
 
     private static native long nCreateDisplayListLayer(long nativeProxy, int width, int height);
     private static native long nCreateTextureLayer(long nativeProxy);
     private static native boolean nCopyLayerInto(long nativeProxy, long layer, long bitmap);
     private static native void nDestroyLayer(long nativeProxy, long layer);
+
+    private static native void nFence(long nativeProxy);
 }
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index f2b9b96..f44cc87 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -16,6 +16,8 @@
 
 package android.view;
 
+import android.animation.RevealAnimator;
+import android.animation.ValueAnimator;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -1790,12 +1792,9 @@
     private static final int PFLAG_HOVERED             = 0x10000000;
 
     /**
-     * Indicates that pivotX or pivotY were explicitly set and we should not assume the center
-     * for transform operations
-     *
-     * @hide
+     * no longer needed, should be reused
      */
-    private static final int PFLAG_PIVOT_EXPLICITLY_SET = 0x20000000;
+    private static final int PFLAG_DOES_NOTHING_REUSE_PLEASE = 0x20000000;
 
     /** {@hide} */
     static final int PFLAG_ACTIVATED                   = 0x40000000;
@@ -2928,123 +2927,23 @@
     static class TransformationInfo {
         /**
          * The transform matrix for the View. This transform is calculated internally
-         * based on the rotation, scaleX, and scaleY properties. The identity matrix
-         * is used by default. Do *not* use this variable directly; instead call
-         * getMatrix(), which will automatically recalculate the matrix if necessary
-         * to get the correct matrix based on the latest rotation and scale properties.
+         * based on the translation, rotation, and scale properties.
+         *
+         * Do *not* use this variable directly; instead call getMatrix(), which will
+         * load the value from the View's RenderNode.
          */
         private final Matrix mMatrix = new Matrix();
 
         /**
-         * The transform matrix for the View. This transform is calculated internally
-         * based on the rotation, scaleX, and scaleY properties. The identity matrix
-         * is used by default. Do *not* use this variable directly; instead call
-         * getInverseMatrix(), which will automatically recalculate the matrix if necessary
-         * to get the correct matrix based on the latest rotation and scale properties.
+         * The inverse transform matrix for the View. This transform is calculated
+         * internally based on the translation, rotation, and scale properties.
+         *
+         * Do *not* use this variable directly; instead call getInverseMatrix(),
+         * which will load the value from the View's RenderNode.
          */
         private Matrix mInverseMatrix;
 
         /**
-         * An internal variable that tracks whether we need to recalculate the
-         * transform matrix, based on whether the rotation or scaleX/Y properties
-         * have changed since the matrix was last calculated.
-         */
-        boolean mMatrixDirty = false;
-
-        /**
-         * An internal variable that tracks whether we need to recalculate the
-         * transform matrix, based on whether the rotation or scaleX/Y properties
-         * have changed since the matrix was last calculated.
-         */
-        private boolean mInverseMatrixDirty = true;
-
-        /**
-         * A variable that tracks whether we need to recalculate the
-         * transform matrix, based on whether the rotation or scaleX/Y properties
-         * have changed since the matrix was last calculated. This variable
-         * is only valid after a call to updateMatrix() or to a function that
-         * calls it such as getMatrix(), hasIdentityMatrix() and getInverseMatrix().
-         */
-        private boolean mMatrixIsIdentity = true;
-
-        /**
-         * The Camera object is used to compute a 3D matrix when rotationX or rotationY are set.
-         */
-        private Camera mCamera = null;
-
-        /**
-         * This matrix is used when computing the matrix for 3D rotations.
-         */
-        private Matrix matrix3D = null;
-
-        /**
-         * These prev values are used to recalculate a centered pivot point when necessary. The
-         * pivot point is only used in matrix operations (when rotation, scale, or translation are
-         * set), so thes values are only used then as well.
-         */
-        private int mPrevWidth = -1;
-        private int mPrevHeight = -1;
-
-        /**
-         * The degrees rotation around the vertical axis through the pivot point.
-         */
-        @ViewDebug.ExportedProperty
-        float mRotationY = 0f;
-
-        /**
-         * The degrees rotation around the horizontal axis through the pivot point.
-         */
-        @ViewDebug.ExportedProperty
-        float mRotationX = 0f;
-
-        /**
-         * The degrees rotation around the pivot point.
-         */
-        @ViewDebug.ExportedProperty
-        float mRotation = 0f;
-
-        /**
-         * The amount of translation of the object away from its left property (post-layout).
-         */
-        @ViewDebug.ExportedProperty
-        float mTranslationX = 0f;
-
-        /**
-         * The amount of translation of the object away from its top property (post-layout).
-         */
-        @ViewDebug.ExportedProperty
-        float mTranslationY = 0f;
-
-        @ViewDebug.ExportedProperty
-        float mTranslationZ = 0f;
-
-        /**
-         * The amount of scale in the x direction around the pivot point. A
-         * value of 1 means no scaling is applied.
-         */
-        @ViewDebug.ExportedProperty
-        float mScaleX = 1f;
-
-        /**
-         * The amount of scale in the y direction around the pivot point. A
-         * value of 1 means no scaling is applied.
-         */
-        @ViewDebug.ExportedProperty
-        float mScaleY = 1f;
-
-        /**
-         * The x location of the point around which the view is rotated and scaled.
-         */
-        @ViewDebug.ExportedProperty
-        float mPivotX = 0f;
-
-        /**
-         * The y location of the point around which the view is rotated and scaled.
-         */
-        @ViewDebug.ExportedProperty
-        float mPivotY = 0f;
-
-        /**
          * The opacity of the View. This is a value from 0 to 1, where 0 means
          * completely transparent and 1 means completely opaque.
          */
@@ -3069,12 +2968,6 @@
     private boolean mLastIsOpaque;
 
     /**
-     * Convenience value to check for float values that are close enough to zero to be considered
-     * zero.
-     */
-    private static final float NONZERO_EPSILON = .001f;
-
-    /**
      * The distance in pixels from the left edge of this view's parent
      * to the left edge of this view.
      * {@hide}
@@ -3549,13 +3442,13 @@
     private Bitmap mUnscaledDrawingCache;
 
     /**
-     * Display list used for the View content.
+     * RenderNode holding View properties, potentially holding a DisplayList of View content.
      * <p>
      * When non-null and valid, this is expected to contain an up-to-date copy
-     * of the View content. It is cleared on temporary detach and reset on
+     * of the View content. Its DisplayList content is cleared on temporary detach and reset on
      * cleanup.
      */
-    RenderNode mDisplayList;
+    final RenderNode mRenderNode;
 
     /**
      * Set to true when the view is sending hover accessibility events because it
@@ -3606,6 +3499,7 @@
         setOverScrollMode(OVER_SCROLL_IF_CONTENT_SCROLLS);
         mUserPaddingStart = UNDEFINED_PADDING;
         mUserPaddingEnd = UNDEFINED_PADDING;
+        mRenderNode = RenderNode.create(getClass().getName());
 
         if (!sCompatibilityDone && context != null) {
             final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;
@@ -4170,6 +4064,7 @@
      */
     View() {
         mResources = null;
+        mRenderNode = RenderNode.create(getClass().getName());
     }
 
     public String toString() {
@@ -4845,10 +4740,10 @@
 
             final float x = r.exactCenterX();
             final float y = r.exactCenterY();
-            mBackground.setHotspot(Drawable.HOTSPOT_FOCUS, x, y);
+            mBackground.setHotspot(R.attr.state_focused, x, y);
 
             if (!focused) {
-                mBackground.removeHotspot(Drawable.HOTSPOT_FOCUS);
+                mBackground.removeHotspot(R.attr.state_focused);
             }
         }
     }
@@ -8889,11 +8784,6 @@
                             && !pointInView(event.getX(), event.getY()))) {
                 mSendingHoverAccessibilityEvents = false;
                 sendAccessibilityHoverEvent(AccessibilityEvent.TYPE_VIEW_HOVER_EXIT);
-                // If the window does not have input focus we take away accessibility
-                // focus as soon as the user stop hovering over the view.
-                if (mAttachInfo != null && !mAttachInfo.mHasWindowFocus) {
-                    getViewRootImpl().setAccessibilityFocus(null, null);
-                }
             }
         }
 
@@ -9016,10 +8906,13 @@
      * @return True if the event was handled, false otherwise.
      */
     public boolean onTouchEvent(MotionEvent event) {
+        final float x = event.getX();
+        final float y = event.getY();
         final int viewFlags = mViewFlags;
 
         if ((viewFlags & ENABLED_MASK) == DISABLED) {
             if (event.getAction() == MotionEvent.ACTION_UP && (mPrivateFlags & PFLAG_PRESSED) != 0) {
+                clearHotspot(R.attr.state_pressed);
                 setPressed(false);
             }
             // A disabled view that is clickable still consumes the touch
@@ -9052,6 +8945,7 @@
                             // showed it as pressed.  Make it show the pressed
                             // state now (before scheduling the click) to ensure
                             // the user sees it.
+                            setHotspot(R.attr.state_pressed, x, y);
                             setPressed(true);
                        }
 
@@ -9084,7 +8978,10 @@
                             // If the post failed, unpress right now
                             mUnsetPressedState.run();
                         }
+
                         removeTapCallback();
+                    } else {
+                        clearHotspot(R.attr.state_pressed);
                     }
                     break;
 
@@ -9105,23 +9002,26 @@
                         if (mPendingCheckForTap == null) {
                             mPendingCheckForTap = new CheckForTap();
                         }
+                        mPendingCheckForTap.x = event.getX();
+                        mPendingCheckForTap.y = event.getY();
                         postDelayed(mPendingCheckForTap, ViewConfiguration.getTapTimeout());
                     } else {
                         // Not inside a scrolling container, so show the feedback right away
+                        setHotspot(R.attr.state_pressed, x, y);
                         setPressed(true);
                         checkForLongClick(0);
                     }
                     break;
 
                 case MotionEvent.ACTION_CANCEL:
+                    clearHotspot(R.attr.state_pressed);
                     setPressed(false);
                     removeTapCallback();
                     removeLongPressCallback();
                     break;
 
                 case MotionEvent.ACTION_MOVE:
-                    final int x = (int) event.getX();
-                    final int y = (int) event.getY();
+                    setHotspot(R.attr.state_pressed, x, y);
 
                     // Be lenient about moving outside of buttons
                     if (!pointInView(x, y, mTouchSlop)) {
@@ -9137,46 +9037,24 @@
                     break;
             }
 
-            if (mBackground != null && mBackground.supportsHotspots()) {
-                manageTouchHotspot(event);
-            }
-
             return true;
         }
 
         return false;
     }
 
-    private void manageTouchHotspot(MotionEvent event) {
-        switch (event.getAction()) {
-            case MotionEvent.ACTION_DOWN:
-            case MotionEvent.ACTION_POINTER_DOWN: {
-                final int index = event.getActionIndex();
-                setPointerHotspot(event, index);
-            } break;
-            case MotionEvent.ACTION_MOVE: {
-                final int count = event.getPointerCount();
-                for (int index = 0; index < count; index++) {
-                    setPointerHotspot(event, index);
-                }
-            } break;
-            case MotionEvent.ACTION_POINTER_UP: {
-                final int actionIndex = event.getActionIndex();
-                final int pointerId = event.getPointerId(actionIndex);
-                mBackground.removeHotspot(pointerId);
-            } break;
-            case MotionEvent.ACTION_UP:
-            case MotionEvent.ACTION_CANCEL:
-                mBackground.clearHotspots();
-                break;
+    private void setHotspot(int id, float x, float y) {
+        final Drawable bg = mBackground;
+        if (bg != null && bg.supportsHotspots()) {
+            bg.setHotspot(id, x, y);
         }
     }
 
-    private void setPointerHotspot(MotionEvent event, int index) {
-        final int id = event.getPointerId(index);
-        final float x = event.getX(index);
-        final float y = event.getY(index);
-        mBackground.setHotspot(id, x, y);
+    private void clearHotspot(int id) {
+        final Drawable bg = mBackground;
+        if (bg != null && bg.supportsHotspots()) {
+            bg.removeHotspot(id);
+        }
     }
 
     /**
@@ -9216,6 +9094,7 @@
      */
     private void removeUnsetPressCallback() {
         if ((mPrivateFlags & PFLAG_PRESSED) != 0 && mUnsetPressedState != null) {
+            clearHotspot(R.attr.state_pressed);
             setPressed(false);
             removeCallbacks(mUnsetPressedState);
         }
@@ -9694,21 +9573,10 @@
      * @return The current transform matrix for the view
      */
     public Matrix getMatrix() {
-        if (mTransformationInfo != null) {
-            updateMatrix();
-            return mTransformationInfo.mMatrix;
-        }
-        return Matrix.IDENTITY_MATRIX;
-    }
-
-    /**
-     * Utility function to determine if the value is far enough away from zero to be
-     * considered non-zero.
-     * @param value A floating point value to check for zero-ness
-     * @return whether the passed-in value is far enough away from zero to be considered non-zero
-     */
-    private static boolean nonzero(float value) {
-        return (value < -NONZERO_EPSILON || value > NONZERO_EPSILON);
+        ensureTransformationInfo();
+        final Matrix matrix = mTransformationInfo.mMatrix;
+        mRenderNode.getMatrix(matrix);
+        return matrix;
     }
 
     /**
@@ -9718,11 +9586,7 @@
      * @return True if the transform matrix is the identity matrix, false otherwise.
      */
     final boolean hasIdentityMatrix() {
-        if (mTransformationInfo != null) {
-            updateMatrix();
-            return mTransformationInfo.mMatrixIsIdentity;
-        }
-        return true;
+        return mRenderNode.hasIdentityMatrix();
     }
 
     void ensureTransformationInfo() {
@@ -9731,53 +9595,6 @@
         }
     }
 
-    /**
-     * Recomputes the transform matrix if necessary.
-     */
-    private void updateMatrix() {
-        final TransformationInfo info = mTransformationInfo;
-        if (info == null) {
-            return;
-        }
-        if (info.mMatrixDirty) {
-            // transform-related properties have changed since the last time someone
-            // asked for the matrix; recalculate it with the current values
-
-            // Figure out if we need to update the pivot point
-            if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == 0) {
-                if ((mRight - mLeft) != info.mPrevWidth || (mBottom - mTop) != info.mPrevHeight) {
-                    info.mPrevWidth = mRight - mLeft;
-                    info.mPrevHeight = mBottom - mTop;
-                    info.mPivotX = info.mPrevWidth / 2f;
-                    info.mPivotY = info.mPrevHeight / 2f;
-                }
-            }
-            info.mMatrix.reset();
-            if (!nonzero(info.mRotationX) && !nonzero(info.mRotationY)) {
-                info.mMatrix.setTranslate(info.mTranslationX, info.mTranslationY);
-                info.mMatrix.preRotate(info.mRotation, info.mPivotX, info.mPivotY);
-                info.mMatrix.preScale(info.mScaleX, info.mScaleY, info.mPivotX, info.mPivotY);
-            } else {
-                if (info.mCamera == null) {
-                    info.mCamera = new Camera();
-                    info.matrix3D = new Matrix();
-                }
-                info.mCamera.save();
-                info.mMatrix.preScale(info.mScaleX, info.mScaleY, info.mPivotX, info.mPivotY);
-                info.mCamera.rotate(info.mRotationX, info.mRotationY, -info.mRotation);
-                info.mCamera.getMatrix(info.matrix3D);
-                info.matrix3D.preTranslate(-info.mPivotX, -info.mPivotY);
-                info.matrix3D.postTranslate(info.mPivotX + info.mTranslationX,
-                        info.mPivotY + info.mTranslationY);
-                info.mMatrix.postConcat(info.matrix3D);
-                info.mCamera.restore();
-            }
-            info.mMatrixDirty = false;
-            info.mMatrixIsIdentity = info.mMatrix.isIdentity();
-            info.mInverseMatrixDirty = true;
-        }
-    }
-
    /**
      * Utility method to retrieve the inverse of the current mMatrix property.
      * We cache the matrix to avoid recalculating it when transform properties
@@ -9786,19 +9603,13 @@
      * @return The inverse of the current matrix of this view.
      */
     final Matrix getInverseMatrix() {
-        final TransformationInfo info = mTransformationInfo;
-        if (info != null) {
-            updateMatrix();
-            if (info.mInverseMatrixDirty) {
-                if (info.mInverseMatrix == null) {
-                    info.mInverseMatrix = new Matrix();
-                }
-                info.mMatrix.invert(info.mInverseMatrix);
-                info.mInverseMatrixDirty = false;
-            }
-            return info.mInverseMatrix;
+        ensureTransformationInfo();
+        if (mTransformationInfo.mInverseMatrix == null) {
+            mTransformationInfo.mInverseMatrix = new Matrix();
         }
-        return Matrix.IDENTITY_MATRIX;
+        final Matrix matrix = mTransformationInfo.mInverseMatrix;
+        mRenderNode.getInverseMatrix(matrix);
+        return matrix;
     }
 
     /**
@@ -9809,14 +9620,8 @@
      * @return The distance along the Z axis.
      */
     public float getCameraDistance() {
-        ensureTransformationInfo();
         final float dpi = mResources.getDisplayMetrics().densityDpi;
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mCamera == null) {
-            info.mCamera = new Camera();
-            info.matrix3D = new Matrix();
-        }
-        return -(info.mCamera.getLocationZ() * dpi);
+        return -(mRenderNode.getCameraDistance() * dpi);
     }
 
     /**
@@ -9859,27 +9664,13 @@
      * @see #setRotationY(float)
      */
     public void setCameraDistance(float distance) {
-        invalidateViewProperty(true, false);
-
-        ensureTransformationInfo();
         final float dpi = mResources.getDisplayMetrics().densityDpi;
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mCamera == null) {
-            info.mCamera = new Camera();
-            info.matrix3D = new Matrix();
-        }
 
-        info.mCamera.setLocation(0.0f, 0.0f, -Math.abs(distance) / dpi);
-        info.mMatrixDirty = true;
-
+        invalidateViewProperty(true, false);
+        mRenderNode.setCameraDistance(-Math.abs(distance) / dpi);
         invalidateViewProperty(false, false);
-        if (mDisplayList != null) {
-            mDisplayList.setCameraDistance(-Math.abs(distance) / dpi);
-        }
-        if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-            // View was rejected last time it was drawn by its parent; this may have changed
-            invalidateParentIfNeeded();
-        }
+
+        invalidateParentIfNeededAndWasQuickRejected();
     }
 
     /**
@@ -9893,7 +9684,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getRotation() {
-        return mTransformationInfo != null ? mTransformationInfo.mRotation : 0;
+        return mRenderNode.getRotation();
     }
 
     /**
@@ -9911,21 +9702,13 @@
      * @attr ref android.R.styleable#View_rotation
      */
     public void setRotation(float rotation) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mRotation != rotation) {
+        if (rotation != getRotation()) {
             // Double-invalidation is necessary to capture view's old and new areas
             invalidateViewProperty(true, false);
-            info.mRotation = rotation;
-            info.mMatrixDirty = true;
+            mRenderNode.setRotation(rotation);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setRotation(rotation);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -9940,7 +9723,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getRotationY() {
-        return mTransformationInfo != null ? mTransformationInfo.mRotationY : 0;
+        return mRenderNode.getRotationY();
     }
 
     /**
@@ -9963,20 +9746,12 @@
      * @attr ref android.R.styleable#View_rotationY
      */
     public void setRotationY(float rotationY) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mRotationY != rotationY) {
+        if (rotationY != getRotationY()) {
             invalidateViewProperty(true, false);
-            info.mRotationY = rotationY;
-            info.mMatrixDirty = true;
+            mRenderNode.setRotationY(rotationY);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setRotationY(rotationY);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -9991,7 +9766,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getRotationX() {
-        return mTransformationInfo != null ? mTransformationInfo.mRotationX : 0;
+        return mRenderNode.getRotationX();
     }
 
     /**
@@ -10014,20 +9789,12 @@
      * @attr ref android.R.styleable#View_rotationX
      */
     public void setRotationX(float rotationX) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mRotationX != rotationX) {
+        if (rotationX != getRotationX()) {
             invalidateViewProperty(true, false);
-            info.mRotationX = rotationX;
-            info.mMatrixDirty = true;
+            mRenderNode.setRotationX(rotationX);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setRotationX(rotationX);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10043,7 +9810,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getScaleX() {
-        return mTransformationInfo != null ? mTransformationInfo.mScaleX : 1;
+        return mRenderNode.getScaleX();
     }
 
     /**
@@ -10057,20 +9824,12 @@
      * @attr ref android.R.styleable#View_scaleX
      */
     public void setScaleX(float scaleX) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mScaleX != scaleX) {
+        if (scaleX != getScaleX()) {
             invalidateViewProperty(true, false);
-            info.mScaleX = scaleX;
-            info.mMatrixDirty = true;
+            mRenderNode.setScaleX(scaleX);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setScaleX(scaleX);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10086,7 +9845,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getScaleY() {
-        return mTransformationInfo != null ? mTransformationInfo.mScaleY : 1;
+        return mRenderNode.getScaleY();
     }
 
     /**
@@ -10100,20 +9859,12 @@
      * @attr ref android.R.styleable#View_scaleY
      */
     public void setScaleY(float scaleY) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mScaleY != scaleY) {
+        if (scaleY != getScaleY()) {
             invalidateViewProperty(true, false);
-            info.mScaleY = scaleY;
-            info.mMatrixDirty = true;
+            mRenderNode.setScaleY(scaleY);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setScaleY(scaleY);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10131,7 +9882,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getPivotX() {
-        return mTransformationInfo != null ? mTransformationInfo.mPivotX : 0;
+        return mRenderNode.getPivotX();
     }
 
     /**
@@ -10150,23 +9901,12 @@
      * @attr ref android.R.styleable#View_transformPivotX
      */
     public void setPivotX(float pivotX) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        boolean pivotSet = (mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) ==
-                PFLAG_PIVOT_EXPLICITLY_SET;
-        if (info.mPivotX != pivotX || !pivotSet) {
-            mPrivateFlags |= PFLAG_PIVOT_EXPLICITLY_SET;
+        if (mRenderNode.isPivotExplicitlySet() || pivotX != getPivotX()) {
             invalidateViewProperty(true, false);
-            info.mPivotX = pivotX;
-            info.mMatrixDirty = true;
+            mRenderNode.setPivotX(pivotX);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setPivotX(pivotX);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10184,7 +9924,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getPivotY() {
-        return mTransformationInfo != null ? mTransformationInfo.mPivotY : 0;
+        return mRenderNode.getPivotY();
     }
 
     /**
@@ -10202,23 +9942,12 @@
      * @attr ref android.R.styleable#View_transformPivotY
      */
     public void setPivotY(float pivotY) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        boolean pivotSet = (mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) ==
-                PFLAG_PIVOT_EXPLICITLY_SET;
-        if (info.mPivotY != pivotY || !pivotSet) {
-            mPrivateFlags |= PFLAG_PIVOT_EXPLICITLY_SET;
+        if (mRenderNode.isPivotExplicitlySet() || pivotY != getPivotY()) {
             invalidateViewProperty(true, false);
-            info.mPivotY = pivotY;
-            info.mMatrixDirty = true;
+            mRenderNode.setPivotY(pivotY);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setPivotY(pivotY);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10296,9 +10025,7 @@
             } else {
                 mPrivateFlags &= ~PFLAG_ALPHA_SET;
                 invalidateViewProperty(true, false);
-                if (mDisplayList != null) {
-                    mDisplayList.setAlpha(getFinalAlpha());
-                }
+                mRenderNode.setAlpha(getFinalAlpha());
             }
         }
     }
@@ -10323,9 +10050,7 @@
                 return true;
             } else {
                 mPrivateFlags &= ~PFLAG_ALPHA_SET;
-                if (mDisplayList != null) {
-                    mDisplayList.setAlpha(getFinalAlpha());
-                }
+                mRenderNode.setAlpha(getFinalAlpha());
             }
         }
         return false;
@@ -10346,9 +10071,7 @@
             mTransformationInfo.mTransitionAlpha = alpha;
             mPrivateFlags &= ~PFLAG_ALPHA_SET;
             invalidateViewProperty(true, false);
-            if (mDisplayList != null) {
-                mDisplayList.setAlpha(getFinalAlpha());
-            }
+            mRenderNode.setAlpha(getFinalAlpha());
         }
     }
 
@@ -10395,9 +10118,7 @@
      */
     public final void setTop(int top) {
         if (top != mTop) {
-            updateMatrix();
-            final boolean matrixIsIdentity = mTransformationInfo == null
-                    || mTransformationInfo.mMatrixIsIdentity;
+            final boolean matrixIsIdentity = hasIdentityMatrix();
             if (matrixIsIdentity) {
                 if (mAttachInfo != null) {
                     int minTop;
@@ -10420,17 +10141,11 @@
             int oldHeight = mBottom - mTop;
 
             mTop = top;
-            if (mDisplayList != null) {
-                mDisplayList.setTop(mTop);
-            }
+            mRenderNode.setTop(mTop);
 
             sizeChange(width, mBottom - mTop, width, oldHeight);
 
             if (!matrixIsIdentity) {
-                if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == 0) {
-                    // A change in dimension means an auto-centered pivot point changes, too
-                    mTransformationInfo.mMatrixDirty = true;
-                }
                 mPrivateFlags |= PFLAG_DRAWN; // force another invalidation with the new orientation
                 invalidate(true);
             }
@@ -10471,9 +10186,7 @@
      */
     public final void setBottom(int bottom) {
         if (bottom != mBottom) {
-            updateMatrix();
-            final boolean matrixIsIdentity = mTransformationInfo == null
-                    || mTransformationInfo.mMatrixIsIdentity;
+            final boolean matrixIsIdentity = hasIdentityMatrix();
             if (matrixIsIdentity) {
                 if (mAttachInfo != null) {
                     int maxBottom;
@@ -10493,17 +10206,11 @@
             int oldHeight = mBottom - mTop;
 
             mBottom = bottom;
-            if (mDisplayList != null) {
-                mDisplayList.setBottom(mBottom);
-            }
+            mRenderNode.setBottom(mBottom);
 
             sizeChange(width, mBottom - mTop, width, oldHeight);
 
             if (!matrixIsIdentity) {
-                if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == 0) {
-                    // A change in dimension means an auto-centered pivot point changes, too
-                    mTransformationInfo.mMatrixDirty = true;
-                }
                 mPrivateFlags |= PFLAG_DRAWN; // force another invalidation with the new orientation
                 invalidate(true);
             }
@@ -10535,9 +10242,7 @@
      */
     public final void setLeft(int left) {
         if (left != mLeft) {
-            updateMatrix();
-            final boolean matrixIsIdentity = mTransformationInfo == null
-                    || mTransformationInfo.mMatrixIsIdentity;
+            final boolean matrixIsIdentity = hasIdentityMatrix();
             if (matrixIsIdentity) {
                 if (mAttachInfo != null) {
                     int minLeft;
@@ -10560,17 +10265,11 @@
             int height = mBottom - mTop;
 
             mLeft = left;
-            if (mDisplayList != null) {
-                mDisplayList.setLeft(left);
-            }
+            mRenderNode.setLeft(left);
 
             sizeChange(mRight - mLeft, height, oldWidth, height);
 
             if (!matrixIsIdentity) {
-                if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == 0) {
-                    // A change in dimension means an auto-centered pivot point changes, too
-                    mTransformationInfo.mMatrixDirty = true;
-                }
                 mPrivateFlags |= PFLAG_DRAWN; // force another invalidation with the new orientation
                 invalidate(true);
             }
@@ -10602,9 +10301,7 @@
      */
     public final void setRight(int right) {
         if (right != mRight) {
-            updateMatrix();
-            final boolean matrixIsIdentity = mTransformationInfo == null
-                    || mTransformationInfo.mMatrixIsIdentity;
+            final boolean matrixIsIdentity = hasIdentityMatrix();
             if (matrixIsIdentity) {
                 if (mAttachInfo != null) {
                     int maxRight;
@@ -10624,17 +10321,11 @@
             int height = mBottom - mTop;
 
             mRight = right;
-            if (mDisplayList != null) {
-                mDisplayList.setRight(mRight);
-            }
+            mRenderNode.setRight(mRight);
 
             sizeChange(mRight - mLeft, height, oldWidth, height);
 
             if (!matrixIsIdentity) {
-                if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == 0) {
-                    // A change in dimension means an auto-centered pivot point changes, too
-                    mTransformationInfo.mMatrixDirty = true;
-                }
                 mPrivateFlags |= PFLAG_DRAWN; // force another invalidation with the new orientation
                 invalidate(true);
             }
@@ -10656,7 +10347,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getX() {
-        return mLeft + (mTransformationInfo != null ? mTransformationInfo.mTranslationX : 0);
+        return mLeft + getTranslationX();
     }
 
     /**
@@ -10679,7 +10370,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getY() {
-        return mTop + (mTransformationInfo != null ? mTransformationInfo.mTranslationY : 0);
+        return mTop + getTranslationY();
     }
 
     /**
@@ -10703,7 +10394,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getTranslationX() {
-        return mTransformationInfo != null ? mTransformationInfo.mTranslationX : 0;
+        return mRenderNode.getTranslationX();
     }
 
     /**
@@ -10717,21 +10408,12 @@
      * @attr ref android.R.styleable#View_translationX
      */
     public void setTranslationX(float translationX) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mTranslationX != translationX) {
-            // Double-invalidation is necessary to capture view's old and new areas
+        if (translationX != getTranslationX()) {
             invalidateViewProperty(true, false);
-            info.mTranslationX = translationX;
-            info.mMatrixDirty = true;
+            mRenderNode.setTranslationX(translationX);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setTranslationX(translationX);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10745,7 +10427,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getTranslationY() {
-        return mTransformationInfo != null ? mTransformationInfo.mTranslationY : 0;
+        return mRenderNode.getTranslationY();
     }
 
     /**
@@ -10759,20 +10441,12 @@
      * @attr ref android.R.styleable#View_translationY
      */
     public void setTranslationY(float translationY) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mTranslationY != translationY) {
+        if (translationY != getTranslationY()) {
             invalidateViewProperty(true, false);
-            info.mTranslationY = translationY;
-            info.mMatrixDirty = true;
+            mRenderNode.setTranslationY(translationY);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setTranslationY(translationY);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
@@ -10783,7 +10457,7 @@
      */
     @ViewDebug.ExportedProperty(category = "drawing")
     public float getTranslationZ() {
-        return mTransformationInfo != null ? mTransformationInfo.mTranslationZ : 0;
+        return mRenderNode.getTranslationZ();
     }
 
     /**
@@ -10792,24 +10466,53 @@
      * @attr ref android.R.styleable#View_translationZ
      */
     public void setTranslationZ(float translationZ) {
-        ensureTransformationInfo();
-        final TransformationInfo info = mTransformationInfo;
-        if (info.mTranslationZ != translationZ) {
+        if (translationZ != getTranslationZ()) {
             invalidateViewProperty(true, false);
-            info.mTranslationZ = translationZ;
-            info.mMatrixDirty = true;
+            mRenderNode.setTranslationZ(translationZ);
             invalidateViewProperty(false, true);
-            if (mDisplayList != null) {
-                mDisplayList.setTranslationZ(translationZ);
-            }
-            if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) == PFLAG2_VIEW_QUICK_REJECTED) {
-                // View was rejected last time it was drawn by its parent; this may have changed
-                invalidateParentIfNeeded();
-            }
+
+            invalidateParentIfNeededAndWasQuickRejected();
         }
     }
 
     /**
+     * Returns a ValueAnimator which can animate a clipping circle.
+     * <p>
+     * The View will be clipped to the animating circle.
+     * <p>
+     * Any shadow cast by the View will respect the circular clip from this animator.
+     *
+     * @param centerX The x coordinate of the center of the animating circle.
+     * @param centerY The y coordinate of the center of the animating circle.
+     * @param startRadius The starting radius of the animating circle.
+     * @param endRadius The ending radius of the animating circle.
+     */
+    public final ValueAnimator createRevealAnimator(int centerX,  int centerY,
+            float startRadius, float endRadius) {
+        return RevealAnimator.ofRevealCircle(this, centerX, centerY,
+                startRadius, endRadius, false);
+    }
+
+    /**
+     * Returns a ValueAnimator which can animate a clearing circle.
+     * <p>
+     * The View is prevented from drawing within the circle, so the content
+     * behind the View shows through.
+     *
+     * @param centerX The x coordinate of the center of the animating circle.
+     * @param centerY The y coordinate of the center of the animating circle.
+     * @param startRadius The starting radius of the animating circle.
+     * @param endRadius The ending radius of the animating circle.
+     *
+     * @hide
+     */
+    public final ValueAnimator createClearCircleAnimator(int centerX,  int centerY,
+            float startRadius, float endRadius) {
+        return RevealAnimator.ofRevealCircle(this, centerX, centerY,
+                startRadius, endRadius, true);
+    }
+
+    /**
      * Sets the outline of the view, which defines the shape of the shadow it
      * casts, and can used for clipping.
      * <p>
@@ -10838,10 +10541,7 @@
             }
             mOutline.set(outline);
         }
-
-        if (mDisplayList != null) {
-            mDisplayList.setOutline(mOutline);
-        }
+        mRenderNode.setOutline(mOutline);
     }
 
     /**
@@ -10876,9 +10576,7 @@
             } else {
                 mPrivateFlags3 &= ~PFLAG3_CLIP_TO_OUTLINE;
             }
-            if (mDisplayList != null) {
-                mDisplayList.setClipToOutline(clipToOutline);
-            }
+            mRenderNode.setClipToOutline(clipToOutline);
         }
     }
 
@@ -10889,9 +10587,9 @@
      */
     public void setRevealClip(boolean shouldClip, boolean inverseClip,
             float x, float y, float radius) {
-        if (mDisplayList != null) {
-            mDisplayList.setRevealClip(shouldClip, inverseClip, x, y, radius);
-        }
+        mRenderNode.setRevealClip(shouldClip, inverseClip, x, y, radius);
+        // TODO: Handle this invalidate in a better way, or purely in native.
+        invalidate();
     }
 
     /**
@@ -10900,14 +10598,12 @@
      * @param outRect The hit rectangle of the view.
      */
     public void getHitRect(Rect outRect) {
-        updateMatrix();
-        final TransformationInfo info = mTransformationInfo;
-        if (info == null || info.mMatrixIsIdentity || mAttachInfo == null) {
+        if (hasIdentityMatrix() || mAttachInfo == null) {
             outRect.set(mLeft, mTop, mRight, mBottom);
         } else {
             final RectF tmpRect = mAttachInfo.mTmpTransformRect;
             tmpRect.set(0, 0, getWidth(), getHeight());
-            info.mMatrix.mapRect(tmpRect);
+            getMatrix().mapRect(tmpRect); // TODO: mRenderNode.mapRect(tmpRect)
             outRect.set((int) tmpRect.left + mLeft, (int) tmpRect.top + mTop,
                     (int) tmpRect.right + mLeft, (int) tmpRect.bottom + mTop);
         }
@@ -10996,11 +10692,9 @@
      */
     public void offsetTopAndBottom(int offset) {
         if (offset != 0) {
-            updateMatrix();
-            final boolean matrixIsIdentity = mTransformationInfo == null
-                    || mTransformationInfo.mMatrixIsIdentity;
+            final boolean matrixIsIdentity = hasIdentityMatrix();
             if (matrixIsIdentity) {
-                if (mDisplayList != null) {
+                if (isHardwareAccelerated()) {
                     invalidateViewProperty(false, false);
                 } else {
                     final ViewParent p = mParent;
@@ -11028,8 +10722,8 @@
 
             mTop += offset;
             mBottom += offset;
-            if (mDisplayList != null) {
-                mDisplayList.offsetTopAndBottom(offset);
+            mRenderNode.offsetTopAndBottom(offset);
+            if (isHardwareAccelerated()) {
                 invalidateViewProperty(false, false);
             } else {
                 if (!matrixIsIdentity) {
@@ -11047,11 +10741,9 @@
      */
     public void offsetLeftAndRight(int offset) {
         if (offset != 0) {
-            updateMatrix();
-            final boolean matrixIsIdentity = mTransformationInfo == null
-                    || mTransformationInfo.mMatrixIsIdentity;
+            final boolean matrixIsIdentity = hasIdentityMatrix();
             if (matrixIsIdentity) {
-                if (mDisplayList != null) {
+                if (isHardwareAccelerated()) {
                     invalidateViewProperty(false, false);
                 } else {
                     final ViewParent p = mParent;
@@ -11076,8 +10768,8 @@
 
             mLeft += offset;
             mRight += offset;
-            if (mDisplayList != null) {
-                mDisplayList.offsetLeftAndRight(offset);
+            mRenderNode.offsetLeftAndRight(offset);
+            if (isHardwareAccelerated()) {
                 invalidateViewProperty(false, false);
             } else {
                 if (!matrixIsIdentity) {
@@ -11457,7 +11149,7 @@
             }
 
             // Damage the entire IsolatedZVolume recieving this view's shadow.
-            if (getTranslationZ() != 0) {
+            if (isHardwareAccelerated() && getTranslationZ() != 0) {
                 damageShadowReceiver();
             }
         }
@@ -11520,7 +11212,9 @@
      * list properties are not being used in this view
      */
     void invalidateViewProperty(boolean invalidateParent, boolean forceRedraw) {
-        if (mDisplayList == null || (mPrivateFlags & PFLAG_DRAW_ANIMATION) == PFLAG_DRAW_ANIMATION) {
+        if (!isHardwareAccelerated()
+                || !mRenderNode.isValid()
+                || (mPrivateFlags & PFLAG_DRAW_ANIMATION) != 0) {
             if (invalidateParent) {
                 invalidateParentCaches();
             }
@@ -11531,7 +11225,7 @@
         } else {
             damageInParent();
         }
-        if (invalidateParent && getTranslationZ() != 0) {
+        if (isHardwareAccelerated() && invalidateParent && getTranslationZ() != 0) {
             damageShadowReceiver();
         }
     }
@@ -11548,7 +11242,7 @@
             final Rect r = ai.mTmpInvalRect;
             r.set(0, 0, mRight - mLeft, mBottom - mTop);
             if (mParent instanceof ViewGroup) {
-                ((ViewGroup) mParent).invalidateChildFast(this, r);
+                ((ViewGroup) mParent).damageChild(this, r);
             } else {
                 mParent.invalidateChild(this, r);
             }
@@ -11601,6 +11295,16 @@
     }
 
     /**
+     * @hide
+     */
+    protected void invalidateParentIfNeededAndWasQuickRejected() {
+        if ((mPrivateFlags2 & PFLAG2_VIEW_QUICK_REJECTED) != 0) {
+            // View was rejected last time it was drawn by its parent; this may have changed
+            invalidateParentIfNeeded();
+        }
+    }
+
+    /**
      * Indicates whether this View is opaque. An opaque View guarantees that it will
      * draw all the pixels overlapping its bounds using a fully opaque color.
      *
@@ -13687,10 +13391,7 @@
 
             mHardwareLayer.setLayerPaint(mLayerPaint);
             RenderNode displayList = mHardwareLayer.startRecording();
-            if (getDisplayList(displayList, true) != displayList) {
-                throw new IllegalStateException("getDisplayList() didn't return"
-                        + " the input displaylist for a hardware layer!");
-            }
+            updateDisplayListIfDirty(displayList, true);
             mHardwareLayer.endRecording(mLocalDirtyRect);
             mLocalDirtyRect.setEmpty();
         }
@@ -13831,29 +13532,33 @@
      * Otherwise, the same display list will be returned (after having been rendered into
      * along the way, depending on the invalidation state of the view).
      *
-     * @param displayList The previous version of this displayList, could be null.
+     * @param renderNode The previous version of this displayList, could be null.
      * @param isLayer Whether the requester of the display list is a layer. If so,
      * the view will avoid creating a layer inside the resulting display list.
      * @return A new or reused DisplayList object.
      */
-    private RenderNode getDisplayList(RenderNode displayList, boolean isLayer) {
-        final HardwareRenderer renderer = getHardwareRenderer();
-        if (renderer == null || !canHaveDisplayList()) {
-            return null;
+    private void updateDisplayListIfDirty(@NonNull RenderNode renderNode, boolean isLayer) {
+        if (renderNode == null) {
+            throw new IllegalArgumentException("RenderNode must not be null");
+        }
+        if (!canHaveDisplayList()) {
+            // can't populate RenderNode, don't try
+            return;
         }
 
-        if (((mPrivateFlags & PFLAG_DRAWING_CACHE_VALID) == 0 ||
-                displayList == null || !displayList.isValid() ||
-                (!isLayer && mRecreateDisplayList))) {
+        if ((mPrivateFlags & PFLAG_DRAWING_CACHE_VALID) == 0
+                || !renderNode.isValid()
+                || (!isLayer && mRecreateDisplayList)) {
             // Don't need to recreate the display list, just need to tell our
             // children to restore/recreate theirs
-            if (displayList != null && displayList.isValid() &&
-                    !isLayer && !mRecreateDisplayList) {
+            if (renderNode.isValid()
+                    && !isLayer
+                    && !mRecreateDisplayList) {
                 mPrivateFlags |= PFLAG_DRAWN | PFLAG_DRAWING_CACHE_VALID;
                 mPrivateFlags &= ~PFLAG_DIRTY_MASK;
                 dispatchGetDisplayList();
 
-                return displayList;
+                return; // no work needed
             }
 
             if (!isLayer) {
@@ -13861,20 +13566,13 @@
                 // we copy in child display lists into ours in drawChild()
                 mRecreateDisplayList = true;
             }
-            if (displayList == null) {
-                displayList = RenderNode.create(getClass().getName());
-                // If we're creating a new display list, make sure our parent gets invalidated
-                // since they will need to recreate their display list to account for this
-                // new child display list.
-                invalidateParentCaches();
-            }
 
             boolean caching = false;
             int width = mRight - mLeft;
             int height = mBottom - mTop;
             int layerType = getLayerType();
 
-            final HardwareCanvas canvas = displayList.start(width, height);
+            final HardwareCanvas canvas = renderNode.start(width, height);
 
             try {
                 if (!isLayer && layerType != LAYER_TYPE_NONE) {
@@ -13917,46 +13615,36 @@
                     }
                 }
             } finally {
-                displayList.end(renderer, canvas);
-                displayList.setCaching(caching);
+                renderNode.end(canvas);
+                renderNode.setCaching(caching);
                 if (isLayer) {
-                    displayList.setLeftTopRightBottom(0, 0, width, height);
+                    renderNode.setLeftTopRightBottom(0, 0, width, height);
                 } else {
-                    setDisplayListProperties(displayList);
-                }
-
-                if (renderer != getHardwareRenderer()) {
-                    Log.w(VIEW_LOG_TAG, "View was detached during a draw() call!");
-                    // TODO: Should this be elevated to a crash?
-                    // For now have it behaves the same as it previously did, it
-                    // will result in the DisplayListData being destroyed later
-                    // than it could be but oh well...
+                    setDisplayListProperties(renderNode);
                 }
             }
         } else if (!isLayer) {
             mPrivateFlags |= PFLAG_DRAWN | PFLAG_DRAWING_CACHE_VALID;
             mPrivateFlags &= ~PFLAG_DIRTY_MASK;
         }
-
-        return displayList;
     }
 
     /**
-     * <p>Returns a display list that can be used to draw this view again
-     * without executing its draw method.</p>
+     * Returns a RenderNode with View draw content recorded, which can be
+     * used to draw this view again without executing its draw method.
      *
-     * @return A DisplayList ready to replay, or null if caching is not enabled.
+     * @return A RenderNode ready to replay, or null if caching is not enabled.
      *
      * @hide
      */
     public RenderNode getDisplayList() {
-        mDisplayList = getDisplayList(mDisplayList, false);
-        return mDisplayList;
+        updateDisplayListIfDirty(mRenderNode, false);
+        return mRenderNode;
     }
 
     private void resetDisplayList() {
-        if (mDisplayList != null && mDisplayList.isValid()) {
-            mDisplayList.destroyDisplayListData();
+        if (mRenderNode.isValid()) {
+            mRenderNode.destroyDisplayListData();
         }
 
         if (mBackgroundDisplayList != null && mBackgroundDisplayList.isValid()) {
@@ -14550,21 +14238,16 @@
     }
 
     /**
-     * This method is called by getDisplayList() when a display list is created or re-rendered.
-     * It sets or resets the current value of all properties on that display list (resetting is
-     * necessary when a display list is being re-created, because we need to make sure that
-     * previously-set transform values
+     * This method is called by getDisplayList() when a display list is recorded for a View.
+     * It pushes any properties to the RenderNode that aren't managed by the RenderNode.
      */
-    void setDisplayListProperties(RenderNode displayList) {
-        if (displayList != null) {
-            displayList.setLeftTopRightBottom(mLeft, mTop, mRight, mBottom);
-            displayList.setHasOverlappingRendering(hasOverlappingRendering());
+    void setDisplayListProperties(RenderNode renderNode) {
+        if (renderNode != null) {
+            renderNode.setHasOverlappingRendering(hasOverlappingRendering());
             if (mParent instanceof ViewGroup) {
-                displayList.setClipToBounds(
+                renderNode.setClipToBounds(
                         (((ViewGroup) mParent).mGroupFlags & ViewGroup.FLAG_CLIP_CHILDREN) != 0);
             }
-            displayList.setOutline(mOutline);
-            displayList.setClipToOutline(getClipToOutline());
             float alpha = 1;
             if (mParent instanceof ViewGroup && (((ViewGroup) mParent).mGroupFlags &
                     ViewGroup.FLAG_SUPPORT_STATIC_TRANSFORMATIONS) != 0) {
@@ -14577,7 +14260,7 @@
                             alpha = t.getAlpha();
                         }
                         if ((transformType & Transformation.TYPE_MATRIX) != 0) {
-                            displayList.setStaticMatrix(t.getMatrix());
+                            renderNode.setStaticMatrix(t.getMatrix());
                         }
                     }
                 }
@@ -14590,23 +14273,9 @@
                         alpha = 1;
                     }
                 }
-                displayList.setTransformationInfo(alpha,
-                        mTransformationInfo.mTranslationX, mTransformationInfo.mTranslationY,
-                        mTransformationInfo.mTranslationZ,
-                        mTransformationInfo.mRotation, mTransformationInfo.mRotationX,
-                        mTransformationInfo.mRotationY, mTransformationInfo.mScaleX,
-                        mTransformationInfo.mScaleY);
-                if (mTransformationInfo.mCamera == null) {
-                    mTransformationInfo.mCamera = new Camera();
-                    mTransformationInfo.matrix3D = new Matrix();
-                }
-                displayList.setCameraDistance(mTransformationInfo.mCamera.getLocationZ());
-                if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == PFLAG_PIVOT_EXPLICITLY_SET) {
-                    displayList.setPivotX(getPivotX());
-                    displayList.setPivotY(getPivotY());
-                }
+                renderNode.setAlpha(alpha);
             } else if (alpha < 1) {
-                displayList.setAlpha(alpha);
+                renderNode.setAlpha(alpha);
             }
         }
     }
@@ -14653,10 +14322,9 @@
             }
             transformToApply = parent.getChildTransformation();
         } else {
-            if ((mPrivateFlags3 & PFLAG3_VIEW_IS_ANIMATING_TRANSFORM) ==
-                    PFLAG3_VIEW_IS_ANIMATING_TRANSFORM && mDisplayList != null) {
+            if ((mPrivateFlags3 & PFLAG3_VIEW_IS_ANIMATING_TRANSFORM) != 0) {
                 // No longer animating: clear out old animation matrix
-                mDisplayList.setAnimationMatrix(null);
+                mRenderNode.setAnimationMatrix(null);
                 mPrivateFlags3 &= ~PFLAG3_VIEW_IS_ANIMATING_TRANSFORM;
             }
             if (!useDisplayListProperties &&
@@ -15169,9 +14837,7 @@
             if ((mPrivateFlags3 & PFLAG3_OUTLINE_DEFINED) == 0) {
                 // Outline not currently define, query from background
                 mOutline = background.getOutline();
-                if (mDisplayList != null) {
-                    mDisplayList.setOutline(mOutline);
-                }
+                mRenderNode.setOutline(mOutline);
             }
         }
 
@@ -15227,7 +14893,7 @@
         final int height = bounds.height();
         final HardwareCanvas canvas = displayList.start(width, height);
         drawable.draw(canvas);
-        displayList.end(getHardwareRenderer(), canvas);
+        displayList.end(canvas);
 
         // Set up drawable properties that are view-independent.
         displayList.setLeftTopRightBottom(bounds.left, bounds.top, bounds.right, bounds.bottom);
@@ -15506,20 +15172,12 @@
             mTop = top;
             mRight = right;
             mBottom = bottom;
-            if (mDisplayList != null) {
-                mDisplayList.setLeftTopRightBottom(mLeft, mTop, mRight, mBottom);
-            }
+            mRenderNode.setLeftTopRightBottom(mLeft, mTop, mRight, mBottom);
 
             mPrivateFlags |= PFLAG_HAS_BOUNDS;
 
 
             if (sizeChanged) {
-                if ((mPrivateFlags & PFLAG_PIVOT_EXPLICITLY_SET) == 0) {
-                    // A change in dimension means an auto-centered pivot point changes, too
-                    if (mTransformationInfo != null) {
-                        mTransformationInfo.mMatrixDirty = true;
-                    }
-                }
                 sizeChange(newWidth, newHeight, oldWidth, oldHeight);
             }
 
@@ -17470,8 +17128,8 @@
             // If the screen is off assume the animation start time is now instead of
             // the next frame we draw. Keeping the START_ON_FIRST_FRAME start time
             // would cause the animation to start when the screen turns back on
-            if (mAttachInfo != null && !mAttachInfo.mScreenOn &&
-                    animation.getStartTime() == Animation.START_ON_FIRST_FRAME) {
+            if (mAttachInfo != null && mAttachInfo.mDisplayState == Display.STATE_OFF
+                    && animation.getStartTime() == Animation.START_ON_FIRST_FRAME) {
                 animation.setStartTime(AnimationUtils.currentAnimationTimeMillis());
             }
             animation.reset();
@@ -19093,10 +18751,10 @@
         }
     }
 
-    class CheckForLongPress implements Runnable {
-
+    private final class CheckForLongPress implements Runnable {
         private int mOriginalWindowAttachCount;
 
+        @Override
         public void run() {
             if (isPressed() && (mParent != null)
                     && mOriginalWindowAttachCount == mWindowAttachCount) {
@@ -19112,14 +18770,20 @@
     }
 
     private final class CheckForTap implements Runnable {
+        public float x;
+        public float y;
+
+        @Override
         public void run() {
             mPrivateFlags &= ~PFLAG_PREPRESSED;
+            setHotspot(R.attr.state_pressed, x, y);
             setPressed(true);
             checkForLongClick(ViewConfiguration.getTapTimeout());
         }
     }
 
     private final class PerformClick implements Runnable {
+        @Override
         public void run() {
             performClick();
         }
@@ -19398,7 +19062,9 @@
     }
 
     private final class UnsetPressedState implements Runnable {
+        @Override
         public void run() {
+            clearHotspot(R.attr.state_pressed);
             setPressed(false);
         }
     }
@@ -19442,7 +19108,7 @@
      * A set of information given to a view when it is attached to its parent
      * window.
      */
-    static class AttachInfo {
+    final static class AttachInfo {
         interface Callbacks {
             void playSoundEffect(int effectId);
             boolean performHapticFeedback(int effectId, boolean always);
@@ -19505,7 +19171,14 @@
         boolean mHardwareAccelerationRequested;
         HardwareRenderer mHardwareRenderer;
 
-        boolean mScreenOn;
+        /**
+         * The state of the display to which the window is attached, as reported
+         * by {@link Display#getState()}.  Note that the display state constants
+         * declared by {@link Display} do not exactly line up with the screen state
+         * constants declared by {@link View} (there are more display states than
+         * screen states).
+         */
+        int mDisplayState = Display.STATE_UNKNOWN;
 
         /**
          * Scale factor used by the compatibility mode
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index aadaa7f..d2c6302 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -31,7 +31,6 @@
 import android.graphics.RectF;
 import android.graphics.Region;
 import android.os.Build;
-import android.os.Bundle;
 import android.os.Parcelable;
 import android.os.SystemClock;
 import android.util.AttributeSet;
@@ -3174,8 +3173,8 @@
             setBooleanFlag(FLAG_CLIP_CHILDREN, clipChildren);
             for (int i = 0; i < mChildrenCount; ++i) {
                 View child = getChildAt(i);
-                if (child.mDisplayList != null) {
-                    child.mDisplayList.setClipToBounds(clipChildren);
+                if (child.mRenderNode != null) {
+                    child.mRenderNode.setClipToBounds(clipChildren);
                 }
             }
         }
@@ -4450,7 +4449,7 @@
      *
      * @hide
      */
-    public void invalidateChildFast(View child, final Rect dirty) {
+    public void damageChild(View child, final Rect dirty) {
         ViewParent parent = this;
 
         final AttachInfo attachInfo = mAttachInfo;
@@ -4473,7 +4472,7 @@
                         parentVG.invalidate();
                         parent = null;
                     } else {
-                        parent = parentVG.invalidateChildInParentFast(left, top, dirty);
+                        parent = parentVG.damageChildInParent(left, top, dirty);
                         left = parentVG.mLeft;
                         top = parentVG.mTop;
                     }
@@ -4495,9 +4494,9 @@
      *
      * @hide
      */
-    protected ViewParent invalidateChildInParentFast(int left, int top, final Rect dirty) {
-        if ((mPrivateFlags & PFLAG_DRAWN) == PFLAG_DRAWN ||
-                (mPrivateFlags & PFLAG_DRAWING_CACHE_VALID) == PFLAG_DRAWING_CACHE_VALID) {
+    protected ViewParent damageChildInParent(int left, int top, final Rect dirty) {
+        if ((mPrivateFlags & PFLAG_DRAWN) != 0
+                || (mPrivateFlags & PFLAG_DRAWING_CACHE_VALID) != 0) {
             dirty.offset(left - mScrollX, top - mScrollY);
             if ((mGroupFlags & FLAG_CLIP_CHILDREN) == 0) {
                 dirty.union(0, 0, mRight - mLeft, mBottom - mTop);
@@ -4610,9 +4609,9 @@
             final View v = children[i];
             v.mTop += offset;
             v.mBottom += offset;
-            if (v.mDisplayList != null) {
+            if (v.mRenderNode != null) {
                 invalidate = true;
-                v.mDisplayList.offsetTopAndBottom(offset);
+                v.mRenderNode.offsetTopAndBottom(offset);
             }
         }
 
diff --git a/core/java/android/view/ViewOverlay.java b/core/java/android/view/ViewOverlay.java
index 47de780..0cf9ddd 100644
--- a/core/java/android/view/ViewOverlay.java
+++ b/core/java/android/view/ViewOverlay.java
@@ -290,7 +290,11 @@
             }
         }
 
-        public void invalidateChildFast(View child, final Rect dirty) {
+        /**
+         * @hide
+         */
+        @Override
+        public void damageChild(View child, final Rect dirty) {
             if (mHostView != null) {
                 // Note: This is not a "fast" invalidation. Would be nice to instead invalidate
                 // using DisplayList properties and a dirty rect instead of causing a real
@@ -309,9 +313,9 @@
          * @hide
          */
         @Override
-        protected ViewParent invalidateChildInParentFast(int left, int top, Rect dirty) {
+        protected ViewParent damageChildInParent(int left, int top, Rect dirty) {
             if (mHostView instanceof ViewGroup) {
-                return ((ViewGroup) mHostView).invalidateChildInParentFast(left, top, dirty);
+                return ((ViewGroup) mHostView).damageChildInParent(left, top, dirty);
             }
             return null;
         }
diff --git a/core/java/android/view/ViewPropertyAnimator.java b/core/java/android/view/ViewPropertyAnimator.java
index 563ffb7..6b21451 100644
--- a/core/java/android/view/ViewPropertyAnimator.java
+++ b/core/java/android/view/ViewPropertyAnimator.java
@@ -925,51 +925,41 @@
      */
     private void setValue(int propertyConstant, float value) {
         final View.TransformationInfo info = mView.mTransformationInfo;
-        final RenderNode displayList = mView.mDisplayList;
+        final RenderNode renderNode = mView.mRenderNode;
         switch (propertyConstant) {
             case TRANSLATION_X:
-                info.mTranslationX = value;
-                if (displayList != null) displayList.setTranslationX(value);
+                renderNode.setTranslationX(value);
                 break;
             case TRANSLATION_Y:
-                info.mTranslationY = value;
-                if (displayList != null) displayList.setTranslationY(value);
+                renderNode.setTranslationY(value);
                 break;
             case TRANSLATION_Z:
-                info.mTranslationZ = value;
-                if (displayList != null) displayList.setTranslationZ(value);
+                renderNode.setTranslationZ(value);
                 break;
             case ROTATION:
-                info.mRotation = value;
-                if (displayList != null) displayList.setRotation(value);
+                renderNode.setRotation(value);
                 break;
             case ROTATION_X:
-                info.mRotationX = value;
-                if (displayList != null) displayList.setRotationX(value);
+                renderNode.setRotationX(value);
                 break;
             case ROTATION_Y:
-                info.mRotationY = value;
-                if (displayList != null) displayList.setRotationY(value);
+                renderNode.setRotationY(value);
                 break;
             case SCALE_X:
-                info.mScaleX = value;
-                if (displayList != null) displayList.setScaleX(value);
+                renderNode.setScaleX(value);
                 break;
             case SCALE_Y:
-                info.mScaleY = value;
-                if (displayList != null) displayList.setScaleY(value);
+                renderNode.setScaleY(value);
                 break;
             case X:
-                info.mTranslationX = value - mView.mLeft;
-                if (displayList != null) displayList.setTranslationX(value - mView.mLeft);
+                renderNode.setTranslationX(value - mView.mLeft);
                 break;
             case Y:
-                info.mTranslationY = value - mView.mTop;
-                if (displayList != null) displayList.setTranslationY(value - mView.mTop);
+                renderNode.setTranslationY(value - mView.mTop);
                 break;
             case ALPHA:
                 info.mAlpha = value;
-                if (displayList != null) displayList.setAlpha(value);
+                renderNode.setAlpha(value);
                 break;
         }
     }
@@ -981,30 +971,30 @@
      * @return float The value of the named property
      */
     private float getValue(int propertyConstant) {
-        final View.TransformationInfo info = mView.mTransformationInfo;
+        final RenderNode node = mView.mRenderNode;
         switch (propertyConstant) {
             case TRANSLATION_X:
-                return info.mTranslationX;
+                return node.getTranslationX();
             case TRANSLATION_Y:
-                return info.mTranslationY;
+                return node.getTranslationY();
             case TRANSLATION_Z:
-                return info.mTranslationZ;
+                return node.getTranslationZ();
             case ROTATION:
-                return info.mRotation;
+                return node.getRotation();
             case ROTATION_X:
-                return info.mRotationX;
+                return node.getRotationX();
             case ROTATION_Y:
-                return info.mRotationY;
+                return node.getRotationY();
             case SCALE_X:
-                return info.mScaleX;
+                return node.getScaleX();
             case SCALE_Y:
-                return info.mScaleY;
+                return node.getScaleY();
             case X:
-                return mView.mLeft + info.mTranslationX;
+                return mView.mLeft + node.getTranslationX();
             case Y:
-                return mView.mTop + info.mTranslationY;
+                return mView.mTop + node.getTranslationY();
             case ALPHA:
-                return info.mAlpha;
+                return mView.mTransformationInfo.mAlpha;
         }
         return 0;
     }
@@ -1093,7 +1083,7 @@
                 // Shouldn't happen, but just to play it safe
                 return;
             }
-            boolean useDisplayListProperties = mView.mDisplayList != null;
+            boolean useRenderNodeProperties = mView.mRenderNode != null;
 
             // alpha requires slightly different treatment than the other (transform) properties.
             // The logic in setAlpha() is not simply setting mAlpha, plus the invalidation
@@ -1101,7 +1091,7 @@
             // We track what kinds of properties are set, and how alpha is handled when it is
             // set, and perform the invalidation steps appropriately.
             boolean alphaHandled = false;
-            if (!useDisplayListProperties) {
+            if (!useRenderNodeProperties) {
                 mView.invalidateParentCaches();
             }
             float fraction = animation.getAnimatedFraction();
@@ -1123,8 +1113,7 @@
                 }
             }
             if ((propertyMask & TRANSFORM_MASK) != 0) {
-                mView.mTransformationInfo.mMatrixDirty = true;
-                if (!useDisplayListProperties) {
+                if (!useRenderNodeProperties) {
                     mView.mPrivateFlags |= View.PFLAG_DRAWN; // force another invalidation
                 }
             }
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index e0e523e..ef22def 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -37,6 +37,8 @@
 import android.graphics.Rect;
 import android.graphics.Region;
 import android.graphics.drawable.Drawable;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManager.DisplayListener;
 import android.media.AudioManager;
 import android.os.Binder;
 import android.os.Bundle;
@@ -134,6 +136,7 @@
     final Context mContext;
     final IWindowSession mWindowSession;
     final Display mDisplay;
+    final DisplayManager mDisplayManager;
     final String mBasePackageName;
 
     final int[] mTmpLocation = new int[2];
@@ -370,9 +373,7 @@
         mNoncompatDensity = context.getResources().getDisplayMetrics().noncompatDensityDpi;
         mFallbackEventHandler = PolicyManager.makeNewFallbackEventHandler(context);
         mChoreographer = Choreographer.getInstance();
-
-        PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        mAttachInfo.mScreenOn = powerManager.isScreenOn();
+        mDisplayManager = (DisplayManager)context.getSystemService(Context.DISPLAY_SERVICE);
         loadSystemProperties();
     }
 
@@ -427,6 +428,10 @@
         synchronized (this) {
             if (mView == null) {
                 mView = view;
+
+                mAttachInfo.mDisplayState = mDisplay.getState();
+                mDisplayManager.registerDisplayListener(mDisplayListener, mHandler);
+
                 mViewLayoutDirectionInitial = mView.getRawLayoutDirection();
                 mFallbackEventHandler.setView(view);
                 mWindowAttributes.copyFrom(attrs);
@@ -797,18 +802,43 @@
         scheduleTraversals();
     }
 
-    void handleScreenStateChange(boolean on) {
-        if (on != mAttachInfo.mScreenOn) {
-            mAttachInfo.mScreenOn = on;
-            if (mView != null) {
-                mView.dispatchScreenStateChanged(on ? View.SCREEN_STATE_ON : View.SCREEN_STATE_OFF);
-            }
-            if (on) {
-                mFullRedrawNeeded = true;
-                scheduleTraversals();
+    private final DisplayListener mDisplayListener = new DisplayListener() {
+        @Override
+        public void onDisplayChanged(int displayId) {
+            if (mView != null && mDisplay.getDisplayId() == displayId) {
+                final int oldDisplayState = mAttachInfo.mDisplayState;
+                final int newDisplayState = mDisplay.getState();
+                if (oldDisplayState != newDisplayState) {
+                    mAttachInfo.mDisplayState = newDisplayState;
+                    if (oldDisplayState != Display.STATE_UNKNOWN) {
+                        final int oldScreenState = toViewScreenState(oldDisplayState);
+                        final int newScreenState = toViewScreenState(newDisplayState);
+                        if (oldScreenState != newScreenState) {
+                            mView.dispatchScreenStateChanged(newScreenState);
+                        }
+                        if (oldDisplayState == Display.STATE_OFF) {
+                            // Draw was suppressed so we need to for it to happen here.
+                            mFullRedrawNeeded = true;
+                            scheduleTraversals();
+                        }
+                    }
+                }
             }
         }
-    }
+
+        @Override
+        public void onDisplayRemoved(int displayId) {
+        }
+
+        @Override
+        public void onDisplayAdded(int displayId) {
+        }
+
+        private int toViewScreenState(int displayState) {
+            return displayState == Display.STATE_OFF ?
+                    View.SCREEN_STATE_OFF : View.SCREEN_STATE_ON;
+        }
+    };
 
     @Override
     public void requestFitSystemWindows() {
@@ -1421,6 +1451,12 @@
                             host.getMeasuredHeight() + ", params=" + params);
                 }
 
+                if (mAttachInfo.mHardwareRenderer != null) {
+                    // relayoutWindow may decide to destroy mSurface. As that decision
+                    // happens in WindowManager service, we need to be defensive here
+                    // and stop using the surface in case it gets destroyed.
+                    mAttachInfo.mHardwareRenderer.pauseSurface(mSurface);
+                }
                 final int surfaceGenerationId = mSurface.getGenerationId();
                 relayoutResult = relayoutWindow(params, viewVisibility, insetsPending);
                 if (!mDrawDuringWindowsAnimating &&
@@ -1465,8 +1501,8 @@
                                     mWidth, mHeight);
                         }
                         mResizeBuffer.prepare(mWidth, mHeight, false);
-                        RenderNode layerDisplayList = mResizeBuffer.startRecording();
-                        HardwareCanvas layerCanvas = layerDisplayList.start(mWidth, mHeight);
+                        RenderNode layerRenderNode = mResizeBuffer.startRecording();
+                        HardwareCanvas layerCanvas = layerRenderNode.start(mWidth, mHeight);
                         final int restoreCount = layerCanvas.save();
 
                         int yoff;
@@ -1484,9 +1520,9 @@
                             mTranslator.translateCanvas(layerCanvas);
                         }
 
-                        RenderNode displayList = mView.mDisplayList;
-                        if (displayList != null && displayList.isValid()) {
-                            layerCanvas.drawDisplayList(displayList, null,
+                        RenderNode renderNode = mView.mRenderNode;
+                        if (renderNode != null && renderNode.isValid()) {
+                            layerCanvas.drawDisplayList(renderNode, null,
                                     RenderNode.FLAG_CLIP_CHILDREN);
                         } else {
                             mView.draw(layerCanvas);
@@ -1499,9 +1535,9 @@
                                 com.android.internal.R.integer.config_mediumAnimTime);
 
                         layerCanvas.restoreToCount(restoreCount);
-                        layerDisplayList.end(mAttachInfo.mHardwareRenderer, layerCanvas);
-                        layerDisplayList.setCaching(true);
-                        layerDisplayList.setLeftTopRightBottom(0, 0, mWidth, mHeight);
+                        layerRenderNode.end(layerCanvas);
+                        layerRenderNode.setCaching(true);
+                        layerRenderNode.setLeftTopRightBottom(0, 0, mWidth, mHeight);
                         mTempRect.set(0, 0, mWidth, mHeight);
                         mResizeBuffer.endRecording(mTempRect);
                         mAttachInfo.mHardwareRenderer.flushLayerUpdates();
@@ -2168,19 +2204,16 @@
             mResizePaint.setAlpha(mResizeAlpha);
             canvas.drawHardwareLayer(mResizeBuffer, 0.0f, mHardwareYOffset, mResizePaint);
         }
-        // TODO: this
-        if (!HardwareRenderer.sUseRenderThread) {
-            drawAccessibilityFocusedDrawableIfNeeded(canvas);
-        }
+        drawAccessibilityFocusedDrawableIfNeeded(canvas);
     }
 
     /**
      * @hide
      */
     void outputDisplayList(View view) {
-        RenderNode displayList = view.getDisplayList();
-        if (displayList != null) {
-            displayList.output();
+        RenderNode renderNode = view.getDisplayList();
+        if (renderNode != null) {
+            renderNode.output();
         }
     }
 
@@ -2241,7 +2274,7 @@
     }
 
     private void performDraw() {
-        if (!mAttachInfo.mScreenOn && !mReportNextDraw) {
+        if (mAttachInfo.mDisplayState == Display.STATE_OFF && !mReportNextDraw) {
             return;
         }
 
@@ -2259,6 +2292,9 @@
 
         if (mReportNextDraw) {
             mReportNextDraw = false;
+            if (mAttachInfo.mHardwareRenderer != null) {
+                mAttachInfo.mHardwareRenderer.fence();
+            }
 
             if (LOCAL_LOGV) {
                 Log.v(TAG, "FINISHED DRAWING: " + mWindowAttributes.getTitle());
@@ -2864,6 +2900,8 @@
             mInputChannel = null;
         }
 
+        mDisplayManager.unregisterDisplayListener(mDisplayListener);
+
         unscheduleTraversals();
     }
 
@@ -2943,7 +2981,6 @@
     private final static int MSG_DISPATCH_SYSTEM_UI_VISIBILITY = 17;
     private final static int MSG_UPDATE_CONFIGURATION = 18;
     private final static int MSG_PROCESS_INPUT_EVENTS = 19;
-    private final static int MSG_DISPATCH_SCREEN_STATE = 20;
     private final static int MSG_CLEAR_ACCESSIBILITY_FOCUS_HOST = 21;
     private final static int MSG_DISPATCH_DONE_ANIMATING = 22;
     private final static int MSG_INVALIDATE_WORLD = 23;
@@ -2990,8 +3027,6 @@
                     return "MSG_UPDATE_CONFIGURATION";
                 case MSG_PROCESS_INPUT_EVENTS:
                     return "MSG_PROCESS_INPUT_EVENTS";
-                case MSG_DISPATCH_SCREEN_STATE:
-                    return "MSG_DISPATCH_SCREEN_STATE";
                 case MSG_CLEAR_ACCESSIBILITY_FOCUS_HOST:
                     return "MSG_CLEAR_ACCESSIBILITY_FOCUS_HOST";
                 case MSG_DISPATCH_DONE_ANIMATING:
@@ -3205,11 +3240,6 @@
                 }
                 updateConfiguration(config, false);
             } break;
-            case MSG_DISPATCH_SCREEN_STATE: {
-                if (mView != null) {
-                    handleScreenStateChange(msg.arg1 == 1);
-                }
-            } break;
             case MSG_CLEAR_ACCESSIBILITY_FOCUS_HOST: {
                 setAccessibilityFocus(null, null);
             } break;
@@ -5218,10 +5248,10 @@
     }
 
     private static void getGfxInfo(View view, int[] info) {
-        RenderNode displayList = view.mDisplayList;
+        RenderNode renderNode = view.mRenderNode;
         info[0]++;
-        if (displayList != null) {
-            info[1] += 0; /* TODO: Memory used by display lists */
+        if (renderNode != null) {
+            info[1] += 0; /* TODO: Memory used by RenderNodes (properties + DisplayLists) */
         }
 
         if (view instanceof ViewGroup) {
@@ -5786,12 +5816,6 @@
         mHandler.sendMessage(msg);
     }
 
-    public void dispatchScreenStateChange(boolean on) {
-        Message msg = mHandler.obtainMessage(MSG_DISPATCH_SCREEN_STATE);
-        msg.arg1 = on ? 1 : 0;
-        mHandler.sendMessage(msg);
-    }
-
     public void dispatchGetNewSurface() {
         Message msg = mHandler.obtainMessage(MSG_DISPATCH_GET_NEW_SURFACE);
         mHandler.sendMessage(msg);
@@ -6130,14 +6154,6 @@
         }
 
         @Override
-        public void dispatchScreenState(boolean on) {
-            final ViewRootImpl viewAncestor = mViewAncestor.get();
-            if (viewAncestor != null) {
-                viewAncestor.dispatchScreenStateChange(on);
-            }
-        }
-
-        @Override
         public void dispatchGetNewSurface() {
             final ViewRootImpl viewAncestor = mViewAncestor.get();
             if (viewAncestor != null) {
diff --git a/core/java/android/view/VolumePanel.java b/core/java/android/view/VolumePanel.java
index b05225b..4730e59 100644
--- a/core/java/android/view/VolumePanel.java
+++ b/core/java/android/view/VolumePanel.java
@@ -56,10 +56,8 @@
  *
  * @hide
  */
-public class VolumePanel extends Handler implements OnSeekBarChangeListener, View.OnClickListener,
-        VolumeController
-{
-    private static final String TAG = "VolumePanel";
+public class VolumePanel extends Handler implements VolumeController {
+    private static final String TAG = VolumePanel.class.getSimpleName();
     private static boolean LOGD = false;
 
     /**
@@ -187,7 +185,7 @@
             this.iconMuteRes = iconMuteRes;
             this.show = show;
         }
-    };
+    }
 
     // List of stream types and their order
     private static final StreamResources[] STREAMS = {
@@ -238,6 +236,7 @@
             cleanUp();
         }
 
+        @Override
         public void onDismiss(DialogInterface unused) {
             mContext.unregisterReceiver(this);
             cleanUp();
@@ -253,14 +252,14 @@
     }
 
 
-    public VolumePanel(final Context context, AudioService volumeService) {
+    public VolumePanel(Context context, AudioService volumeService) {
         mContext = context;
         mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
         mAudioService = volumeService;
 
         // For now, only show master volume if master volume is supported
-        boolean useMasterVolume = context.getResources().getBoolean(
-                com.android.internal.R.bool.config_useMasterVolume);
+        final Resources res = context.getResources();
+        final boolean useMasterVolume = res.getBoolean(R.bool.config_useMasterVolume);
         if (useMasterVolume) {
             for (int i = 0; i < STREAMS.length; i++) {
                 StreamResources streamRes = STREAMS[i];
@@ -268,21 +267,8 @@
             }
         }
 
-        LayoutInflater inflater = (LayoutInflater) context
-                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        View view = mView = inflater.inflate(R.layout.volume_adjust, null);
-        mView.setOnTouchListener(new View.OnTouchListener() {
-            public boolean onTouch(View v, MotionEvent event) {
-                resetTimeout();
-                return false;
-            }
-        });
-        mPanel = (ViewGroup) mView.findViewById(R.id.visible_panel);
-        mSliderGroup = (ViewGroup) mView.findViewById(R.id.slider_group);
-        mMoreButton = (ImageView) mView.findViewById(R.id.expand_button);
-        mDivider = (ImageView) mView.findViewById(R.id.expand_button_divider);
-
-        mDialog = new Dialog(context, R.style.Theme_Panel_Volume) {
+        mDialog = new Dialog(context) {
+            @Override
             public boolean onTouchEvent(MotionEvent event) {
                 if (isShowing() && event.getAction() == MotionEvent.ACTION_OUTSIDE &&
                         sConfirmSafeVolumeDialog == null) {
@@ -292,47 +278,65 @@
                 return false;
             }
         };
-        mDialog.setTitle("Volume control"); // No need to localize
-        mDialog.setContentView(mView);
+
+        // Change some window properties
+        final Window window = mDialog.getWindow();
+        final LayoutParams lp = window.getAttributes();
+        lp.token = null;
+        // Offset from the top
+        lp.y = res.getDimensionPixelOffset(R.dimen.volume_panel_top);
+        lp.type = LayoutParams.TYPE_VOLUME_OVERLAY;
+        lp.windowAnimations = R.style.Animation_VolumePanel;
+        window.setAttributes(lp);
+        window.setGravity(Gravity.TOP);
+        window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+        window.requestFeature(Window.FEATURE_NO_TITLE);
+        window.addFlags(LayoutParams.FLAG_NOT_FOCUSABLE
+                | LayoutParams.FLAG_NOT_TOUCH_MODAL
+                | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
+
+        mDialog.setCanceledOnTouchOutside(true);
+        mDialog.setContentView(R.layout.volume_adjust);
         mDialog.setOnDismissListener(new OnDismissListener() {
+            @Override
             public void onDismiss(DialogInterface dialog) {
                 mActiveStreamType = -1;
                 mAudioManager.forceVolumeControlStream(mActiveStreamType);
             }
         });
-        // Change some window properties
-        Window window = mDialog.getWindow();
-        window.setGravity(Gravity.TOP);
-        LayoutParams lp = window.getAttributes();
-        lp.token = null;
-        // Offset from the top
-        lp.y = mContext.getResources().getDimensionPixelOffset(
-                com.android.internal.R.dimen.volume_panel_top);
-        lp.type = LayoutParams.TYPE_VOLUME_OVERLAY;
-        lp.width = LayoutParams.WRAP_CONTENT;
-        lp.height = LayoutParams.WRAP_CONTENT;
-        window.setAttributes(lp);
-        window.addFlags(LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCH_MODAL
-                | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
+
+        mDialog.create();
+
+        mView = window.findViewById(R.id.content);
+        mView.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                resetTimeout();
+                return false;
+            }
+        });
+
+        mPanel = (ViewGroup) mView.findViewById(R.id.visible_panel);
+        mSliderGroup = (ViewGroup) mView.findViewById(R.id.slider_group);
+        mMoreButton = mView.findViewById(R.id.expand_button);
+        mDivider = mView.findViewById(R.id.expand_button_divider);
 
         mToneGenerators = new ToneGenerator[AudioSystem.getNumStreamTypes()];
-        mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
-
+        mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
         mVoiceCapable = context.getResources().getBoolean(R.bool.config_voice_capable);
+
+        // If we don't want to show multiple volumes, hide the settings button
+        // and divider.
         mShowCombinedVolumes = !mVoiceCapable && !useMasterVolume;
-        // If we don't want to show multiple volumes, hide the settings button and divider
         if (!mShowCombinedVolumes) {
             mMoreButton.setVisibility(View.GONE);
             mDivider.setVisibility(View.GONE);
         } else {
-            mMoreButton.setOnClickListener(this);
+            mMoreButton.setOnClickListener(mClickListener);
         }
 
-        boolean masterVolumeOnly = context.getResources().getBoolean(
-                com.android.internal.R.bool.config_useMasterVolume);
-        boolean masterVolumeKeySounds = mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_useVolumeKeySounds);
-
+        final boolean masterVolumeOnly = res.getBoolean(R.bool.config_useMasterVolume);
+        final boolean masterVolumeKeySounds = res.getBoolean(R.bool.config_useVolumeKeySounds);
         mPlayMasterStreamTones = masterVolumeOnly && masterVolumeKeySounds;
 
         listenToRingerMode();
@@ -347,7 +351,7 @@
         final IntentFilter filter = new IntentFilter();
         filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
         mContext.registerReceiver(new BroadcastReceiver() {
-
+            @Override
             public void onReceive(Context context, Intent intent) {
                 final String action = intent.getAction();
 
@@ -400,17 +404,21 @@
     }
 
     private void createSliders() {
-        LayoutInflater inflater = (LayoutInflater) mContext
-                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        final Resources res = mContext.getResources();
+        final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+
         mStreamControls = new HashMap<Integer, StreamControl>(STREAMS.length);
-        Resources res = mContext.getResources();
+
         for (int i = 0; i < STREAMS.length; i++) {
             StreamResources streamRes = STREAMS[i];
-            int streamType = streamRes.streamType;
+
+            final int streamType = streamRes.streamType;
             if (mVoiceCapable && streamRes == StreamResources.NotificationStream) {
                 streamRes = StreamResources.RingerStream;
             }
-            StreamControl sc = new StreamControl();
+
+            final StreamControl sc = new StreamControl();
             sc.streamType = streamType;
             sc.group = (ViewGroup) inflater.inflate(R.layout.volume_adjust_item, null);
             sc.group.setTag(sc);
@@ -421,10 +429,10 @@
             sc.iconMuteRes = streamRes.iconMuteRes;
             sc.icon.setImageResource(sc.iconRes);
             sc.seekbarView = (SeekBar) sc.group.findViewById(R.id.seekbar);
-            int plusOne = (streamType == AudioSystem.STREAM_BLUETOOTH_SCO ||
+            final int plusOne = (streamType == AudioSystem.STREAM_BLUETOOTH_SCO ||
                     streamType == AudioSystem.STREAM_VOICE_CALL) ? 1 : 0;
             sc.seekbarView.setMax(getStreamMaxVolume(streamType) + plusOne);
-            sc.seekbarView.setOnSeekBarChangeListener(this);
+            sc.seekbarView.setOnSeekBarChangeListener(mSeekListener);
             sc.seekbarView.setTag(sc);
             mStreamControls.put(streamType, sc);
         }
@@ -433,7 +441,7 @@
     private void reorderSliders(int activeStreamType) {
         mSliderGroup.removeAllViews();
 
-        StreamControl active = mStreamControls.get(activeStreamType);
+        final StreamControl active = mStreamControls.get(activeStreamType);
         if (active == null) {
             Log.e("VolumePanel", "Missing stream type! - " + activeStreamType);
             mActiveStreamType = -1;
@@ -486,10 +494,6 @@
         }
     }
 
-    private boolean isExpanded() {
-        return mMoreButton.getVisibility() != View.VISIBLE;
-    }
-
     private void expand() {
         final int count = mSliderGroup.getChildCount();
         for (int i = 0; i < count; i++) {
@@ -527,6 +531,7 @@
         obtainMessage(MSG_VOLUME_CHANGED, streamType, flags).sendToTarget();
     }
 
+    @Override
     public void postRemoteVolumeChanged(int streamType, int flags) {
         if (hasMessages(MSG_REMOTE_VOLUME_CHANGED)) return;
         synchronized (this) {
@@ -538,6 +543,7 @@
         obtainMessage(MSG_REMOTE_VOLUME_CHANGED, streamType, flags).sendToTarget();
     }
 
+    @Override
     public void postRemoteSliderVisibility(boolean visible) {
         obtainMessage(MSG_SLIDER_VISIBILITY_CHANGED,
                 AudioService.STREAM_REMOTE_MUSIC, visible ? 1 : 0).sendToTarget();
@@ -554,6 +560,7 @@
      * as a request to update the volume), the application will likely set a new volume. If the UI
      * is still up, we need to refresh the display to show this new value.
      */
+    @Override
     public void postHasNewRemotePlaybackInfo() {
         if (hasMessages(MSG_REMOTE_VOLUME_UPDATE_IF_SHOWN)) return;
         // don't create or prevent resources to be freed, if they disappear, this update came too
@@ -733,7 +740,7 @@
             int stream = (streamType == AudioService.STREAM_REMOTE_MUSIC) ? -1 : streamType;
             // when the stream is for remote playback, use -1 to reset the stream type evaluation
             mAudioManager.forceVolumeControlStream(stream);
-            mDialog.setContentView(mView);
+
             // Showing dialog - use collapsed state
             if (mShowCombinedVolumes) {
                 collapse();
@@ -865,6 +872,7 @@
                         .setMessage(com.android.internal.R.string.safe_media_volume_warning)
                         .setPositiveButton(com.android.internal.R.string.yes,
                                             new DialogInterface.OnClickListener() {
+                            @Override
                             public void onClick(DialogInterface dialog, int which) {
                                 mAudioService.disableSafeMediaVolume();
                             }
@@ -1021,39 +1029,48 @@
         sendMessage(obtainMessage(MSG_TIMEOUT));
     }
 
-    public void onProgressChanged(SeekBar seekBar, int progress,
-            boolean fromUser) {
-        final Object tag = seekBar.getTag();
-        if (fromUser && tag instanceof StreamControl) {
-            StreamControl sc = (StreamControl) tag;
-            if (getStreamVolume(sc.streamType) != progress) {
-                setStreamVolume(sc.streamType, progress, 0);
+    private final OnSeekBarChangeListener mSeekListener = new OnSeekBarChangeListener() {
+        @Override
+        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+            final Object tag = seekBar.getTag();
+            if (fromUser && tag instanceof StreamControl) {
+                StreamControl sc = (StreamControl) tag;
+                if (getStreamVolume(sc.streamType) != progress) {
+                    setStreamVolume(sc.streamType, progress, 0);
+                }
+            }
+            resetTimeout();
+        }
+
+        @Override
+        public void onStartTrackingTouch(SeekBar seekBar) {
+        }
+
+        @Override
+        public void onStopTrackingTouch(SeekBar seekBar) {
+            final Object tag = seekBar.getTag();
+            if (tag instanceof StreamControl) {
+                StreamControl sc = (StreamControl) tag;
+                // Because remote volume updates are asynchronous, AudioService
+                // might have received a new remote volume value since the
+                // finger adjusted the slider. So when the progress of the
+                // slider isn't being tracked anymore, adjust the slider to the
+                // last "published" remote volume value, so the UI reflects the
+                // actual volume.
+                if (sc.streamType == AudioService.STREAM_REMOTE_MUSIC) {
+                    seekBar.setProgress(getStreamVolume(AudioService.STREAM_REMOTE_MUSIC));
+                }
             }
         }
-        resetTimeout();
-    }
+    };
 
-    public void onStartTrackingTouch(SeekBar seekBar) {
-    }
-
-    public void onStopTrackingTouch(SeekBar seekBar) {
-        final Object tag = seekBar.getTag();
-        if (tag instanceof StreamControl) {
-            StreamControl sc = (StreamControl) tag;
-            // because remote volume updates are asynchronous, AudioService might have received
-            // a new remote volume value since the finger adjusted the slider. So when the
-            // progress of the slider isn't being tracked anymore, adjust the slider to the last
-            // "published" remote volume value, so the UI reflects the actual volume.
-            if (sc.streamType == AudioService.STREAM_REMOTE_MUSIC) {
-                seekBar.setProgress(getStreamVolume(AudioService.STREAM_REMOTE_MUSIC));
+    private final View.OnClickListener mClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            if (v == mMoreButton) {
+                expand();
             }
+            resetTimeout();
         }
-    }
-
-    public void onClick(View v) {
-        if (v == mMoreButton) {
-            expand();
-        }
-        resetTimeout();
-    }
+    };
 }
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 0cd6325..7bd1f56 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -18,7 +18,6 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.app.ActivityOptions;
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.TypedArray;
@@ -1390,11 +1389,11 @@
      * @param options Options to set or null for none
      * @hide
      */
-    public void setTransitionOptions(ActivityOptions options, SceneTransitionListener listener) {
+    public void setTransitionOptions(Bundle options, SceneTransitionListener listener) {
     }
 
     /**
-     * A callback for Activity transitions to be told when the shared element is ready to be shown
+     * A callback for Window transitions to be told when the shared element is ready to be shown
      * and start the transition to its target location.
      * @hide
      */
@@ -1407,27 +1406,57 @@
     }
 
     /**
-     * Controls when the Activity enter scene is triggered and the background is faded in. If
-     * triggerEarly is true, the enter scene will begin as soon as possible and the background
-     * will fade in when all shared elements are ready to begin transitioning. If triggerEarly is
-     * false, the Activity enter scene and background fade will be triggered when the calling
-     * Activity's exit transition completes.
-     *
-     * @param triggerEarly Set to true to have the Activity enter scene transition in as early as
-     *                     possible or set to false to wait for the calling Activity to exit first.
+     * Controls how the Activity's start Scene is faded in and when the enter scene
+     * is triggered to start.
+     * <p>When allow is true, the enter Scene will begin as soon as possible
+     * and the background will fade in when all shared elements are ready to begin
+     * transitioning. If allow is false, the Activity enter Scene and
+     * background fade will be triggered when the calling Activity's exit transition
+     * completes.</p>
+     * @param allow Set to true to have the Activity enter scene transition in
+     *              as early as possible or set to false to wait for the calling
+     *              Activity to exit first. The default value is true.
      */
-    public void setTriggerEarlyEnterTransition(boolean triggerEarly) {
+    public void setAllowOverlappingEnterTransition(boolean allow) {
+    }
+
+    /**
+     * Controls how the Activity's Scene fades out and when the calling Activity's
+     * enter scene is triggered when finishing to return to a calling Activity.
+     * <p>When allow is true, the Scene will fade out quickly
+     * and inform the calling Activity to transition in when the fade completes.
+     * When allow is false, the calling Activity will transition in after
+     * the Activity's Scene has exited.
+     * </p>
+     * @param allow Set to true to have the Activity fade out as soon as possible
+     *              and transition in the calling Activity. The default value is
+     *              true.
+     */
+    public void setAllowOverlappingExitTransition(boolean allow) {
     }
 
     /**
      * Start the exit transition.
      * @hide
      */
-    public Bundle startExitTransition(ActivityOptions options) {
+    public Bundle startExitTransitionToCallee(Bundle options) {
         return null;
     }
 
     /**
+     * Starts the transition back to the calling Activity.
+     * onTransitionEnd will be called on the current thread if there is no exit transition.
+     * @hide
+     */
+    public void startExitTransitionToCaller(Runnable onTransitionEnd) {
+        onTransitionEnd.run();
+    }
+
+    /** @hide */
+    public void restoreViewVisibilityAfterTransitionToCallee() {
+    }
+
+    /**
      * On entering Activity Scene transitions, shared element names may be mapped from a
      * source Activity's specified name to a unique shared element name in the View hierarchy.
      * Under most circumstances, mapping is not necessary - a single View will have the
diff --git a/core/java/android/view/WindowAnimationFrameStats.aidl b/core/java/android/view/WindowAnimationFrameStats.aidl
new file mode 100644
index 0000000..77f544b
--- /dev/null
+++ b/core/java/android/view/WindowAnimationFrameStats.aidl
@@ -0,0 +1,19 @@
+/**
+ * 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 android.view;
+
+parcelable WindowAnimationFrameStats;
diff --git a/core/java/android/view/WindowAnimationFrameStats.java b/core/java/android/view/WindowAnimationFrameStats.java
new file mode 100644
index 0000000..c60b96c
--- /dev/null
+++ b/core/java/android/view/WindowAnimationFrameStats.java
@@ -0,0 +1,94 @@
+/*
+ * 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 android.view;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * This class contains window animation frame statistics. For example, a window
+ * animation is usually performed when the application is transitioning from one
+ * activity to another. The frame statistics are a snapshot for the time interval
+ * from {@link #getStartTimeNano()} to {@link #getEndTimeNano()}.
+ * <p>
+ * The key idea is that in order to provide a smooth user experience the system should
+ * run window animations at a specific time interval obtained by calling {@link
+ * #getRefreshPeriodNano()}. If the system does not render a frame every refresh
+ * period the user will see irregular window transitions. The time when the frame was
+ * actually presented on the display by calling {@link #getFramePresentedTimeNano(int)}.
+ */
+public final class WindowAnimationFrameStats extends FrameStats implements Parcelable {
+    /**
+     * @hide
+     */
+    public WindowAnimationFrameStats() {
+        /* do nothing */
+    }
+
+    /**
+     * Initializes this isntance.
+     *
+     * @param refreshPeriodNano The display refresh period.
+     * @param framesPresentedTimeNano The presented frame times.
+     *
+     * @hide
+     */
+    public void init(long refreshPeriodNano, long[] framesPresentedTimeNano) {
+        mRefreshPeriodNano = refreshPeriodNano;
+        mFramesPresentedTimeNano = framesPresentedTimeNano;
+    }
+
+    private WindowAnimationFrameStats(Parcel parcel) {
+        mRefreshPeriodNano = parcel.readLong();
+        mFramesPresentedTimeNano = parcel.createLongArray();
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int flags) {
+        parcel.writeLong(mRefreshPeriodNano);
+        parcel.writeLongArray(mFramesPresentedTimeNano);
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder builder = new StringBuilder();
+        builder.append("WindowAnimationFrameStats[");
+        builder.append("frameCount:" + getFrameCount());
+        builder.append(", fromTimeNano:" + getStartTimeNano());
+        builder.append(", toTimeNano:" + getEndTimeNano());
+        builder.append(']');
+        return builder.toString();
+    }
+
+    public static final Creator<WindowAnimationFrameStats> CREATOR =
+            new Creator<WindowAnimationFrameStats>() {
+                @Override
+                public WindowAnimationFrameStats createFromParcel(Parcel parcel) {
+                    return new WindowAnimationFrameStats(parcel);
+                }
+
+                @Override
+                public WindowAnimationFrameStats[] newArray(int size) {
+                    return new WindowAnimationFrameStats[size];
+                }
+            };
+}
diff --git a/core/java/android/view/WindowContentFrameStats.aidl b/core/java/android/view/WindowContentFrameStats.aidl
new file mode 100644
index 0000000..aa9c2d6
--- /dev/null
+++ b/core/java/android/view/WindowContentFrameStats.aidl
@@ -0,0 +1,19 @@
+/**
+ * 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 android.view;
+
+parcelable WindowContentFrameStats;
diff --git a/core/java/android/view/WindowContentFrameStats.java b/core/java/android/view/WindowContentFrameStats.java
new file mode 100644
index 0000000..c6da2fb
--- /dev/null
+++ b/core/java/android/view/WindowContentFrameStats.java
@@ -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.
+ */
+
+package android.view;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * This class contains window content frame statistics. For example, a window content
+ * is rendred in frames when a view is scrolled. The frame statistics are a snapshot
+ * for the time interval from {@link #getStartTimeNano()} to {@link #getEndTimeNano()}.
+ * <p>
+ * The key idea is that in order to provide a smooth user experience an application
+ * has to draw a frame at a specific time interval obtained by calling {@link
+ * #getRefreshPeriodNano()}. If the application does not render a frame every refresh
+ * period the user will see irregular UI transitions.
+ * </p>
+ * <p>
+ * An application posts a frame for presentation by synchronously rendering its contents
+ * in a buffer which is then posted or posting a buffer to which the application is
+ * asychronously rendering the content via GL. After the frame is posted and rendered
+ * (potentially asynchronosly) it is presented to the user. The time a frame was posted
+ * can be obtained via {@link #getFramePostedTimeNano(int)}, the time a frame content
+ * was rendered and ready for dsiplay (GL case) via {@link #getFrameReadyTimeNano(int)},
+ * and the time a frame was presented on the screen via {@link #getFramePresentedTimeNano(int)}.
+ * </p>
+ */
+public final class WindowContentFrameStats extends FrameStats implements Parcelable {
+    private long[] mFramesPostedTimeNano;
+    private long[] mFramesReadyTimeNano;
+
+    /**
+     * @hide
+     */
+    public WindowContentFrameStats() {
+        /* do nothing */
+    }
+
+    /**
+     * Initializes this isntance.
+     *
+     * @param refreshPeriodNano The display refresh period.
+     * @param framesPostedTimeNano The times in milliseconds for when the frame contents were posted.
+     * @param framesPresentedTimeNano The times in milliseconds for when the frame contents were presented.
+     * @param framesReadyTimeNano The times in milliseconds for when the frame contents were ready to be presented.
+     *
+     * @hide
+     */
+    public void init(long refreshPeriodNano, long[] framesPostedTimeNano,
+            long[] framesPresentedTimeNano, long[] framesReadyTimeNano) {
+        mRefreshPeriodNano = refreshPeriodNano;
+        mFramesPostedTimeNano = framesPostedTimeNano;
+        mFramesPresentedTimeNano = framesPresentedTimeNano;
+        mFramesReadyTimeNano = framesReadyTimeNano;
+    }
+
+    private WindowContentFrameStats(Parcel parcel) {
+        mRefreshPeriodNano = parcel.readLong();
+        mFramesPostedTimeNano = parcel.createLongArray();
+        mFramesPresentedTimeNano = parcel.createLongArray();
+        mFramesReadyTimeNano = parcel.createLongArray();
+    }
+
+    /**
+     * Get the time a frame at a given index was posted by the producer (e.g. the application).
+     * It is either explicitly set or defaulted to the time when the render buffer was posted.
+     * <p>
+     * <strong>Note:</strong> A frame can be posted and still it contents being rendered
+     * asynchronously in GL. To get the time the frame content was completely rendered and
+     * ready to display call {@link #getFrameReadyTimeNano(int)}.
+     * </p>
+     *
+     * @param index The frame index.
+     * @return The posted time in nanoseconds.
+     */
+    public long getFramePostedTimeNano(int index) {
+        if (mFramesPostedTimeNano == null) {
+            throw new IndexOutOfBoundsException();
+        }
+        return mFramesPostedTimeNano[index];
+    }
+
+    /**
+     * Get the time a frame at a given index was ready for presentation.
+     * <p>
+     * <strong>Note:</strong> A frame can be posted and still it contents being rendered
+     * asynchronously in GL. In such a case this is the time when the frame contents were
+     * completely rendered.
+     * </p>
+     *
+     * @param index The frame index.
+     * @return The ready time in nanoseconds or {@link #UNDEFINED_TIME_NANO}
+     *         if the frame is not ready yet.
+     */
+    public long getFrameReadyTimeNano(int index) {
+        if (mFramesReadyTimeNano == null) {
+            throw new IndexOutOfBoundsException();
+        }
+        return mFramesReadyTimeNano[index];
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int flags) {
+        parcel.writeLong(mRefreshPeriodNano);
+        parcel.writeLongArray(mFramesPostedTimeNano);
+        parcel.writeLongArray(mFramesPresentedTimeNano);
+        parcel.writeLongArray(mFramesReadyTimeNano);
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder builder = new StringBuilder();
+        builder.append("WindowContentFrameStats[");
+        builder.append("frameCount:" + getFrameCount());
+        builder.append(", fromTimeNano:" + getStartTimeNano());
+        builder.append(", toTimeNano:" + getEndTimeNano());
+        builder.append(']');
+        return builder.toString();
+    }
+
+    public static final Parcelable.Creator<WindowContentFrameStats> CREATOR =
+            new Creator<WindowContentFrameStats>() {
+                @Override
+                public WindowContentFrameStats createFromParcel(Parcel parcel) {
+                    return new WindowContentFrameStats(parcel);
+                }
+
+                @Override
+                public WindowContentFrameStats[] newArray(int size) {
+                    return new WindowContentFrameStats[size];
+                }
+            };
+}
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 53a4c0d0..032a82f 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -49,7 +49,7 @@
 public interface WindowManager extends ViewManager {
     /**
      * Exception that is thrown when trying to add view whose
-     * {@link WindowManager.LayoutParams} {@link WindowManager.LayoutParams#token}
+     * {@link LayoutParams} {@link LayoutParams#token}
      * is invalid.
      */
     public static class BadTokenException extends RuntimeException {
@@ -173,7 +173,6 @@
          * @see #TYPE_SEARCH_BAR
          * @see #TYPE_PHONE
          * @see #TYPE_SYSTEM_ALERT
-         * @see #TYPE_KEYGUARD
          * @see #TYPE_TOAST
          * @see #TYPE_SYSTEM_OVERLAY
          * @see #TYPE_PRIORITY_PHONE
@@ -197,7 +196,6 @@
             @ViewDebug.IntToString(from = TYPE_SEARCH_BAR, to = "TYPE_SEARCH_BAR"),
             @ViewDebug.IntToString(from = TYPE_PHONE, to = "TYPE_PHONE"),
             @ViewDebug.IntToString(from = TYPE_SYSTEM_ALERT, to = "TYPE_SYSTEM_ALERT"),
-            @ViewDebug.IntToString(from = TYPE_KEYGUARD, to = "TYPE_KEYGUARD"),
             @ViewDebug.IntToString(from = TYPE_TOAST, to = "TYPE_TOAST"),
             @ViewDebug.IntToString(from = TYPE_SYSTEM_OVERLAY, to = "TYPE_SYSTEM_OVERLAY"),
             @ViewDebug.IntToString(from = TYPE_PRIORITY_PHONE, to = "TYPE_PRIORITY_PHONE"),
@@ -341,13 +339,13 @@
          * In multiuser systems shows only on the owning user's window.
          */
         public static final int TYPE_SYSTEM_ALERT       = FIRST_SYSTEM_WINDOW+3;
-        
+
         /**
          * Window type: keyguard window.
          * In multiuser systems shows on all users' windows.
          */
         public static final int TYPE_KEYGUARD           = FIRST_SYSTEM_WINDOW+4;
-        
+
         /**
          * Window type: transient notifications.
          * In multiuser systems shows only on the owning user's window.
@@ -610,7 +608,10 @@
          * screen is pressed, you will receive this first touch event.  Usually
          * the first touch event is consumed by the system since the user can
          * not see what they are pressing on.
+         *
+         * @deprecated This flag has no effect.
          */
+        @Deprecated
         public static final int FLAG_TOUCHABLE_WHEN_WAKING = 0x00000040;
         
         /** Window flag: as long as this window is visible to the user, keep
@@ -913,7 +914,6 @@
          */
         public static final int FLAG_NEEDS_MENU_KEY = 0x40000000;
 
-
         /**
          * Various behavioral options/flags.  Default is none.
          * 
@@ -1087,6 +1087,14 @@
         public static final int PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR = 0x00000200;
 
         /**
+         * Flag whether the current window is a keyguard window, meaning that it will hide all other
+         * windows behind it except for windows with flag {@link #FLAG_SHOW_WHEN_LOCKED} set.
+         * Further, this can only be set by {@link LayoutParams#TYPE_STATUS_BAR}.
+         * {@hide}
+         */
+        public static final int PRIVATE_FLAG_KEYGUARD = 0x00000400;
+
+        /**
          * Control flags that are private to the platform.
          * @hide
          */
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index bd203c8..c9be54d 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -90,8 +90,7 @@
     public final static int FLAG_FILTERED = 0x04000000;
     public final static int FLAG_DISABLE_KEY_REPEAT = 0x08000000;
 
-    public final static int FLAG_WOKE_HERE = 0x10000000;
-    public final static int FLAG_BRIGHT_HERE = 0x20000000;
+    public final static int FLAG_INTERACTIVE = 0x20000000;
     public final static int FLAG_PASS_TO_USER = 0x40000000;
 
     // Flags used for indicating whether the internal and/or external input devices
@@ -744,11 +743,10 @@
      * because it's the most fragile.
      * @param event The key event.
      * @param policyFlags The policy flags associated with the key.
-     * @param isScreenOn True if the screen is already on
      *
      * @return Actions flags: may be {@link #ACTION_PASS_TO_USER}.
      */
-    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn);
+    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags);
 
     /**
      * Called from the input reader thread before a motion is enqueued when the screen is off.
@@ -761,7 +759,7 @@
      *
      * @return Actions flags: may be {@link #ACTION_PASS_TO_USER}.
      */
-    public int interceptMotionBeforeQueueingWhenScreenOff(long whenNanos, int policyFlags);
+    public int interceptWakeMotionBeforeQueueing(long whenNanos, int policyFlags);
 
     /**
      * Called from the input dispatcher thread before a key is dispatched to a window.
@@ -1007,6 +1005,14 @@
     public void dismissKeyguardLw();
 
     /**
+     * Ask the policy whether the Keyguard has drawn. If the Keyguard is disabled, this method
+     * returns true as soon as we know that Keyguard is disabled.
+     *
+     * @return true if the keyguard has drawn.
+     */
+    public boolean isKeyguardDrawnLw();
+
+    /**
      * Given an orientation constant, returns the appropriate surface rotation,
      * taking into account sensors, docking mode, rotation lock, and other factors.
      *
diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java
index 4dd8dcb..5b9372d 100644
--- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java
+++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java
@@ -163,6 +163,19 @@
     }
 
     /**
+     * Gets the root {@link AccessibilityNodeInfo} in a given window.
+     *
+     * @param connectionId The id of a connection for interacting with the system.
+     * @param windowId The window id.
+     * @return The root {@link AccessibilityNodeInfo} if found, null otherwise.
+     */
+    public AccessibilityNodeInfo getRootInWindow(int connectionId, int windowId) {
+        return findAccessibilityNodeInfoByAccessibilityId(connectionId, windowId,
+                AccessibilityNodeInfo.ROOT_NODE_ID, false,
+                AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS);
+    }
+
+    /**
      * Gets the info for a window.
      *
      * @param connectionId The id of a connection for interacting with the system.
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index a6904f7..9d10930 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -77,6 +77,9 @@
     public static final int ACTIVE_WINDOW_ID = UNDEFINED_ITEM_ID;
 
     /** @hide */
+    public static final int ANY_WINDOW_ID = -2;
+
+    /** @hide */
     public static final int FLAG_PREFETCH_PREDECESSORS = 0x00000001;
 
     /** @hide */
diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl
index fe3e5c6..b6570cc 100644
--- a/core/java/android/view/accessibility/IAccessibilityManager.aidl
+++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl
@@ -57,4 +57,6 @@
 
     void temporaryEnableAccessibilityStateUntilKeyguardRemoved(in ComponentName service,
             boolean touchExplorationEnabled);
+
+    IBinder getWindowToken(int windowId);
 }
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index f2ce113..e3bd9fd 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -26,6 +26,7 @@
 
 import android.content.Context;
 import android.graphics.Rect;
+import android.inputmethodservice.InputMethodService;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -41,13 +42,13 @@
 import android.util.Pools.SimplePool;
 import android.util.PrintWriterPrinter;
 import android.util.Printer;
+import android.util.SparseArray;
 import android.view.InputChannel;
 import android.view.InputEvent;
 import android.view.InputEventSender;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewRootImpl;
-import android.util.SparseArray;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -334,6 +335,11 @@
     InputChannel mCurChannel;
     ImeInputEventSender mCurSender;
 
+    /**
+     * The current cursor/anchor monitor mode.
+     */
+    int mCursorAnchorMonitorMode = InputMethodService.CURSOR_ANCHOR_MONITOR_MODE_NONE;
+
     final Pool<PendingEvent> mPendingEventPool = new SimplePool<PendingEvent>(20);
     final SparseArray<PendingEvent> mPendingEvents = new SparseArray<PendingEvent>(20);
 
@@ -346,6 +352,7 @@
     static final int MSG_SEND_INPUT_EVENT = 5;
     static final int MSG_TIMEOUT_INPUT_EVENT = 6;
     static final int MSG_FLUSH_INPUT_EVENT = 7;
+    static final int SET_CURSOR_ANCHOR_MONITOR_MODE = 8;
 
     class H extends Handler {
         H(Looper looper) {
@@ -476,6 +483,12 @@
                     finishedInputEvent(msg.arg1, false, false);
                     return;
                 }
+                case SET_CURSOR_ANCHOR_MONITOR_MODE: {
+                    synchronized (mH) {
+                        mCursorAnchorMonitorMode = msg.arg1;
+                    }
+                    return;
+                }
             }
         }
     }
@@ -540,6 +553,11 @@
         public void setActive(boolean active) {
             mH.sendMessage(mH.obtainMessage(MSG_SET_ACTIVE, active ? 1 : 0, 0));
         }
+
+        @Override
+        public void setCursorAnchorMonitorMode(int monitorMode) {
+            mH.sendMessage(mH.obtainMessage(SET_CURSOR_ANCHOR_MONITOR_MODE, monitorMode, 0));
+        }
     };
 
     final InputConnection mDummyInputConnection = new BaseInputConnection(this, false);
@@ -1465,9 +1483,30 @@
      * of the input editor's cursor in its window.
      */
     public boolean isWatchingCursor(View view) {
-        return false;
+        if (!isActive(view)) {
+            return false;
+        }
+        synchronized (mH) {
+            return mCursorAnchorMonitorMode ==
+                    InputMethodService.CURSOR_ANCHOR_MONITOR_MODE_CURSOR_RECT;
+        }
     }
-    
+
+    /**
+     * Set cursor/anchor monitor mode via {@link com.android.server.InputMethodManagerService}.
+     * This is an internal method for {@link android.inputmethodservice.InputMethodService} and
+     * should never be used from IMEs and applications.
+     *
+     * @hide
+     */
+    public void setCursorAnchorMonitorMode(IBinder imeToken, int monitorMode) {
+        try {
+            mService.setCursorAnchorMonitorMode(imeToken, monitorMode);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     /**
      * Report the current cursor location in its window.
      */
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index bde1b93..62fbbc4 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1707,6 +1707,9 @@
      * thread of this WebView. Care is therefore required to maintain thread
      * safety.</li>
      * <li> The Java object's fields are not accessible.</li>
+     * <li> For applications targeted to API level {@link android.os.Build.VERSION_CODES#L}
+     * and above, methods of injected Java objects are enumerable from
+     * JavaScript.</li>
      * </ul>
      *
      * @param object the Java object to inject into this WebView's JavaScript
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 96a2ab5..301317e 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -7167,7 +7167,7 @@
 
             final int itemCount = getCount();
             final int clampedPosition = MathUtils.constrain(targetPosition, 0, itemCount - 1);
-            final int clampedBoundPosition = MathUtils.constrain(boundPosition, 0, itemCount - 1);
+            final int clampedBoundPosition = MathUtils.constrain(boundPosition, -1, itemCount - 1);
             final int firstPosition = getFirstVisiblePosition();
             final int lastPosition = firstPosition + getChildCount();
             final int targetRow = getRowForPosition(clampedPosition);
diff --git a/core/java/android/widget/ActionMenuPresenter.java b/core/java/android/widget/ActionMenuPresenter.java
index 1f405a7..e4575e5 100644
--- a/core/java/android/widget/ActionMenuPresenter.java
+++ b/core/java/android/widget/ActionMenuPresenter.java
@@ -640,16 +640,6 @@
         }
 
         @Override
-        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-            if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
-                // Fill available height
-                heightMeasureSpec = MeasureSpec.makeMeasureSpec(
-                        MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY);
-            }
-            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-        }
-
-        @Override
         public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
             super.onInitializeAccessibilityNodeInfo(info);
             info.setCanOpenPopup(true);
diff --git a/core/java/android/widget/ActionMenuView.java b/core/java/android/widget/ActionMenuView.java
index 32c7086..3975edf 100644
--- a/core/java/android/widget/ActionMenuView.java
+++ b/core/java/android/widget/ActionMenuView.java
@@ -20,6 +20,7 @@
 import android.util.AttributeSet;
 import android.view.Gravity;
 import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewDebug;
 import android.view.ViewGroup;
@@ -27,6 +28,7 @@
 import com.android.internal.view.menu.ActionMenuItemView;
 import com.android.internal.view.menu.MenuBuilder;
 import com.android.internal.view.menu.MenuItemImpl;
+import com.android.internal.view.menu.MenuPresenter;
 import com.android.internal.view.menu.MenuView;
 
 /**
@@ -50,6 +52,8 @@
     private int mMinCellSize;
     private int mGeneratedItemPadding;
 
+    private OnMenuItemClickListener mOnMenuItemClickListener;
+
     public ActionMenuView(Context context) {
         this(context, null);
     }
@@ -78,6 +82,10 @@
         }
     }
 
+    public void setOnMenuItemClickListener(OnMenuItemClickListener listener) {
+        mOnMenuItemClickListener = listener;
+    }
+
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         // If we've been given an exact size to match, apply special formatting during layout.
@@ -96,11 +104,11 @@
             mMenu.onItemsChanged(true);
         }
 
-        if (mFormatItems) {
+        final int childCount = getChildCount();
+        if (mFormatItems && childCount > 0) {
             onMeasureExactFormat(widthMeasureSpec, heightMeasureSpec);
         } else {
             // Previous measurement at exact format may have set margins - reset them.
-            final int childCount = getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = getChildAt(i);
                 final LayoutParams lp = (LayoutParams) child.getLayoutParams();
@@ -559,9 +567,11 @@
         if (mMenu == null) {
             final Context context = getContext();
             mMenu = new MenuBuilder(context);
+            mMenu.setCallback(new MenuBuilderCallback());
             mPresenter = new ActionMenuPresenter(context);
-            mPresenter.initForMenu(context, mMenu);
             mPresenter.setMenuView(this);
+            mPresenter.setCallback(new ActionMenuPresenterCallback());
+            mMenu.addMenuPresenter(mPresenter);
         }
 
         return mMenu;
@@ -591,6 +601,44 @@
         return false;
     }
 
+    /**
+     * Interface responsible for receiving menu item click events if the items themselves
+     * do not have individual item click listeners.
+     */
+    public interface OnMenuItemClickListener {
+        /**
+         * This method will be invoked when a menu item is clicked if the item itself did
+         * not already handle the event.
+         *
+         * @param item {@link MenuItem} that was clicked
+         * @return <code>true</code> if the event was handled, <code>false</code> otherwise.
+         */
+        public boolean onMenuItemClick(MenuItem item);
+    }
+
+    private class MenuBuilderCallback implements MenuBuilder.Callback {
+        @Override
+        public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) {
+            return mOnMenuItemClickListener != null &&
+                    mOnMenuItemClickListener.onMenuItemClick(item);
+        }
+
+        @Override
+        public void onMenuModeChange(MenuBuilder menu) {
+        }
+    }
+
+    private class ActionMenuPresenterCallback implements ActionMenuPresenter.Callback {
+        @Override
+        public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) {
+        }
+
+        @Override
+        public boolean onOpenSubMenu(MenuBuilder subMenu) {
+            return false;
+        }
+    }
+
     /** @hide */
     public interface ActionMenuChildView {
         public boolean needsDividerBefore();
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 333e631..b0a4e24 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -25,6 +25,7 @@
 import android.text.SpannableString;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 import com.android.internal.widget.EditableInputConnection;
 
 import android.R;
@@ -1337,11 +1338,10 @@
 
         layout.drawBackground(canvas, highlight, highlightPaint, cursorOffsetVertical,
                 firstLine, lastLine);
-        final HardwareRenderer renderer = mTextView.getHardwareRenderer();
 
         if (layout instanceof DynamicLayout) {
             if (mTextDisplayLists == null) {
-                mTextDisplayLists = new TextDisplayList[ArrayUtils.idealObjectArraySize(0)];
+                mTextDisplayLists = ArrayUtils.emptyArray(TextDisplayList.class);
             }
 
             DynamicLayout dynamicLayout = (DynamicLayout) layout;
@@ -1401,7 +1401,7 @@
                             // No need to untranslate, previous context is popped after
                             // drawDisplayList
                         } finally {
-                            blockDisplayList.end(renderer, hardwareCanvas);
+                            blockDisplayList.end(hardwareCanvas);
                             // Same as drawDisplayList below, handled by our TextView's parent
                             blockDisplayList.setClipToBounds(false);
                         }
@@ -1441,10 +1441,7 @@
         }
 
         // No available index found, the pool has to grow
-        int newSize = ArrayUtils.idealIntArraySize(length + 1);
-        TextDisplayList[] displayLists = new TextDisplayList[newSize];
-        System.arraycopy(mTextDisplayLists, 0, displayLists, 0, length);
-        mTextDisplayLists = displayLists;
+        mTextDisplayLists = GrowingArrayUtils.append(mTextDisplayLists, length, null);
         return length;
     }
 
diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java
index 64953f8..b47177a 100644
--- a/core/java/android/widget/ListPopupWindow.java
+++ b/core/java/android/widget/ListPopupWindow.java
@@ -24,6 +24,7 @@
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
+import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.IntProperty;
@@ -1225,6 +1226,15 @@
                 forwarding = onTouchForwarded(event) || !onForwardingStopped();
             } else {
                 forwarding = onTouchObserved(event) && onForwardingStarted();
+
+                if (forwarding) {
+                    // Make sure we cancel any ongoing source event stream.
+                    final long now = SystemClock.uptimeMillis();
+                    final MotionEvent e = MotionEvent.obtain(now, now, MotionEvent.ACTION_CANCEL,
+                            0.0f, 0.0f, 0);
+                    mSrc.onTouchEvent(e);
+                    e.recycle();
+                }
             }
 
             mForwarding = forwarding;
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java
index 00b2c13..d6fa05a 100644
--- a/core/java/android/widget/NumberPicker.java
+++ b/core/java/android/widget/NumberPicker.java
@@ -1991,7 +1991,16 @@
             , '\u0669',
             // Extended Arabic-Indic
             '\u06f0', '\u06f1', '\u06f2', '\u06f3', '\u06f4', '\u06f5', '\u06f6', '\u06f7', '\u06f8'
-            , '\u06f9'
+            , '\u06f9',
+            // Hindi and Marathi (Devanagari script)
+            '\u0966', '\u0967', '\u0968', '\u0969', '\u096a', '\u096b', '\u096c', '\u096d', '\u096e'
+            , '\u096f',
+            // Bengali
+            '\u09e6', '\u09e7', '\u09e8', '\u09e9', '\u09ea', '\u09eb', '\u09ec', '\u09ed', '\u09ee'
+            , '\u09ef',
+            // Kannada
+            '\u0ce6', '\u0ce7', '\u0ce8', '\u0ce9', '\u0cea', '\u0ceb', '\u0cec', '\u0ced', '\u0cee'
+            , '\u0cef'
     };
 
     /**
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 0d3df51..f7d20b53 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -1516,6 +1516,75 @@
     }
 
     /**
+     * Helper action to set a color filter on a compound drawable on a TextView. Supports relative
+     * (s/t/e/b) or cardinal (l/t/r/b) arrangement.
+     */
+    private class TextViewDrawableColorFilterAction extends Action {
+        public TextViewDrawableColorFilterAction(int viewId, boolean isRelative, int index,
+                int color, PorterDuff.Mode mode) {
+            this.viewId = viewId;
+            this.isRelative = isRelative;
+            this.index = index;
+            this.color = color;
+            this.mode = mode;
+        }
+
+        public TextViewDrawableColorFilterAction(Parcel parcel) {
+            viewId = parcel.readInt();
+            isRelative = (parcel.readInt() != 0);
+            index = parcel.readInt();
+            color = parcel.readInt();
+            mode = readPorterDuffMode(parcel);
+        }
+
+        private PorterDuff.Mode readPorterDuffMode(Parcel parcel) {
+            int mode = parcel.readInt();
+            if (mode >= 0 && mode < PorterDuff.Mode.values().length) {
+                return PorterDuff.Mode.values()[mode];
+            } else {
+                return PorterDuff.Mode.CLEAR;
+            }
+        }
+
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(TAG);
+            dest.writeInt(viewId);
+            dest.writeInt(isRelative ? 1 : 0);
+            dest.writeInt(index);
+            dest.writeInt(color);
+            dest.writeInt(mode.ordinal());
+        }
+
+        @Override
+        public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
+            final TextView target = (TextView) root.findViewById(viewId);
+            if (target == null) return;
+            Drawable[] drawables = isRelative
+                    ? target.getCompoundDrawablesRelative()
+                    : target.getCompoundDrawables();
+            if (index < 0 || index >= 4) {
+                throw new IllegalStateException("index must be in range [0, 3].");
+            }
+            Drawable d = drawables[index];
+            if (d != null) {
+                d.mutate();
+                d.setColorFilter(color, mode);
+            }
+        }
+
+        public String getActionName() {
+            return "TextViewDrawableColorFilterAction";
+        }
+
+        final boolean isRelative;
+        final int index;
+        final int color;
+        final PorterDuff.Mode mode;
+
+        public final static int TAG = 17;
+    }
+
+    /**
      * Simple class used to keep track of memory usage in a RemoteViews.
      *
      */
@@ -1686,6 +1755,9 @@
                     case SetRemoteViewsAdapterList.TAG:
                         mActions.add(new SetRemoteViewsAdapterList(parcel));
                         break;
+                    case TextViewDrawableColorFilterAction.TAG:
+                        mActions.add(new TextViewDrawableColorFilterAction(parcel));
+                        break;
                     default:
                         throw new ActionException("Tag " + tag + " not found");
                     }
@@ -1921,6 +1993,28 @@
     }
 
     /**
+     * Equivalent to applying a color filter on one of the drawables in
+     * {@link android.widget.TextView#getCompoundDrawablesRelative()}.
+     *
+     * @param viewId The id of the view whose text should change.
+     * @param index  The index of the drawable in the array of
+     *               {@link android.widget.TextView#getCompoundDrawablesRelative()} to set the color
+     *               filter on. Must be in [0, 3].
+     * @param color  The color of the color filter. See
+     *               {@link Drawable#setColorFilter(int, android.graphics.PorterDuff.Mode)}.
+     * @param mode   The mode of the color filter. See
+     *               {@link Drawable#setColorFilter(int, android.graphics.PorterDuff.Mode)}.
+     * @hide
+     */
+    public void setTextViewCompoundDrawablesRelativeColorFilter(int viewId,
+            int index, int color, PorterDuff.Mode mode) {
+        if (index < 0 || index >= 4) {
+            throw new IllegalArgumentException("index must be in range [0, 3].");
+        }
+        addAction(new TextViewDrawableColorFilterAction(viewId, true, index, color, mode));
+    }
+
+    /**
      * Equivalent to calling ImageView.setImageResource
      *
      * @param viewId The id of the view whose drawable should change
diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java
index 1eedc5d..d8a6867 100644
--- a/core/java/android/widget/SearchView.java
+++ b/core/java/android/widget/SearchView.java
@@ -1171,8 +1171,8 @@
                     || !mOnQueryChangeListener.onQueryTextSubmit(query.toString())) {
                 if (mSearchable != null) {
                     launchQuerySearch(KeyEvent.KEYCODE_UNKNOWN, null, query.toString());
-                    setImeVisibility(false);
                 }
+                setImeVisibility(false);
                 dismissSuggestions();
             }
         }
diff --git a/core/java/android/widget/ShareActionProvider.java b/core/java/android/widget/ShareActionProvider.java
index 64a1574..cde8080 100644
--- a/core/java/android/widget/ShareActionProvider.java
+++ b/core/java/android/widget/ShareActionProvider.java
@@ -161,9 +161,11 @@
     @Override
     public View onCreateActionView() {
         // Create the view and set its data model.
-        ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mShareHistoryFileName);
         ActivityChooserView activityChooserView = new ActivityChooserView(mContext);
-        activityChooserView.setActivityChooserModel(dataModel);
+        if (!activityChooserView.isInEditMode()) {
+            ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mShareHistoryFileName);
+            activityChooserView.setActivityChooserModel(dataModel);
+        }
 
         // Lookup and set the expand action icon.
         TypedValue outTypedValue = new TypedValue();
diff --git a/core/java/android/widget/SpellChecker.java b/core/java/android/widget/SpellChecker.java
index 1cda631..595f023 100644
--- a/core/java/android/widget/SpellChecker.java
+++ b/core/java/android/widget/SpellChecker.java
@@ -35,6 +35,7 @@
 import android.view.textservice.TextServicesManager;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 import java.text.BreakIterator;
 import java.util.Locale;
@@ -105,9 +106,9 @@
         mTextView = textView;
 
         // Arbitrary: these arrays will automatically double their sizes on demand
-        final int size = ArrayUtils.idealObjectArraySize(1);
-        mIds = new int[size];
-        mSpellCheckSpans = new SpellCheckSpan[size];
+        final int size = 1;
+        mIds = ArrayUtils.newUnpaddedIntArray(size);
+        mSpellCheckSpans = new SpellCheckSpan[mIds.length];
 
         setLocale(mTextView.getSpellCheckerLocale());
 
@@ -184,17 +185,9 @@
             if (mIds[i] < 0) return i;
         }
 
-        if (mLength == mSpellCheckSpans.length) {
-            final int newSize = mLength * 2;
-            int[] newIds = new int[newSize];
-            SpellCheckSpan[] newSpellCheckSpans = new SpellCheckSpan[newSize];
-            System.arraycopy(mIds, 0, newIds, 0, mLength);
-            System.arraycopy(mSpellCheckSpans, 0, newSpellCheckSpans, 0, mLength);
-            mIds = newIds;
-            mSpellCheckSpans = newSpellCheckSpans;
-        }
-
-        mSpellCheckSpans[mLength] = new SpellCheckSpan();
+        mIds = GrowingArrayUtils.append(mIds, mLength, 0);
+        mSpellCheckSpans = GrowingArrayUtils.append(
+                mSpellCheckSpans, mLength, new SpellCheckSpan());
         mLength++;
         return mLength - 1;
     }
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 687036c..a7278da 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -714,19 +714,19 @@
                     break;
 
                 case com.android.internal.R.styleable.TextAppearance_shadowColor:
-                    shadowcolor = a.getInt(attr, 0);
+                    shadowcolor = appearance.getInt(attr, 0);
                     break;
 
                 case com.android.internal.R.styleable.TextAppearance_shadowDx:
-                    dx = a.getFloat(attr, 0);
+                    dx = appearance.getFloat(attr, 0);
                     break;
 
                 case com.android.internal.R.styleable.TextAppearance_shadowDy:
-                    dy = a.getFloat(attr, 0);
+                    dy = appearance.getFloat(attr, 0);
                     break;
 
                 case com.android.internal.R.styleable.TextAppearance_shadowRadius:
-                    r = a.getFloat(attr, 0);
+                    r = appearance.getFloat(attr, 0);
                     break;
                 }
             }
@@ -5163,12 +5163,12 @@
                 final int width = mRight - mLeft;
                 final int padding = getCompoundPaddingLeft() + getCompoundPaddingRight();
                 final float dx = mLayout.getLineRight(0) - (width - padding);
-                canvas.translate(isLayoutRtl ? -dx : +dx, 0.0f);
+                canvas.translate(layout.getParagraphDirection(0) * dx, 0.0f);
             }
 
             if (mMarquee != null && mMarquee.isRunning()) {
                 final float dx = -mMarquee.getScroll();
-                canvas.translate(isLayoutRtl ? -dx : +dx, 0.0f);
+                canvas.translate(layout.getParagraphDirection(0) * dx, 0.0f);
             }
         }
 
@@ -5182,8 +5182,8 @@
         }
 
         if (mMarquee != null && mMarquee.shouldDrawGhost()) {
-            final int dx = (int) mMarquee.getGhostOffset();
-            canvas.translate(isLayoutRtl ? -dx : dx, 0.0f);
+            final float dx = mMarquee.getGhostOffset();
+            canvas.translate(layout.getParagraphDirection(0) * dx, 0.0f);
             layout.draw(canvas, highlight, mHighlightPaint, cursorOffsetVertical);
         }
 
diff --git a/core/java/android/widget/TimePickerDelegate.java b/core/java/android/widget/TimePickerDelegate.java
index c9a9894..79256e5 100644
--- a/core/java/android/widget/TimePickerDelegate.java
+++ b/core/java/android/widget/TimePickerDelegate.java
@@ -152,11 +152,11 @@
         final int headerBackgroundColor = a.getColor(
                 R.styleable.TimePicker_headerBackgroundColor, 0);
 
-        a.recycle();
-
         final int layoutResourceId = a.getResourceId(
                 R.styleable.TimePicker_internalLayout, R.layout.time_picker_holo);
 
+        a.recycle();
+
         final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
                 Context.LAYOUT_INFLATER_SERVICE);
 
diff --git a/core/java/android/widget/Toolbar.java b/core/java/android/widget/Toolbar.java
new file mode 100644
index 0000000..075feba
--- /dev/null
+++ b/core/java/android/widget/Toolbar.java
@@ -0,0 +1,1048 @@
+/*
+ * 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 android.widget;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewDebug;
+import android.view.ViewGroup;
+import com.android.internal.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A standard toolbar for use within application content.
+ *
+ * <p>A Toolbar is a generalization of {@link android.app.ActionBar action bars} for use
+ * within application layouts. While an action bar is traditionally part of an
+ * {@link android.app.Activity Activity's} opaque window decor controlled by the framework,
+ * a Toolbar may be placed at any arbitrary level of nesting within a view hierarchy.
+ * An application may choose to designate a Toolbar as the action bar for an Activity
+ * using the {@link android.app.Activity#setActionBar(Toolbar) setActionBar()} method.</p>
+ *
+ * <p>Toolbar supports a more focused feature set than ActionBar. From start to end, a toolbar
+ * may contain a combination of the following optional elements:
+ *
+ * <ul>
+ *     <li><em>A navigation button.</em> This may be an Up arrow, navigation menu toggle, close,
+ *     collapse, done or another glyph of the app's choosing. This button should always be used
+ *     to access other navigational destinations within the container of the Toolbar and
+ *     its signified content or otherwise leave the current context signified by the Toolbar.</li>
+ *     <li><em>A branded logo image.</em> This may extend to the height of the bar and can be
+ *     arbitrarily wide.</li>
+ *     <li><em>A title and subtitle.</em> The title should be a signpost for the Toolbar's current
+ *     position in the navigation hierarchy and the content contained there. The subtitle,
+ *     if present should indicate any extended information about the current content.
+ *     If an app uses a logo image it should strongly consider omitting a title and subtitle.</li>
+ *     <li><em>One or more custom views.</em> The application may add arbitrary child views
+ *     to the Toolbar. They will appear at this position within the layout. If a child view's
+ *     {@link LayoutParams} indicates a {@link Gravity} value of
+ *     {@link Gravity#CENTER_HORIZONTAL CENTER_HORIZONTAL} the view will attempt to center
+ *     within the available space remaining in the Toolbar after all other elements have been
+ *     measured.</li>
+ *     <li><em>An {@link ActionMenuView action menu}.</em> The menu of actions will pin to the
+ *     end of the Toolbar offering a few
+ *     <a href="http://developer.android.com/design/patterns/actionbar.html#ActionButtons">
+ *         frequent, important or typical</a> actions along with an optional overflow menu for
+ *         additional actions.</li>
+ * </ul>
+ * </p>
+ *
+ * <p>In modern Android UIs developers should lean more on a visually distinct color scheme for
+ * toolbars than on their application icon. The use of application icon plus title as a standard
+ * layout is discouraged on API 21 devices and newer.</p>
+ */
+public class Toolbar extends ViewGroup {
+    private ActionMenuView mMenuView;
+    private TextView mTitleTextView;
+    private TextView mSubtitleTextView;
+    private ImageButton mNavButtonView;
+    private ImageView mLogoView;
+
+    private int mTitleTextAppearance;
+    private int mSubtitleTextAppearance;
+    private int mTitleMarginStart;
+    private int mTitleMarginEnd;
+    private int mTitleMarginTop;
+    private int mTitleMarginBottom;
+
+    private int mGravity = Gravity.START | Gravity.CENTER_VERTICAL;
+
+    private CharSequence mTitleText;
+    private CharSequence mSubtitleText;
+
+    // Clear me after use.
+    private final ArrayList<View> mTempViews = new ArrayList<View>();
+
+    private OnMenuItemClickListener mOnMenuItemClickListener;
+
+    private final ActionMenuView.OnMenuItemClickListener mMenuViewItemClickListener =
+            new ActionMenuView.OnMenuItemClickListener() {
+                @Override
+                public boolean onMenuItemClick(MenuItem item) {
+                    if (mOnMenuItemClickListener != null) {
+                        return mOnMenuItemClickListener.onMenuItemClick(item);
+                    }
+                    return false;
+                }
+            };
+
+    public Toolbar(Context context) {
+        this(context, null);
+    }
+
+    public Toolbar(Context context, AttributeSet attrs) {
+        this(context, attrs, com.android.internal.R.attr.toolbarStyle);
+    }
+
+    public Toolbar(Context context, AttributeSet attrs, int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public Toolbar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+
+        final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Toolbar,
+                defStyleAttr, defStyleRes);
+
+        mTitleTextAppearance = a.getResourceId(R.styleable.Toolbar_titleTextAppearance, 0);
+        mSubtitleTextAppearance = a.getResourceId(R.styleable.Toolbar_subtitleTextAppearance, 0);
+        mGravity = a.getInteger(R.styleable.Toolbar_gravity, mGravity);
+        mTitleMarginStart = mTitleMarginEnd = Math.max(0, a.getDimensionPixelOffset(
+                R.styleable.Toolbar_titleMargins, -1));
+
+        final int marginStart = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginStart, -1);
+        if (marginStart >= 0) {
+            mTitleMarginStart = marginStart;
+        }
+
+        final int marginEnd = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginEnd, -1);
+        if (marginEnd >= 0) {
+            mTitleMarginEnd = marginEnd;
+        }
+
+        final int marginTop = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginTop, -1);
+        if (marginTop >= 0) {
+            mTitleMarginTop = marginTop;
+        }
+
+        final int marginBottom = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginBottom,
+                -1);
+        if (marginBottom >= 0) {
+            mTitleMarginBottom = marginBottom;
+        }
+
+        final CharSequence title = a.getText(R.styleable.Toolbar_title);
+        if (!TextUtils.isEmpty(title)) {
+            setTitle(title);
+        }
+
+        final CharSequence subtitle = a.getText(R.styleable.Toolbar_subtitle);
+        if (!TextUtils.isEmpty(subtitle)) {
+            setSubtitle(title);
+        }
+        a.recycle();
+    }
+
+    /**
+     * Set a logo drawable from a resource id.
+     *
+     * <p>This drawable should generally take the place of title text. The logo cannot be
+     * clicked. Apps using a logo should also supply a description using
+     * {@link #setLogoDescription(int)}.</p>
+     *
+     * @param resId ID of a drawable resource
+     */
+    public void setLogo(int resId) {
+        setLogo(getContext().getDrawable(resId));
+    }
+
+    /**
+     * Set a logo drawable.
+     *
+     * <p>This drawable should generally take the place of title text. The logo cannot be
+     * clicked. Apps using a logo should also supply a description using
+     * {@link #setLogoDescription(int)}.</p>
+     *
+     * @param drawable Drawable to use as a logo
+     */
+    public void setLogo(Drawable drawable) {
+        if (drawable != null) {
+            if (mLogoView == null) {
+                mLogoView = new ImageView(getContext());
+            }
+            if (mLogoView.getParent() == null) {
+                addSystemView(mLogoView);
+            }
+        } else if (mLogoView != null && mLogoView.getParent() != null) {
+            removeView(mLogoView);
+        }
+        if (mLogoView != null) {
+            mLogoView.setImageDrawable(drawable);
+        }
+    }
+
+    /**
+     * Return the current logo drawable.
+     *
+     * @return The current logo drawable
+     * @see #setLogo(int)
+     * @see #setLogo(android.graphics.drawable.Drawable)
+     */
+    public Drawable getLogo() {
+        return mLogoView != null ? mLogoView.getDrawable() : null;
+    }
+
+    /**
+     * Set a description of the toolbar's logo.
+     *
+     * <p>This description will be used for accessibility or other similar descriptions
+     * of the UI.</p>
+     *
+     * @param resId String resource id
+     */
+    public void setLogoDescription(int resId) {
+        setLogoDescription(getContext().getText(resId));
+    }
+
+    /**
+     * Set a description of the toolbar's logo.
+     *
+     * <p>This description will be used for accessibility or other similar descriptions
+     * of the UI.</p>
+     *
+     * @param description Description to set
+     */
+    public void setLogoDescription(CharSequence description) {
+        if (!TextUtils.isEmpty(description) && mLogoView == null) {
+            mLogoView = new ImageView(getContext());
+        }
+        if (mLogoView != null) {
+            mLogoView.setContentDescription(description);
+        }
+    }
+
+    /**
+     * Return the description of the toolbar's logo.
+     *
+     * @return A description of the logo
+     */
+    public CharSequence getLogoDescription() {
+        return mLogoView != null ? mLogoView.getContentDescription() : null;
+    }
+
+    /**
+     * Return the current title displayed in the toolbar.
+     *
+     * @return The current title
+     */
+    public CharSequence getTitle() {
+        return mTitleText;
+    }
+
+    /**
+     * Set the title of this toolbar.
+     *
+     * <p>A title should be used as the anchor for a section of content. It should
+     * describe or name the content being viewed.</p>
+     *
+     * @param resId Resource ID of a string to set as the title
+     */
+    public void setTitle(int resId) {
+        setTitle(getContext().getText(resId));
+    }
+
+    /**
+     * Set the title of this toolbar.
+     *
+     * <p>A title should be used as the anchor for a section of content. It should
+     * describe or name the content being viewed.</p>
+     *
+     * @param title Title to set
+     */
+    public void setTitle(CharSequence title) {
+        if (!TextUtils.isEmpty(title)) {
+            if (mTitleTextView == null) {
+                final Context context = getContext();
+                mTitleTextView = new TextView(context);
+                mTitleTextView.setTextAppearance(context, mTitleTextAppearance);
+            }
+            if (mTitleTextView.getParent() == null) {
+                addSystemView(mTitleTextView);
+            }
+        } else if (mTitleTextView != null && mTitleTextView.getParent() != null) {
+            removeView(mTitleTextView);
+        }
+        if (mTitleTextView != null) {
+            mTitleTextView.setText(title);
+        }
+        mTitleText = title;
+    }
+
+    /**
+     * Return the subtitle of this toolbar.
+     *
+     * @return The current subtitle
+     */
+    public CharSequence getSubtitle() {
+        return mSubtitleText;
+    }
+
+    /**
+     * Set the subtitle of this toolbar.
+     *
+     * <p>Subtitles should express extended information about the current content.</p>
+     *
+     * @param resId String resource ID
+     */
+    public void setSubtitle(int resId) {
+        setSubtitle(getContext().getText(resId));
+    }
+
+    /**
+     * Set the subtitle of this toolbar.
+     *
+     * <p>Subtitles should express extended information about the current content.</p>
+     *
+     * @param subtitle Subtitle to set
+     */
+    public void setSubtitle(CharSequence subtitle) {
+        if (!TextUtils.isEmpty(subtitle)) {
+            if (mSubtitleTextView == null) {
+                final Context context = getContext();
+                mSubtitleTextView = new TextView(context);
+                mSubtitleTextView.setTextAppearance(context, mSubtitleTextAppearance);
+            }
+            if (mSubtitleTextView.getParent() == null) {
+                addSystemView(mSubtitleTextView);
+            }
+        } else if (mSubtitleTextView != null && mSubtitleTextView.getParent() != null) {
+            removeView(mSubtitleTextView);
+        }
+        if (mSubtitleTextView != null) {
+            mSubtitleTextView.setText(subtitle);
+        }
+        mSubtitleText = subtitle;
+    }
+
+    /**
+     * Set the icon to use for the toolbar's navigation button.
+     *
+     * <p>The navigation button appears at the start of the toolbar if present. Setting an icon
+     * will make the navigation button visible.</p>
+     *
+     * <p>If you use a navigation icon you should also set a description for its action using
+     * {@link #setNavigationDescription(int)}. This is used for accessibility and tooltips.</p>
+     *
+     * @param resId Resource ID of a drawable to set
+     */
+    public void setNavigationIcon(int resId) {
+        setNavigationIcon(getContext().getDrawable(resId));
+    }
+
+    /**
+     * Set the icon to use for the toolbar's navigation button.
+     *
+     * <p>The navigation button appears at the start of the toolbar if present. Setting an icon
+     * will make the navigation button visible.</p>
+     *
+     * <p>If you use a navigation icon you should also set a description for its action using
+     * {@link #setNavigationDescription(int)}. This is used for accessibility and tooltips.</p>
+     *
+     * @param icon Drawable to set
+     */
+    public void setNavigationIcon(Drawable icon) {
+        if (icon != null) {
+            ensureNavButtonView();
+            if (mNavButtonView.getParent() == null) {
+                addSystemView(mNavButtonView);
+            }
+        } else if (mNavButtonView != null && mNavButtonView.getParent() != null) {
+            removeView(mNavButtonView);
+        }
+        if (mNavButtonView != null) {
+            mNavButtonView.setImageDrawable(icon);
+        }
+    }
+
+    /**
+     * Return the current drawable used as the navigation icon.
+     *
+     * @return The navigation icon drawable
+     */
+    public Drawable getNavigationIcon() {
+        return mNavButtonView != null ? mNavButtonView.getDrawable() : null;
+    }
+
+    /**
+     * Set a description for the navigation button.
+     *
+     * <p>This description string is used for accessibility, tooltips and other facilities
+     * to improve discoverability.</p>
+     *
+     * @param resId Resource ID of a string to set
+     */
+    public void setNavigationDescription(int resId) {
+        setNavigationDescription(getContext().getText(resId));
+    }
+
+    /**
+     * Set a description for the navigation button.
+     *
+     * <p>This description string is used for accessibility, tooltips and other facilities
+     * to improve discoverability.</p>
+     *
+     * @param description String to set as the description
+     */
+    public void setNavigationDescription(CharSequence description) {
+        if (!TextUtils.isEmpty(description)) {
+            ensureNavButtonView();
+        }
+        if (mNavButtonView != null) {
+            mNavButtonView.setContentDescription(description);
+        }
+    }
+
+    /**
+     * Set a listener to respond to navigation events.
+     *
+     * <p>This listener will be called whenever the user clicks the navigation button
+     * at the start of the toolbar. An icon must be set for the navigation button to appear.</p>
+     *
+     * @param listener Listener to set
+     * @see #setNavigationIcon(android.graphics.drawable.Drawable)
+     */
+    public void setNavigationOnClickListener(OnClickListener listener) {
+        ensureNavButtonView();
+        mNavButtonView.setOnClickListener(listener);
+    }
+
+    /**
+     * Return the Menu shown in the toolbar.
+     *
+     * <p>Applications that wish to populate the toolbar's menu can do so from here. To use
+     * an XML menu resource, use {@link #inflateMenu(int)}.</p>
+     *
+     * @return The toolbar's Menu
+     */
+    public Menu getMenu() {
+        if (mMenuView == null) {
+            mMenuView = new ActionMenuView(getContext());
+            mMenuView.setOnMenuItemClickListener(mMenuViewItemClickListener);
+            addSystemView(mMenuView);
+        }
+        return mMenuView.getMenu();
+    }
+
+    private MenuInflater getMenuInflater() {
+        return new MenuInflater(getContext());
+    }
+
+    /**
+     * Inflate a menu resource into this toolbar.
+     *
+     * <p>Inflate an XML menu resource into this toolbar. Existing items in the menu will not
+     * be modified or removed.</p>
+     *
+     * @param resId ID of a menu resource to inflate
+     */
+    public void inflateMenu(int resId) {
+        getMenuInflater().inflate(resId, getMenu());
+    }
+
+    /**
+     * Set a listener to respond to menu item click events.
+     *
+     * <p>This listener will be invoked whenever a user selects a menu item from
+     * the action buttons presented at the end of the toolbar or the associated overflow.</p>
+     *
+     * @param listener Listener to set
+     */
+    public void setOnMenuItemClickListener(OnMenuItemClickListener listener) {
+        mOnMenuItemClickListener = listener;
+    }
+
+    private void ensureNavButtonView() {
+        if (mNavButtonView == null) {
+            mNavButtonView = new ImageButton(getContext(), null, R.attr.borderlessButtonStyle);
+        }
+    }
+
+    private void addSystemView(View v) {
+        final LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,
+                LayoutParams.WRAP_CONTENT);
+        lp.mViewType = LayoutParams.SYSTEM;
+        addView(v, lp);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        SavedState state = new SavedState(super.onSaveInstanceState());
+        return state;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        final SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.getSuperState());
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        int width = 0;
+        int height = 0;
+        int childState = 0;
+
+        // System views measure first.
+
+        if (shouldLayout(mNavButtonView)) {
+            measureChildWithMargins(mNavButtonView, widthMeasureSpec, width, heightMeasureSpec, 0);
+            width += mNavButtonView.getMeasuredWidth() + getHorizontalMargins(mNavButtonView);
+            height = Math.max(height, mNavButtonView.getMeasuredHeight() +
+                    getVerticalMargins(mNavButtonView));
+            childState = combineMeasuredStates(childState, mNavButtonView.getMeasuredState());
+        }
+
+        if (shouldLayout(mMenuView)) {
+            measureChildWithMargins(mMenuView, widthMeasureSpec, width, heightMeasureSpec, 0);
+            width += mMenuView.getMeasuredWidth() + getHorizontalMargins(mMenuView);
+            height = Math.max(height, mMenuView.getMeasuredHeight() +
+                    getVerticalMargins(mMenuView));
+            childState = combineMeasuredStates(childState, mMenuView.getMeasuredState());
+        }
+
+        if (shouldLayout(mLogoView)) {
+            measureChildWithMargins(mLogoView, widthMeasureSpec, width, heightMeasureSpec, 0);
+            width += mLogoView.getMeasuredWidth() + getHorizontalMargins(mLogoView);
+            height = Math.max(height, mLogoView.getMeasuredHeight() +
+                    getVerticalMargins(mLogoView));
+            childState = combineMeasuredStates(childState, mLogoView.getMeasuredState());
+        }
+
+        int titleWidth = 0;
+        int titleHeight = 0;
+        final int titleVertMargins = mTitleMarginTop + mTitleMarginBottom;
+        final int titleHorizMargins = mTitleMarginStart + mTitleMarginEnd;
+        if (shouldLayout(mTitleTextView)) {
+            measureChildWithMargins(mTitleTextView, widthMeasureSpec, width + titleHorizMargins,
+                    heightMeasureSpec, titleVertMargins);
+            titleWidth = mTitleTextView.getMeasuredWidth() + getHorizontalMargins(mTitleTextView);
+            titleHeight = mTitleTextView.getMeasuredHeight() + getVerticalMargins(mTitleTextView);
+            childState = combineMeasuredStates(childState, mTitleTextView.getMeasuredState());
+        }
+        if (shouldLayout(mSubtitleTextView)) {
+            measureChildWithMargins(mSubtitleTextView, widthMeasureSpec, width + titleHorizMargins,
+                    heightMeasureSpec, titleHeight + titleVertMargins);
+            titleWidth = Math.max(titleWidth, mSubtitleTextView.getMeasuredWidth() +
+                    getHorizontalMargins(mSubtitleTextView));
+            titleHeight += mSubtitleTextView.getMeasuredHeight() +
+                    getVerticalMargins(mSubtitleTextView);
+            childState = combineMeasuredStates(childState, mSubtitleTextView.getMeasuredState());
+        }
+
+        width += titleWidth;
+        height = Math.max(height, titleHeight);
+
+        final int childCount = getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            final View child = getChildAt(i);
+            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+            if (lp.mViewType == LayoutParams.SYSTEM || !shouldLayout(child)) {
+                // We already got all system views above. Skip them and GONE views.
+                continue;
+            }
+
+            measureChildWithMargins(child, widthMeasureSpec, width, heightMeasureSpec, 0);
+            width += child.getMeasuredWidth() + getHorizontalMargins(child);
+            height = Math.max(height, child.getMeasuredHeight() + getVerticalMargins(child));
+            childState = combineMeasuredStates(childState, child.getMeasuredState());
+        }
+
+        // Measurement already took padding into account for available space for the children,
+        // add it in for the final size.
+        width += getPaddingLeft() + getPaddingRight();
+        height += getPaddingTop() + getPaddingBottom();
+
+        final int measuredWidth = resolveSizeAndState(
+                Math.max(width, getSuggestedMinimumWidth()),
+                widthMeasureSpec, childState & MEASURED_STATE_MASK);
+        final int measuredHeight = resolveSizeAndState(
+                Math.max(height, getSuggestedMinimumHeight()),
+                heightMeasureSpec, childState << MEASURED_HEIGHT_STATE_SHIFT);
+        setMeasuredDimension(measuredWidth, measuredHeight);
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+        final boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
+        final int width = getWidth();
+        final int height = getHeight();
+        final int paddingLeft = getPaddingLeft();
+        final int paddingRight = getPaddingRight();
+        final int paddingTop = getPaddingTop();
+        final int paddingBottom = getPaddingBottom();
+        int left = paddingLeft;
+        int right = width - paddingRight;
+
+        if (shouldLayout(mNavButtonView)) {
+            if (isRtl) {
+                right = layoutChildRight(mNavButtonView, right);
+            } else {
+                left = layoutChildLeft(mNavButtonView, left);
+            }
+        }
+
+        if (shouldLayout(mMenuView)) {
+            if (isRtl) {
+                left = layoutChildLeft(mMenuView, left);
+            } else {
+                right = layoutChildRight(mMenuView, right);
+            }
+        }
+
+        if (shouldLayout(mLogoView)) {
+            if (isRtl) {
+                right = layoutChildRight(mLogoView, right);
+            } else {
+                left = layoutChildLeft(mLogoView, left);
+            }
+        }
+
+        final boolean layoutTitle = shouldLayout(mTitleTextView);
+        final boolean layoutSubtitle = shouldLayout(mSubtitleTextView);
+        int titleHeight = 0;
+        if (layoutTitle) {
+            final LayoutParams lp = (LayoutParams) mTitleTextView.getLayoutParams();
+            titleHeight += lp.topMargin + mTitleTextView.getMeasuredHeight() + lp.bottomMargin;
+        }
+        if (layoutSubtitle) {
+            final LayoutParams lp = (LayoutParams) mSubtitleTextView.getLayoutParams();
+            titleHeight += lp.bottomMargin + mTitleTextView.getMeasuredHeight() + lp.bottomMargin;
+        }
+
+        if (layoutTitle || layoutSubtitle) {
+            int titleTop;
+            switch (mGravity & Gravity.VERTICAL_GRAVITY_MASK) {
+                case Gravity.TOP:
+                    titleTop = getPaddingTop();
+                    break;
+                default:
+                case Gravity.CENTER_VERTICAL:
+                    final View child = layoutTitle ? mTitleTextView : mSubtitleTextView;
+                    final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+                    final int space = height - paddingTop - paddingBottom;
+                    int spaceAbove = (space - titleHeight) / 2;
+                    if (spaceAbove < lp.topMargin + mTitleMarginTop) {
+                        spaceAbove = lp.topMargin + mTitleMarginTop;
+                    } else {
+                        final int spaceBelow = height - paddingBottom - titleHeight -
+                                spaceAbove - paddingTop;
+                        if (spaceBelow < lp.bottomMargin + mTitleMarginBottom) {
+                            spaceAbove = Math.max(0, spaceAbove -
+                                    (lp.bottomMargin + mTitleMarginBottom - spaceBelow));
+                        }
+                    }
+                    titleTop = paddingTop + spaceAbove;
+                    break;
+                case Gravity.BOTTOM:
+                    titleTop = height - paddingBottom - titleHeight;
+                    break;
+            }
+            if (isRtl) {
+                int titleRight = right;
+                int subtitleRight = right;
+                titleTop += mTitleMarginTop;
+                if (layoutTitle) {
+                    final LayoutParams lp = (LayoutParams) mTitleTextView.getLayoutParams();
+                    titleRight -= lp.rightMargin + mTitleMarginStart;
+                    titleTop += lp.topMargin;
+                    final int titleLeft = titleRight - mTitleTextView.getMeasuredWidth();
+                    final int titleBottom = titleTop + mTitleTextView.getMeasuredHeight();
+                    mTitleTextView.layout(titleLeft, titleTop, titleRight, titleBottom);
+                    titleRight = titleLeft - lp.leftMargin - mTitleMarginEnd;
+                    titleTop = titleBottom + lp.bottomMargin;
+                }
+                if (layoutSubtitle) {
+                    final LayoutParams lp = (LayoutParams) mSubtitleTextView.getLayoutParams();
+                    subtitleRight -= lp.rightMargin + mTitleMarginStart;
+                    titleTop += lp.topMargin;
+                    final int subtitleLeft = subtitleRight - mSubtitleTextView.getMeasuredWidth();
+                    final int subtitleBottom = titleTop + mSubtitleTextView.getMeasuredHeight();
+                    mSubtitleTextView.layout(subtitleLeft, titleTop, subtitleRight, subtitleBottom);
+                    subtitleRight = subtitleRight - lp.leftMargin - mTitleMarginEnd;
+                    titleTop = subtitleBottom + lp.bottomMargin;
+                }
+                right = Math.max(titleRight, subtitleRight);
+            } else {
+                int titleLeft = left;
+                int subtitleLeft = left;
+                titleTop += mTitleMarginTop;
+                if (layoutTitle) {
+                    final LayoutParams lp = (LayoutParams) mTitleTextView.getLayoutParams();
+                    titleLeft += lp.leftMargin + mTitleMarginStart;
+                    titleTop += lp.topMargin;
+                    final int titleRight = titleLeft + mTitleTextView.getMeasuredWidth();
+                    final int titleBottom = titleTop + mTitleTextView.getMeasuredHeight();
+                    mTitleTextView.layout(titleLeft, titleTop, titleRight, titleBottom);
+                    titleLeft = titleRight + lp.rightMargin + mTitleMarginEnd;
+                    titleTop = titleBottom + lp.bottomMargin;
+                }
+                if (layoutSubtitle) {
+                    final LayoutParams lp = (LayoutParams) mSubtitleTextView.getLayoutParams();
+                    subtitleLeft += lp.leftMargin + mTitleMarginStart;
+                    titleTop += lp.topMargin;
+                    final int subtitleRight = subtitleLeft + mSubtitleTextView.getMeasuredWidth();
+                    final int subtitleBottom = titleTop + mSubtitleTextView.getMeasuredHeight();
+                    mSubtitleTextView.layout(subtitleLeft, titleTop, subtitleRight, subtitleBottom);
+                    subtitleLeft = subtitleRight + lp.rightMargin + mTitleMarginEnd;
+                    titleTop = subtitleBottom + lp.bottomMargin;
+                }
+                left = Math.max(titleLeft, subtitleLeft);
+            }
+        }
+
+        // Get all remaining children sorted for layout. This is all prepared
+        // such that absolute layout direction can be used below.
+
+        addCustomViewsWithGravity(mTempViews, Gravity.LEFT);
+        final int leftViewsCount = mTempViews.size();
+        for (int i = 0; i < leftViewsCount; i++) {
+            left = layoutChildLeft(getChildAt(i), left);
+        }
+
+        addCustomViewsWithGravity(mTempViews, Gravity.RIGHT);
+        final int rightViewsCount = mTempViews.size();
+        for (int i = 0; i < rightViewsCount; i++) {
+            right = layoutChildRight(getChildAt(i), right);
+        }
+
+        // Centered views try to center with respect to the whole bar, but views pinned
+        // to the left or right can push the mass of centered views to one side or the other.
+        addCustomViewsWithGravity(mTempViews, Gravity.CENTER);
+        final int centerViewsWidth = getViewListMeasuredWidth(mTempViews);
+        final int parentCenter = paddingLeft + (width - paddingLeft - paddingRight) / 2;
+        final int halfCenterViewsWidth = centerViewsWidth / 2;
+        int centerLeft = parentCenter - halfCenterViewsWidth;
+        final int centerRight = centerLeft + centerViewsWidth;
+        if (centerLeft < left) {
+            centerLeft = left;
+        } else if (centerRight > right) {
+            centerLeft -= centerRight - right;
+        }
+
+        final int centerViewsCount = mTempViews.size();
+        for (int i = 0; i < centerViewsCount; i++) {
+            centerLeft = layoutChildLeft(getChildAt(i), centerLeft);
+        }
+        mTempViews.clear();
+    }
+
+    private int getViewListMeasuredWidth(List<View> views) {
+        int width = 0;
+        final int count = views.size();
+        for (int i = 0; i < count; i++) {
+            final View v = views.get(i);
+            final LayoutParams lp = (LayoutParams) v.getLayoutParams();
+            width += lp.leftMargin + v.getMeasuredWidth() + lp.rightMargin;
+        }
+        return width;
+    }
+
+    private int layoutChildLeft(View child, int left) {
+        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+        left += lp.leftMargin;
+        int top = getChildTop(child);
+        child.layout(left, top, left + child.getMeasuredWidth(), top + child.getMeasuredHeight());
+        left += lp.rightMargin;
+        return left;
+    }
+
+    private int layoutChildRight(View child, int right) {
+        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+        right -= lp.rightMargin;
+        int top = getChildTop(child);
+        child.layout(right - child.getMeasuredWidth(), top, right, top + child.getMeasuredHeight());
+        right -= lp.leftMargin;
+        return right;
+    }
+
+    private int getChildTop(View child) {
+        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+        switch (getChildVerticalGravity(lp.gravity)) {
+            case Gravity.TOP:
+                return getPaddingTop();
+
+            case Gravity.BOTTOM:
+                return getPaddingBottom() - child.getMeasuredHeight() - lp.bottomMargin;
+
+            default:
+            case Gravity.CENTER_VERTICAL:
+                final int paddingTop = getPaddingTop();
+                final int paddingBottom = getPaddingBottom();
+                final int height = getHeight();
+                final int childHeight = child.getMeasuredHeight();
+                final int space = height - paddingTop - paddingBottom;
+                int spaceAbove = (space - childHeight) / 2;
+                if (spaceAbove < lp.topMargin) {
+                    spaceAbove = lp.topMargin;
+                } else {
+                    final int spaceBelow = height - paddingBottom - childHeight -
+                            spaceAbove - paddingTop;
+                    if (spaceBelow < lp.bottomMargin) {
+                        spaceAbove = Math.max(0, spaceAbove - (lp.bottomMargin - spaceBelow));
+                    }
+                }
+                return paddingTop + spaceAbove;
+        }
+    }
+
+    private int getChildVerticalGravity(int gravity) {
+        final int vgrav = gravity & Gravity.VERTICAL_GRAVITY_MASK;
+        switch (vgrav) {
+            case Gravity.TOP:
+            case Gravity.BOTTOM:
+            case Gravity.CENTER_VERTICAL:
+                return vgrav;
+            default:
+                return mGravity & Gravity.VERTICAL_GRAVITY_MASK;
+        }
+    }
+
+    /**
+     * Prepare a list of non-SYSTEM child views. If the layout direction is RTL
+     * this will be in reverse child order.
+     *
+     * @param views List to populate. It will be cleared before use.
+     * @param gravity Horizontal gravity to match against
+     */
+    private void addCustomViewsWithGravity(List<View> views, int gravity) {
+        final boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
+        final int childCount = getChildCount();
+        final int absGrav = Gravity.getAbsoluteGravity(gravity, getLayoutDirection());
+
+        views.clear();
+
+        if (isRtl) {
+            for (int i = childCount - 1; i >= 0; i--) {
+                final View child = getChildAt(i);
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+                if (lp.mViewType != LayoutParams.SYSTEM && shouldLayout(child) &&
+                        getChildHorizontalGravity(lp.gravity) == absGrav) {
+                    views.add(child);
+                }
+
+            }
+        } else {
+            for (int i = 0; i < childCount; i++) {
+                final View child = getChildAt(i);
+                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+                if (lp.mViewType != LayoutParams.SYSTEM && shouldLayout(child) &&
+                        getChildHorizontalGravity(lp.gravity) == absGrav) {
+                    views.add(child);
+                }
+            }
+        }
+    }
+
+    private int getChildHorizontalGravity(int gravity) {
+        final int ld = getLayoutDirection();
+        final int absGrav = Gravity.getAbsoluteGravity(gravity, ld);
+        final int hGrav = absGrav & Gravity.HORIZONTAL_GRAVITY_MASK;
+        switch (hGrav) {
+            case Gravity.LEFT:
+            case Gravity.RIGHT:
+            case Gravity.CENTER_HORIZONTAL:
+                return hGrav;
+            default:
+                return ld == LAYOUT_DIRECTION_RTL ? Gravity.RIGHT : Gravity.LEFT;
+        }
+    }
+
+    private boolean shouldLayout(View view) {
+        return view != null && view.getParent() == this && view.getVisibility() != GONE;
+    }
+
+    private int getHorizontalMargins(View v) {
+        final MarginLayoutParams mlp = (MarginLayoutParams) v.getLayoutParams();
+        return mlp.getMarginStart() + mlp.getMarginEnd();
+    }
+
+    private int getVerticalMargins(View v) {
+        final MarginLayoutParams mlp = (MarginLayoutParams) v.getLayoutParams();
+        return mlp.topMargin + mlp.bottomMargin;
+    }
+
+    @Override
+    public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {
+        return super.generateLayoutParams(attrs);
+    }
+
+    @Override
+    protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
+        if (p instanceof LayoutParams) {
+            return new LayoutParams((LayoutParams) p);
+        } else if (p instanceof MarginLayoutParams) {
+            return new LayoutParams((MarginLayoutParams) p);
+        } else {
+            return new LayoutParams(p);
+        }
+    }
+
+    @Override
+    protected ViewGroup.LayoutParams generateDefaultLayoutParams() {
+        return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
+    }
+
+    @Override
+    protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
+        return super.checkLayoutParams(p) && p instanceof LayoutParams;
+    }
+
+    private static boolean isCustomView(View child) {
+        return ((LayoutParams) child.getLayoutParams()).mViewType == LayoutParams.CUSTOM;
+    }
+
+    /**
+     * Interface responsible for receiving menu item click events if the items themselves
+     * do not have individual item click listeners.
+     */
+    public interface OnMenuItemClickListener {
+        /**
+         * This method will be invoked when a menu item is clicked if the item itself did
+         * not already handle the event.
+         *
+         * @param item {@link MenuItem} that was clicked
+         * @return <code>true</code> if the event was handled, <code>false</code> otherwise.
+         */
+        public boolean onMenuItemClick(MenuItem item);
+    }
+
+    /**
+     * Layout information for child views of Toolbars.
+     *
+     * @attr ref android.R.styleable#Toolbar_LayoutParams_layout_gravity
+     */
+    public static class LayoutParams extends MarginLayoutParams {
+        /**
+         * Gravity for the view associated with these LayoutParams.
+         *
+         * @see android.view.Gravity
+         */
+        @ViewDebug.ExportedProperty(category = "layout", mapping = {
+                @ViewDebug.IntToString(from =  -1,                       to = "NONE"),
+                @ViewDebug.IntToString(from = Gravity.NO_GRAVITY,        to = "NONE"),
+                @ViewDebug.IntToString(from = Gravity.TOP,               to = "TOP"),
+                @ViewDebug.IntToString(from = Gravity.BOTTOM,            to = "BOTTOM"),
+                @ViewDebug.IntToString(from = Gravity.LEFT,              to = "LEFT"),
+                @ViewDebug.IntToString(from = Gravity.RIGHT,             to = "RIGHT"),
+                @ViewDebug.IntToString(from = Gravity.START,             to = "START"),
+                @ViewDebug.IntToString(from = Gravity.END,               to = "END"),
+                @ViewDebug.IntToString(from = Gravity.CENTER_VERTICAL,   to = "CENTER_VERTICAL"),
+                @ViewDebug.IntToString(from = Gravity.FILL_VERTICAL,     to = "FILL_VERTICAL"),
+                @ViewDebug.IntToString(from = Gravity.CENTER_HORIZONTAL, to = "CENTER_HORIZONTAL"),
+                @ViewDebug.IntToString(from = Gravity.FILL_HORIZONTAL,   to = "FILL_HORIZONTAL"),
+                @ViewDebug.IntToString(from = Gravity.CENTER,            to = "CENTER"),
+                @ViewDebug.IntToString(from = Gravity.FILL,              to = "FILL")
+        })
+        public int gravity = Gravity.NO_GRAVITY;
+
+        static final int CUSTOM = 0;
+        static final int SYSTEM = 1;
+
+        int mViewType = CUSTOM;
+
+        public LayoutParams(@NonNull Context c, AttributeSet attrs) {
+            super(c, attrs);
+
+            TypedArray a = c.obtainStyledAttributes(attrs,
+                    com.android.internal.R.styleable.Toolbar_LayoutParams);
+            gravity = a.getInt(
+                    com.android.internal.R.styleable.Toolbar_LayoutParams_layout_gravity,
+                    Gravity.NO_GRAVITY);
+            a.recycle();
+        }
+
+        public LayoutParams(int width, int height) {
+            super(width, height);
+            this.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
+        }
+
+        public LayoutParams(int width, int height, int gravity) {
+            super(width, height);
+            this.gravity = gravity;
+        }
+
+        public LayoutParams(int gravity) {
+            this(WRAP_CONTENT, MATCH_PARENT, gravity);
+        }
+
+        public LayoutParams(LayoutParams source) {
+            super(source);
+
+            this.gravity = source.gravity;
+        }
+
+        public LayoutParams(MarginLayoutParams source) {
+            super(source);
+        }
+
+        public LayoutParams(ViewGroup.LayoutParams source) {
+            super(source);
+        }
+    }
+
+    static class SavedState extends BaseSavedState {
+        public SavedState(Parcel source) {
+            super(source);
+        }
+
+        public SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, int flags) {
+            super.writeToParcel(out, flags);
+        }
+
+        public static final Creator<SavedState> CREATOR = new Creator<SavedState>() {
+
+            @Override
+            public SavedState createFromParcel(Parcel source) {
+                return new SavedState(source);
+            }
+
+            @Override
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+    }
+}
diff --git a/core/java/com/android/internal/app/ActionBarImpl.java b/core/java/com/android/internal/app/ActionBarImpl.java
deleted file mode 100644
index cc51a8b..0000000
--- a/core/java/com/android/internal/app/ActionBarImpl.java
+++ /dev/null
@@ -1,1246 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.internal.app;
-
-import android.animation.ValueAnimator;
-import android.view.ViewParent;
-import com.android.internal.view.ActionBarPolicy;
-import com.android.internal.view.menu.MenuBuilder;
-import com.android.internal.view.menu.MenuPopupHelper;
-import com.android.internal.view.menu.SubMenuBuilder;
-import com.android.internal.widget.ActionBarContainer;
-import com.android.internal.widget.ActionBarContextView;
-import com.android.internal.widget.ActionBarOverlayLayout;
-import com.android.internal.widget.ActionBarView;
-import com.android.internal.widget.ScrollingTabContainerView;
-
-import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.app.ActionBar;
-import android.app.Activity;
-import android.app.Dialog;
-import android.app.FragmentTransaction;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.os.Handler;
-import android.util.TypedValue;
-import android.view.ActionMode;
-import android.view.ContextThemeWrapper;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.Window;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.animation.AnimationUtils;
-import android.widget.SpinnerAdapter;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Map;
-
-/**
- * ActionBarImpl is the ActionBar implementation used
- * by devices of all screen sizes. If it detects a compatible decor,
- * it will split contextual modes across both the ActionBarView at
- * the top of the screen and a horizontal LinearLayout at the bottom
- * which is normally hidden.
- */
-public class ActionBarImpl extends ActionBar {
-    private static final String TAG = "ActionBarImpl";
-
-    private Context mContext;
-    private Context mThemedContext;
-    private Activity mActivity;
-    private Dialog mDialog;
-
-    private ActionBarOverlayLayout mOverlayLayout;
-    private ActionBarContainer mContainerView;
-    private ActionBarView mActionView;
-    private ActionBarContextView mContextView;
-    private ActionBarContainer mSplitView;
-    private View mContentView;
-    private ScrollingTabContainerView mTabScrollView;
-
-    private ArrayList<TabImpl> mTabs = new ArrayList<TabImpl>();
-
-    private TabImpl mSelectedTab;
-    private int mSavedTabPosition = INVALID_POSITION;
-    
-    private boolean mDisplayHomeAsUpSet;
-
-    ActionModeImpl mActionMode;
-    ActionMode mDeferredDestroyActionMode;
-    ActionMode.Callback mDeferredModeDestroyCallback;
-    
-    private boolean mLastMenuVisibility;
-    private ArrayList<OnMenuVisibilityListener> mMenuVisibilityListeners =
-            new ArrayList<OnMenuVisibilityListener>();
-
-    private static final int CONTEXT_DISPLAY_NORMAL = 0;
-    private static final int CONTEXT_DISPLAY_SPLIT = 1;
-    
-    private static final int INVALID_POSITION = -1;
-
-    private int mContextDisplayMode;
-    private boolean mHasEmbeddedTabs;
-
-    final Handler mHandler = new Handler();
-    Runnable mTabSelector;
-
-    private int mCurWindowVisibility = View.VISIBLE;
-
-    private boolean mContentAnimations = true;
-    private boolean mHiddenByApp;
-    private boolean mHiddenBySystem;
-    private boolean mShowingForMode;
-
-    private boolean mNowShowing = true;
-
-    private Animator mCurrentShowAnim;
-    private boolean mShowHideAnimationEnabled;
-
-    final AnimatorListener mHideListener = new AnimatorListenerAdapter() {
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            if (mContentAnimations && mContentView != null) {
-                mContentView.setTranslationY(0);
-                mContainerView.setTranslationY(0);
-            }
-            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
-                mSplitView.setVisibility(View.GONE);
-            }
-            mContainerView.setVisibility(View.GONE);
-            mContainerView.setTransitioning(false);
-            mCurrentShowAnim = null;
-            completeDeferredDestroyActionMode();
-            if (mOverlayLayout != null) {
-                mOverlayLayout.requestFitSystemWindows();
-            }
-        }
-    };
-
-    final AnimatorListener mShowListener = new AnimatorListenerAdapter() {
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            mCurrentShowAnim = null;
-            mContainerView.requestLayout();
-        }
-    };
-
-    final ValueAnimator.AnimatorUpdateListener mUpdateListener =
-            new ValueAnimator.AnimatorUpdateListener() {
-        @Override
-        public void onAnimationUpdate(ValueAnimator animation) {
-            final ViewParent parent = mContainerView.getParent();
-            ((View) parent).invalidate();
-        }
-    };
-
-    public ActionBarImpl(Activity activity) {
-        mActivity = activity;
-        Window window = activity.getWindow();
-        View decor = window.getDecorView();
-        boolean overlayMode = mActivity.getWindow().hasFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
-        init(decor);
-        if (!overlayMode) {
-            mContentView = decor.findViewById(android.R.id.content);
-        }
-    }
-
-    public ActionBarImpl(Dialog dialog) {
-        mDialog = dialog;
-        init(dialog.getWindow().getDecorView());
-    }
-
-    private void init(View decor) {
-        mContext = decor.getContext();
-        mOverlayLayout = (ActionBarOverlayLayout) decor.findViewById(
-                com.android.internal.R.id.action_bar_overlay_layout);
-        if (mOverlayLayout != null) {
-            mOverlayLayout.setActionBar(this);
-        }
-        mActionView = (ActionBarView) decor.findViewById(com.android.internal.R.id.action_bar);
-        mContextView = (ActionBarContextView) decor.findViewById(
-                com.android.internal.R.id.action_context_bar);
-        mContainerView = (ActionBarContainer) decor.findViewById(
-                com.android.internal.R.id.action_bar_container);
-        mSplitView = (ActionBarContainer) decor.findViewById(
-                com.android.internal.R.id.split_action_bar);
-
-        if (mActionView == null || mContextView == null || mContainerView == null) {
-            throw new IllegalStateException(getClass().getSimpleName() + " can only be used " +
-                    "with a compatible window decor layout");
-        }
-
-        mActionView.setContextView(mContextView);
-        mContextDisplayMode = mActionView.isSplitActionBar() ?
-                CONTEXT_DISPLAY_SPLIT : CONTEXT_DISPLAY_NORMAL;
-
-        // This was initially read from the action bar style
-        final int current = mActionView.getDisplayOptions();
-        final boolean homeAsUp = (current & DISPLAY_HOME_AS_UP) != 0;
-        if (homeAsUp) {
-            mDisplayHomeAsUpSet = true;
-        }
-
-        ActionBarPolicy abp = ActionBarPolicy.get(mContext);
-        setHomeButtonEnabled(abp.enableHomeButtonByDefault() || homeAsUp);
-        setHasEmbeddedTabs(abp.hasEmbeddedTabs());
-    }
-
-    public void onConfigurationChanged(Configuration newConfig) {
-        setHasEmbeddedTabs(ActionBarPolicy.get(mContext).hasEmbeddedTabs());
-    }
-
-    private void setHasEmbeddedTabs(boolean hasEmbeddedTabs) {
-        mHasEmbeddedTabs = hasEmbeddedTabs;
-        // Switch tab layout configuration if needed
-        if (!mHasEmbeddedTabs) {
-            mActionView.setEmbeddedTabView(null);
-            mContainerView.setTabContainer(mTabScrollView);
-        } else {
-            mContainerView.setTabContainer(null);
-            mActionView.setEmbeddedTabView(mTabScrollView);
-        }
-        final boolean isInTabMode = getNavigationMode() == NAVIGATION_MODE_TABS;
-        if (mTabScrollView != null) {
-            if (isInTabMode) {
-                mTabScrollView.setVisibility(View.VISIBLE);
-                if (mOverlayLayout != null) {
-                    mOverlayLayout.requestFitSystemWindows();
-                }
-            } else {
-                mTabScrollView.setVisibility(View.GONE);
-            }
-        }
-        mActionView.setCollapsable(!mHasEmbeddedTabs && isInTabMode);
-    }
-
-    public boolean hasNonEmbeddedTabs() {
-        return !mHasEmbeddedTabs && getNavigationMode() == NAVIGATION_MODE_TABS;
-    }
-
-    private void ensureTabsExist() {
-        if (mTabScrollView != null) {
-            return;
-        }
-
-        ScrollingTabContainerView tabScroller = new ScrollingTabContainerView(mContext);
-
-        if (mHasEmbeddedTabs) {
-            tabScroller.setVisibility(View.VISIBLE);
-            mActionView.setEmbeddedTabView(tabScroller);
-        } else {
-            if (getNavigationMode() == NAVIGATION_MODE_TABS) {
-                tabScroller.setVisibility(View.VISIBLE);
-                if (mOverlayLayout != null) {
-                    mOverlayLayout.requestFitSystemWindows();
-                }
-            } else {
-                tabScroller.setVisibility(View.GONE);
-            }
-            mContainerView.setTabContainer(tabScroller);
-        }
-        mTabScrollView = tabScroller;
-    }
-
-    void completeDeferredDestroyActionMode() {
-        if (mDeferredModeDestroyCallback != null) {
-            mDeferredModeDestroyCallback.onDestroyActionMode(mDeferredDestroyActionMode);
-            mDeferredDestroyActionMode = null;
-            mDeferredModeDestroyCallback = null;
-        }
-    }
-
-    public void setWindowVisibility(int visibility) {
-        mCurWindowVisibility = visibility;
-    }
-
-    /**
-     * Enables or disables animation between show/hide states.
-     * If animation is disabled using this method, animations in progress
-     * will be finished.
-     *
-     * @param enabled true to animate, false to not animate.
-     */
-    public void setShowHideAnimationEnabled(boolean enabled) {
-        mShowHideAnimationEnabled = enabled;
-        if (!enabled && mCurrentShowAnim != null) {
-            mCurrentShowAnim.end();
-        }
-    }
-
-    public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
-        mMenuVisibilityListeners.add(listener);
-    }
-
-    public void removeOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
-        mMenuVisibilityListeners.remove(listener);
-    }
-
-    public void dispatchMenuVisibilityChanged(boolean isVisible) {
-        if (isVisible == mLastMenuVisibility) {
-            return;
-        }
-        mLastMenuVisibility = isVisible;
-
-        final int count = mMenuVisibilityListeners.size();
-        for (int i = 0; i < count; i++) {
-            mMenuVisibilityListeners.get(i).onMenuVisibilityChanged(isVisible);
-        }
-    }
-
-    @Override
-    public void setCustomView(int resId) {
-        setCustomView(LayoutInflater.from(getThemedContext()).inflate(resId, mActionView, false));
-    }
-
-    @Override
-    public void setDisplayUseLogoEnabled(boolean useLogo) {
-        setDisplayOptions(useLogo ? DISPLAY_USE_LOGO : 0, DISPLAY_USE_LOGO);
-    }
-
-    @Override
-    public void setDisplayShowHomeEnabled(boolean showHome) {
-        setDisplayOptions(showHome ? DISPLAY_SHOW_HOME : 0, DISPLAY_SHOW_HOME);
-    }
-
-    @Override
-    public void setDisplayHomeAsUpEnabled(boolean showHomeAsUp) {
-        setDisplayOptions(showHomeAsUp ? DISPLAY_HOME_AS_UP : 0, DISPLAY_HOME_AS_UP);
-    }
-
-    @Override
-    public void setDisplayShowTitleEnabled(boolean showTitle) {
-        setDisplayOptions(showTitle ? DISPLAY_SHOW_TITLE : 0, DISPLAY_SHOW_TITLE);
-    }
-
-    @Override
-    public void setDisplayShowCustomEnabled(boolean showCustom) {
-        setDisplayOptions(showCustom ? DISPLAY_SHOW_CUSTOM : 0, DISPLAY_SHOW_CUSTOM);
-    }
-
-    @Override
-    public void setHomeButtonEnabled(boolean enable) {
-        mActionView.setHomeButtonEnabled(enable);
-    }
-
-    @Override
-    public void setTitle(int resId) {
-        setTitle(mContext.getString(resId));
-    }
-
-    @Override
-    public void setSubtitle(int resId) {
-        setSubtitle(mContext.getString(resId));
-    }
-
-    public void captureSharedElements(Map<String, View> sharedElements) {
-        mContainerView.findSharedElements(sharedElements);
-    }
-
-    public void setSelectedNavigationItem(int position) {
-        switch (mActionView.getNavigationMode()) {
-        case NAVIGATION_MODE_TABS:
-            selectTab(mTabs.get(position));
-            break;
-        case NAVIGATION_MODE_LIST:
-            mActionView.setDropdownSelectedPosition(position);
-            break;
-        default:
-            throw new IllegalStateException(
-                    "setSelectedNavigationIndex not valid for current navigation mode");
-        }
-    }
-
-    public void removeAllTabs() {
-        cleanupTabs();
-    }
-
-    private void cleanupTabs() {
-        if (mSelectedTab != null) {
-            selectTab(null);
-        }
-        mTabs.clear();
-        if (mTabScrollView != null) {
-            mTabScrollView.removeAllTabs();
-        }
-        mSavedTabPosition = INVALID_POSITION;
-    }
-
-    public void setTitle(CharSequence title) {
-        mActionView.setTitle(title);
-    }
-
-    public void setSubtitle(CharSequence subtitle) {
-        mActionView.setSubtitle(subtitle);
-    }
-
-    public void setDisplayOptions(int options) {
-        if ((options & DISPLAY_HOME_AS_UP) != 0) {
-            mDisplayHomeAsUpSet = true;
-        }
-        mActionView.setDisplayOptions(options);
-    }
-
-    public void setDisplayOptions(int options, int mask) {
-        final int current = mActionView.getDisplayOptions(); 
-        if ((mask & DISPLAY_HOME_AS_UP) != 0) {
-            mDisplayHomeAsUpSet = true;
-        }
-        mActionView.setDisplayOptions((options & mask) | (current & ~mask));
-    }
-
-    public void setBackgroundDrawable(Drawable d) {
-        mContainerView.setPrimaryBackground(d);
-    }
-
-    public void setStackedBackgroundDrawable(Drawable d) {
-        mContainerView.setStackedBackground(d);
-    }
-
-    public void setSplitBackgroundDrawable(Drawable d) {
-        if (mSplitView != null) {
-            mSplitView.setSplitBackground(d);
-        }
-    }
-
-    public View getCustomView() {
-        return mActionView.getCustomNavigationView();
-    }
-
-    public CharSequence getTitle() {
-        return mActionView.getTitle();
-    }
-
-    public CharSequence getSubtitle() {
-        return mActionView.getSubtitle();
-    }
-
-    public int getNavigationMode() {
-        return mActionView.getNavigationMode();
-    }
-
-    public int getDisplayOptions() {
-        return mActionView.getDisplayOptions();
-    }
-
-    public ActionMode startActionMode(ActionMode.Callback callback) {
-        if (mActionMode != null) {
-            mActionMode.finish();
-        }
-
-        mContextView.killMode();
-        ActionModeImpl mode = new ActionModeImpl(callback);
-        if (mode.dispatchOnCreate()) {
-            mode.invalidate();
-            mContextView.initForMode(mode);
-            animateToMode(true);
-            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
-                // TODO animate this
-                if (mSplitView.getVisibility() != View.VISIBLE) {
-                    mSplitView.setVisibility(View.VISIBLE);
-                    if (mOverlayLayout != null) {
-                        mOverlayLayout.requestFitSystemWindows();
-                    }
-                }
-            }
-            mContextView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
-            mActionMode = mode;
-            return mode;
-        }
-        return null;
-    }
-
-    private void configureTab(Tab tab, int position) {
-        final TabImpl tabi = (TabImpl) tab;
-        final ActionBar.TabListener callback = tabi.getCallback();
-
-        if (callback == null) {
-            throw new IllegalStateException("Action Bar Tab must have a Callback");
-        }
-
-        tabi.setPosition(position);
-        mTabs.add(position, tabi);
-
-        final int count = mTabs.size();
-        for (int i = position + 1; i < count; i++) {
-            mTabs.get(i).setPosition(i);
-        }
-    }
-
-    @Override
-    public void addTab(Tab tab) {
-        addTab(tab, mTabs.isEmpty());
-    }
-
-    @Override
-    public void addTab(Tab tab, int position) {
-        addTab(tab, position, mTabs.isEmpty());
-    }
-
-    @Override
-    public void addTab(Tab tab, boolean setSelected) {
-        ensureTabsExist();
-        mTabScrollView.addTab(tab, setSelected);
-        configureTab(tab, mTabs.size());
-        if (setSelected) {
-            selectTab(tab);
-        }
-    }
-
-    @Override
-    public void addTab(Tab tab, int position, boolean setSelected) {
-        ensureTabsExist();
-        mTabScrollView.addTab(tab, position, setSelected);
-        configureTab(tab, position);
-        if (setSelected) {
-            selectTab(tab);
-        }
-    }
-
-    @Override
-    public Tab newTab() {
-        return new TabImpl();
-    }
-
-    @Override
-    public void removeTab(Tab tab) {
-        removeTabAt(tab.getPosition());
-    }
-
-    @Override
-    public void removeTabAt(int position) {
-        if (mTabScrollView == null) {
-            // No tabs around to remove
-            return;
-        }
-
-        int selectedTabPosition = mSelectedTab != null
-                ? mSelectedTab.getPosition() : mSavedTabPosition;
-        mTabScrollView.removeTabAt(position);
-        TabImpl removedTab = mTabs.remove(position);
-        if (removedTab != null) {
-            removedTab.setPosition(-1);
-        }
-
-        final int newTabCount = mTabs.size();
-        for (int i = position; i < newTabCount; i++) {
-            mTabs.get(i).setPosition(i);
-        }
-
-        if (selectedTabPosition == position) {
-            selectTab(mTabs.isEmpty() ? null : mTabs.get(Math.max(0, position - 1)));
-        }
-    }
-
-    @Override
-    public void selectTab(Tab tab) {
-        if (getNavigationMode() != NAVIGATION_MODE_TABS) {
-            mSavedTabPosition = tab != null ? tab.getPosition() : INVALID_POSITION;
-            return;
-        }
-
-        final FragmentTransaction trans = mActivity.getFragmentManager().beginTransaction()
-                .disallowAddToBackStack();
-
-        if (mSelectedTab == tab) {
-            if (mSelectedTab != null) {
-                mSelectedTab.getCallback().onTabReselected(mSelectedTab, trans);
-                mTabScrollView.animateToTab(tab.getPosition());
-            }
-        } else {
-            mTabScrollView.setTabSelected(tab != null ? tab.getPosition() : Tab.INVALID_POSITION);
-            if (mSelectedTab != null) {
-                mSelectedTab.getCallback().onTabUnselected(mSelectedTab, trans);
-            }
-            mSelectedTab = (TabImpl) tab;
-            if (mSelectedTab != null) {
-                mSelectedTab.getCallback().onTabSelected(mSelectedTab, trans);
-            }
-        }
-
-        if (!trans.isEmpty()) {
-            trans.commit();
-        }
-    }
-
-    @Override
-    public Tab getSelectedTab() {
-        return mSelectedTab;
-    }
-
-    @Override
-    public int getHeight() {
-        return mContainerView.getHeight();
-    }
-
-    public void enableContentAnimations(boolean enabled) {
-        mContentAnimations = enabled;
-    }
-
-    @Override
-    public void show() {
-        if (mHiddenByApp) {
-            mHiddenByApp = false;
-            updateVisibility(false);
-        }
-    }
-
-    private void showForActionMode() {
-        if (!mShowingForMode) {
-            mShowingForMode = true;
-            if (mOverlayLayout != null) {
-                mOverlayLayout.setShowingForActionMode(true);
-            }
-            updateVisibility(false);
-        }
-    }
-
-    public void showForSystem() {
-        if (mHiddenBySystem) {
-            mHiddenBySystem = false;
-            updateVisibility(true);
-        }
-    }
-
-    @Override
-    public void hide() {
-        if (!mHiddenByApp) {
-            mHiddenByApp = true;
-            updateVisibility(false);
-        }
-    }
-
-    private void hideForActionMode() {
-        if (mShowingForMode) {
-            mShowingForMode = false;
-            if (mOverlayLayout != null) {
-                mOverlayLayout.setShowingForActionMode(false);
-            }
-            updateVisibility(false);
-        }
-    }
-
-    public void hideForSystem() {
-        if (!mHiddenBySystem) {
-            mHiddenBySystem = true;
-            updateVisibility(true);
-        }
-    }
-
-    private static boolean checkShowingFlags(boolean hiddenByApp, boolean hiddenBySystem,
-            boolean showingForMode) {
-        if (showingForMode) {
-            return true;
-        } else if (hiddenByApp || hiddenBySystem) {
-            return false;
-        } else {
-            return true;
-        }
-    }
-
-    private void updateVisibility(boolean fromSystem) {
-        // Based on the current state, should we be hidden or shown?
-        final boolean shown = checkShowingFlags(mHiddenByApp, mHiddenBySystem,
-                mShowingForMode);
-
-        if (shown) {
-            if (!mNowShowing) {
-                mNowShowing = true;
-                doShow(fromSystem);
-            }
-        } else {
-            if (mNowShowing) {
-                mNowShowing = false;
-                doHide(fromSystem);
-            }
-        }
-    }
-
-    public void doShow(boolean fromSystem) {
-        if (mCurrentShowAnim != null) {
-            mCurrentShowAnim.end();
-        }
-        mContainerView.setVisibility(View.VISIBLE);
-
-        if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled
-                || fromSystem)) {
-            mContainerView.setTranslationY(0); // because we're about to ask its window loc
-            float startingY = -mContainerView.getHeight();
-            if (fromSystem) {
-                int topLeft[] = {0, 0};
-                mContainerView.getLocationInWindow(topLeft);
-                startingY -= topLeft[1];
-            }
-            mContainerView.setTranslationY(startingY);
-            AnimatorSet anim = new AnimatorSet();
-            ObjectAnimator a = ObjectAnimator.ofFloat(mContainerView, View.TRANSLATION_Y, 0);
-            a.addUpdateListener(mUpdateListener);
-            AnimatorSet.Builder b = anim.play(a);
-            if (mContentAnimations && mContentView != null) {
-                b.with(ObjectAnimator.ofFloat(mContentView, View.TRANSLATION_Y,
-                        startingY, 0));
-            }
-            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
-                mSplitView.setTranslationY(mSplitView.getHeight());
-                mSplitView.setVisibility(View.VISIBLE);
-                b.with(ObjectAnimator.ofFloat(mSplitView, View.TRANSLATION_Y, 0));
-            }
-            anim.setInterpolator(AnimationUtils.loadInterpolator(mContext,
-                    com.android.internal.R.interpolator.decelerate_cubic));
-            anim.setDuration(250);
-            // If this is being shown from the system, add a small delay.
-            // This is because we will also be animating in the status bar,
-            // and these two elements can't be done in lock-step.  So we give
-            // a little time for the status bar to start its animation before
-            // the action bar animates.  (This corresponds to the corresponding
-            // case when hiding, where the status bar has a small delay before
-            // starting.)
-            anim.addListener(mShowListener);
-            mCurrentShowAnim = anim;
-            anim.start();
-        } else {
-            mContainerView.setAlpha(1);
-            mContainerView.setTranslationY(0);
-            if (mContentAnimations && mContentView != null) {
-                mContentView.setTranslationY(0);
-            }
-            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
-                mSplitView.setAlpha(1);
-                mSplitView.setTranslationY(0);
-                mSplitView.setVisibility(View.VISIBLE);
-            }
-            mShowListener.onAnimationEnd(null);
-        }
-        if (mOverlayLayout != null) {
-            mOverlayLayout.requestFitSystemWindows();
-        }
-    }
-
-    public void doHide(boolean fromSystem) {
-        if (mCurrentShowAnim != null) {
-            mCurrentShowAnim.end();
-        }
-
-        if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled
-                || fromSystem)) {
-            mContainerView.setAlpha(1);
-            mContainerView.setTransitioning(true);
-            AnimatorSet anim = new AnimatorSet();
-            float endingY = -mContainerView.getHeight();
-            if (fromSystem) {
-                int topLeft[] = {0, 0};
-                mContainerView.getLocationInWindow(topLeft);
-                endingY -= topLeft[1];
-            }
-            ObjectAnimator a = ObjectAnimator.ofFloat(mContainerView, View.TRANSLATION_Y, endingY);
-            a.addUpdateListener(mUpdateListener);
-            AnimatorSet.Builder b = anim.play(a);
-            if (mContentAnimations && mContentView != null) {
-                b.with(ObjectAnimator.ofFloat(mContentView, View.TRANSLATION_Y,
-                        0, endingY));
-            }
-            if (mSplitView != null && mSplitView.getVisibility() == View.VISIBLE) {
-                mSplitView.setAlpha(1);
-                b.with(ObjectAnimator.ofFloat(mSplitView, View.TRANSLATION_Y,
-                        mSplitView.getHeight()));
-            }
-            anim.setInterpolator(AnimationUtils.loadInterpolator(mContext,
-                    com.android.internal.R.interpolator.accelerate_cubic));
-            anim.setDuration(250);
-            anim.addListener(mHideListener);
-            mCurrentShowAnim = anim;
-            anim.start();
-        } else {
-            mHideListener.onAnimationEnd(null);
-        }
-    }
-
-    public boolean isShowing() {
-        return mNowShowing;
-    }
-
-    public boolean isSystemShowing() {
-        return !mHiddenBySystem;
-    }
-
-    void animateToMode(boolean toActionMode) {
-        if (toActionMode) {
-            showForActionMode();
-        } else {
-            hideForActionMode();
-        }
-
-        mActionView.animateToVisibility(toActionMode ? View.GONE : View.VISIBLE);
-        mContextView.animateToVisibility(toActionMode ? View.VISIBLE : View.GONE);
-        if (mTabScrollView != null && !mActionView.hasEmbeddedTabs() && mActionView.isCollapsed()) {
-            mTabScrollView.animateToVisibility(toActionMode ? View.GONE : View.VISIBLE);
-        }
-    }
-
-    public Context getThemedContext() {
-        if (mThemedContext == null) {
-            TypedValue outValue = new TypedValue();
-            Resources.Theme currentTheme = mContext.getTheme();
-            currentTheme.resolveAttribute(com.android.internal.R.attr.actionBarWidgetTheme,
-                    outValue, true);
-            final int targetThemeRes = outValue.resourceId;
-            
-            if (targetThemeRes != 0 && mContext.getThemeResId() != targetThemeRes) {
-                mThemedContext = new ContextThemeWrapper(mContext, targetThemeRes);
-            } else {
-                mThemedContext = mContext;
-            }
-        }
-        return mThemedContext;
-    }
-    
-    @Override
-    public boolean isTitleTruncated() {
-        return mActionView != null && mActionView.isTitleTruncated();
-    }
-
-    @Override
-    public void setHomeAsUpIndicator(Drawable indicator) {
-        mActionView.setHomeAsUpIndicator(indicator);
-    }
-
-    @Override
-    public void setHomeAsUpIndicator(int resId) {
-        mActionView.setHomeAsUpIndicator(resId);
-    }
-
-    @Override
-    public void setHomeActionContentDescription(CharSequence description) {
-        mActionView.setHomeActionContentDescription(description);
-    }
-
-    @Override
-    public void setHomeActionContentDescription(int resId) {
-        mActionView.setHomeActionContentDescription(resId);
-    }
-
-    /**
-     * @hide 
-     */
-    public class ActionModeImpl extends ActionMode implements MenuBuilder.Callback {
-        private ActionMode.Callback mCallback;
-        private MenuBuilder mMenu;
-        private WeakReference<View> mCustomView;
-        
-        public ActionModeImpl(ActionMode.Callback callback) {
-            mCallback = callback;
-            mMenu = new MenuBuilder(getThemedContext())
-                    .setDefaultShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
-            mMenu.setCallback(this);
-        }
-
-        @Override
-        public MenuInflater getMenuInflater() {
-            return new MenuInflater(getThemedContext());
-        }
-
-        @Override
-        public Menu getMenu() {
-            return mMenu;
-        }
-
-        @Override
-        public void finish() {
-            if (mActionMode != this) {
-                // Not the active action mode - no-op
-                return;
-            }
-
-            // If this change in state is going to cause the action bar
-            // to be hidden, defer the onDestroy callback until the animation
-            // is finished and associated relayout is about to happen. This lets
-            // apps better anticipate visibility and layout behavior.
-            if (!checkShowingFlags(mHiddenByApp, mHiddenBySystem, false)) {
-                // With the current state but the action bar hidden, our
-                // overall showing state is going to be false.
-                mDeferredDestroyActionMode = this;
-                mDeferredModeDestroyCallback = mCallback;
-            } else {
-                mCallback.onDestroyActionMode(this);
-            }
-            mCallback = null;
-            animateToMode(false);
-
-            // Clear out the context mode views after the animation finishes
-            mContextView.closeMode();
-            mActionView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
-
-            mActionMode = null;
-        }
-
-        @Override
-        public void invalidate() {
-            mMenu.stopDispatchingItemsChanged();
-            try {
-                mCallback.onPrepareActionMode(this, mMenu);
-            } finally {
-                mMenu.startDispatchingItemsChanged();
-            }
-        }
-
-        public boolean dispatchOnCreate() {
-            mMenu.stopDispatchingItemsChanged();
-            try {
-                return mCallback.onCreateActionMode(this, mMenu);
-            } finally {
-                mMenu.startDispatchingItemsChanged();
-            }
-        }
-
-        @Override
-        public void setCustomView(View view) {
-            mContextView.setCustomView(view);
-            mCustomView = new WeakReference<View>(view);
-        }
-
-        @Override
-        public void setSubtitle(CharSequence subtitle) {
-            mContextView.setSubtitle(subtitle);
-        }
-
-        @Override
-        public void setTitle(CharSequence title) {
-            mContextView.setTitle(title);
-        }
-
-        @Override
-        public void setTitle(int resId) {
-            setTitle(mContext.getResources().getString(resId));
-        }
-
-        @Override
-        public void setSubtitle(int resId) {
-            setSubtitle(mContext.getResources().getString(resId));
-        }
-
-        @Override
-        public CharSequence getTitle() {
-            return mContextView.getTitle();
-        }
-
-        @Override
-        public CharSequence getSubtitle() {
-            return mContextView.getSubtitle();
-        }
-        
-        @Override
-        public void setTitleOptionalHint(boolean titleOptional) {
-            super.setTitleOptionalHint(titleOptional);
-            mContextView.setTitleOptional(titleOptional);
-        }
-
-        @Override
-        public boolean isTitleOptional() {
-            return mContextView.isTitleOptional();
-        }
-
-        @Override
-        public View getCustomView() {
-            return mCustomView != null ? mCustomView.get() : null;
-        }
-
-        public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) {
-            if (mCallback != null) {
-                return mCallback.onActionItemClicked(this, item);
-            } else {
-                return false;
-            }
-        }
-
-        public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) {
-        }
-
-        public boolean onSubMenuSelected(SubMenuBuilder subMenu) {
-            if (mCallback == null) {
-                return false;
-            }
-
-            if (!subMenu.hasVisibleItems()) {
-                return true;
-            }
-
-            new MenuPopupHelper(getThemedContext(), subMenu).show();
-            return true;
-        }
-
-        public void onCloseSubMenu(SubMenuBuilder menu) {
-        }
-
-        public void onMenuModeChange(MenuBuilder menu) {
-            if (mCallback == null) {
-                return;
-            }
-            invalidate();
-            mContextView.showOverflowMenu();
-        }
-    }
-
-    /**
-     * @hide
-     */
-    public class TabImpl extends ActionBar.Tab {
-        private ActionBar.TabListener mCallback;
-        private Object mTag;
-        private Drawable mIcon;
-        private CharSequence mText;
-        private CharSequence mContentDesc;
-        private int mPosition = -1;
-        private View mCustomView;
-
-        @Override
-        public Object getTag() {
-            return mTag;
-        }
-
-        @Override
-        public Tab setTag(Object tag) {
-            mTag = tag;
-            return this;
-        }
-
-        public ActionBar.TabListener getCallback() {
-            return mCallback;
-        }
-
-        @Override
-        public Tab setTabListener(ActionBar.TabListener callback) {
-            mCallback = callback;
-            return this;
-        }
-
-        @Override
-        public View getCustomView() {
-            return mCustomView;
-        }
-
-        @Override
-        public Tab setCustomView(View view) {
-            mCustomView = view;
-            if (mPosition >= 0) {
-                mTabScrollView.updateTab(mPosition);
-            }
-            return this;
-        }
-
-        @Override
-        public Tab setCustomView(int layoutResId) {
-            return setCustomView(LayoutInflater.from(getThemedContext())
-                    .inflate(layoutResId, null));
-        }
-
-        @Override
-        public Drawable getIcon() {
-            return mIcon;
-        }
-
-        @Override
-        public int getPosition() {
-            return mPosition;
-        }
-
-        public void setPosition(int position) {
-            mPosition = position;
-        }
-
-        @Override
-        public CharSequence getText() {
-            return mText;
-        }
-
-        @Override
-        public Tab setIcon(Drawable icon) {
-            mIcon = icon;
-            if (mPosition >= 0) {
-                mTabScrollView.updateTab(mPosition);
-            }
-            return this;
-        }
-
-        @Override
-        public Tab setIcon(int resId) {
-            return setIcon(mContext.getDrawable(resId));
-        }
-
-        @Override
-        public Tab setText(CharSequence text) {
-            mText = text;
-            if (mPosition >= 0) {
-                mTabScrollView.updateTab(mPosition);
-            }
-            return this;
-        }
-
-        @Override
-        public Tab setText(int resId) {
-            return setText(mContext.getResources().getText(resId));
-        }
-
-        @Override
-        public void select() {
-            selectTab(this);
-        }
-
-        @Override
-        public Tab setContentDescription(int resId) {
-            return setContentDescription(mContext.getResources().getText(resId));
-        }
-
-        @Override
-        public Tab setContentDescription(CharSequence contentDesc) {
-            mContentDesc = contentDesc;
-            if (mPosition >= 0) {
-                mTabScrollView.updateTab(mPosition);
-            }
-            return this;
-        }
-
-        @Override
-        public CharSequence getContentDescription() {
-            return mContentDesc;
-        }
-    }
-
-    @Override
-    public void setCustomView(View view) {
-        mActionView.setCustomNavigationView(view);
-    }
-
-    @Override
-    public void setCustomView(View view, LayoutParams layoutParams) {
-        view.setLayoutParams(layoutParams);
-        mActionView.setCustomNavigationView(view);
-    }
-
-    @Override
-    public void setListNavigationCallbacks(SpinnerAdapter adapter, OnNavigationListener callback) {
-        mActionView.setDropdownAdapter(adapter);
-        mActionView.setCallback(callback);
-    }
-
-    @Override
-    public int getSelectedNavigationIndex() {
-        switch (mActionView.getNavigationMode()) {
-            case NAVIGATION_MODE_TABS:
-                return mSelectedTab != null ? mSelectedTab.getPosition() : -1;
-            case NAVIGATION_MODE_LIST:
-                return mActionView.getDropdownSelectedPosition();
-            default:
-                return -1;
-        }
-    }
-
-    @Override
-    public int getNavigationItemCount() {
-        switch (mActionView.getNavigationMode()) {
-            case NAVIGATION_MODE_TABS:
-                return mTabs.size();
-            case NAVIGATION_MODE_LIST:
-                SpinnerAdapter adapter = mActionView.getDropdownAdapter();
-                return adapter != null ? adapter.getCount() : 0;
-            default:
-                return 0;
-        }
-    }
-
-    @Override
-    public int getTabCount() {
-        return mTabs.size();
-    }
-
-    @Override
-    public void setNavigationMode(int mode) {
-        final int oldMode = mActionView.getNavigationMode();
-        switch (oldMode) {
-            case NAVIGATION_MODE_TABS:
-                mSavedTabPosition = getSelectedNavigationIndex();
-                selectTab(null);
-                mTabScrollView.setVisibility(View.GONE);
-                break;
-        }
-        if (oldMode != mode && !mHasEmbeddedTabs) {
-            if (mOverlayLayout != null) {
-                mOverlayLayout.requestFitSystemWindows();
-            }
-        }
-        mActionView.setNavigationMode(mode);
-        switch (mode) {
-            case NAVIGATION_MODE_TABS:
-                ensureTabsExist();
-                mTabScrollView.setVisibility(View.VISIBLE);
-                if (mSavedTabPosition != INVALID_POSITION) {
-                    setSelectedNavigationItem(mSavedTabPosition);
-                    mSavedTabPosition = INVALID_POSITION;
-                }
-                break;
-        }
-        mActionView.setCollapsable(mode == NAVIGATION_MODE_TABS && !mHasEmbeddedTabs);
-    }
-
-    @Override
-    public Tab getTabAt(int index) {
-        return mTabs.get(index);
-    }
-
-
-    @Override
-    public void setIcon(int resId) {
-        mActionView.setIcon(resId);
-    }
-
-    @Override
-    public void setIcon(Drawable icon) {
-        mActionView.setIcon(icon);
-    }
-
-    public boolean hasIcon() {
-        return mActionView.hasIcon();
-    }
-
-    @Override
-    public void setLogo(int resId) {
-        mActionView.setLogo(resId);
-    }
-
-    @Override
-    public void setLogo(Drawable logo) {
-        mActionView.setLogo(logo);
-    }
-
-    public boolean hasLogo() {
-        return mActionView.hasLogo();
-    }
-
-    public void setDefaultDisplayHomeAsUpEnabled(boolean enable) {
-        if (!mDisplayHomeAsUpSet) {
-            setDisplayHomeAsUpEnabled(enable);
-        }
-    }
-}
diff --git a/core/java/com/android/internal/app/ProcessStats.java b/core/java/com/android/internal/app/ProcessStats.java
index b1535e3..882bec9 100644
--- a/core/java/com/android/internal/app/ProcessStats.java
+++ b/core/java/com/android/internal/app/ProcessStats.java
@@ -29,8 +29,11 @@
 import android.util.SparseArray;
 import android.util.TimeUtils;
 import android.webkit.WebViewFactory;
-import com.android.internal.util.ArrayUtils;
+
+import com.android.internal.util.GrowingArrayUtils;
+
 import dalvik.system.VMRuntime;
+import libcore.util.EmptyArray;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -1621,21 +1624,10 @@
     }
 
     int addLongData(int index, int type, int num) {
-        int tableLen = mAddLongTable != null ? mAddLongTable.length : 0;
-        if (mAddLongTableSize >= tableLen) {
-            int newSize = ArrayUtils.idealIntArraySize(tableLen + 1);
-            int[] newTable = new int[newSize];
-            if (tableLen > 0) {
-                System.arraycopy(mAddLongTable, 0, newTable, 0, tableLen);
-            }
-            mAddLongTable = newTable;
-        }
-        if (mAddLongTableSize > 0 && mAddLongTableSize - index != 0) {
-            System.arraycopy(mAddLongTable, index, mAddLongTable, index + 1,
-                    mAddLongTableSize - index);
-        }
         int off = allocLongData(num);
-        mAddLongTable[index] = type | off;
+        mAddLongTable = GrowingArrayUtils.insert(
+                mAddLongTable != null ? mAddLongTable : EmptyArray.INT,
+                mAddLongTableSize, index, type | off);
         mAddLongTableSize++;
         return off;
     }
diff --git a/core/java/com/android/internal/app/ToolbarActionBar.java b/core/java/com/android/internal/app/ToolbarActionBar.java
new file mode 100644
index 0000000..34156e5
--- /dev/null
+++ b/core/java/com/android/internal/app/ToolbarActionBar.java
@@ -0,0 +1,452 @@
+/*
+ * 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.android.internal.app;
+
+import android.annotation.Nullable;
+import android.app.ActionBar;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
+import android.view.ActionMode;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.SpinnerAdapter;
+import android.widget.Toolbar;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+public class ToolbarActionBar extends ActionBar {
+    private Toolbar mToolbar;
+    private View mCustomView;
+
+    private int mDisplayOptions;
+
+    private int mNavResId;
+    private int mIconResId;
+    private int mLogoResId;
+    private Drawable mNavDrawable;
+    private Drawable mIconDrawable;
+    private Drawable mLogoDrawable;
+    private int mTitleResId;
+    private int mSubtitleResId;
+    private CharSequence mTitle;
+    private CharSequence mSubtitle;
+
+    private boolean mLastMenuVisibility;
+    private ArrayList<OnMenuVisibilityListener> mMenuVisibilityListeners =
+            new ArrayList<OnMenuVisibilityListener>();
+
+    public ToolbarActionBar(Toolbar toolbar) {
+        mToolbar = toolbar;
+    }
+
+    @Override
+    public void setCustomView(View view) {
+        setCustomView(view, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+    }
+
+    @Override
+    public void setCustomView(View view, LayoutParams layoutParams) {
+        if (mCustomView != null) {
+            mToolbar.removeView(mCustomView);
+        }
+        mCustomView = view;
+        if (view != null) {
+            mToolbar.addView(view, generateLayoutParams(layoutParams));
+        }
+    }
+
+    private Toolbar.LayoutParams generateLayoutParams(LayoutParams lp) {
+        final Toolbar.LayoutParams result = new Toolbar.LayoutParams(lp);
+        result.gravity = lp.gravity;
+        return result;
+    }
+
+    @Override
+    public void setCustomView(int resId) {
+        final LayoutInflater inflater = LayoutInflater.from(mToolbar.getContext());
+        setCustomView(inflater.inflate(resId, mToolbar, false));
+    }
+
+    @Override
+    public void setIcon(int resId) {
+        mIconResId = resId;
+        mIconDrawable = null;
+        updateToolbarLogo();
+    }
+
+    @Override
+    public void setIcon(Drawable icon) {
+        mIconResId = 0;
+        mIconDrawable = icon;
+        updateToolbarLogo();
+    }
+
+    @Override
+    public void setLogo(int resId) {
+        mLogoResId = resId;
+        mLogoDrawable = null;
+        updateToolbarLogo();
+    }
+
+    @Override
+    public void setLogo(Drawable logo) {
+        mLogoResId = 0;
+        mLogoDrawable = logo;
+        updateToolbarLogo();
+    }
+
+    private void updateToolbarLogo() {
+        Drawable drawable = null;
+        if ((mDisplayOptions & ActionBar.DISPLAY_SHOW_HOME) != 0) {
+            final int resId;
+            if ((mDisplayOptions & ActionBar.DISPLAY_USE_LOGO) != 0) {
+                resId = mLogoResId;
+                drawable = mLogoDrawable;
+            } else {
+                resId = mIconResId;
+                drawable = mIconDrawable;
+            }
+            if (resId != 0) {
+                drawable = mToolbar.getContext().getDrawable(resId);
+            }
+        }
+        mToolbar.setLogo(drawable);
+    }
+
+    @Override
+    public void setStackedBackgroundDrawable(Drawable d) {
+        // This space for rent (do nothing)
+    }
+
+    @Override
+    public void setSplitBackgroundDrawable(Drawable d) {
+        // This space for rent (do nothing)
+    }
+
+    @Override
+    public void setHomeButtonEnabled(boolean enabled) {
+        // If the nav button on a Toolbar is present, it's enabled. No-op.
+    }
+
+    @Override
+    public Context getThemedContext() {
+        return mToolbar.getContext();
+    }
+
+    @Override
+    public boolean isTitleTruncated() {
+        return super.isTitleTruncated();
+    }
+
+    @Override
+    public void setHomeAsUpIndicator(Drawable indicator) {
+        mToolbar.setNavigationIcon(indicator);
+    }
+
+    @Override
+    public void setHomeAsUpIndicator(int resId) {
+        mToolbar.setNavigationIcon(resId);
+    }
+
+    @Override
+    public void setHomeActionContentDescription(CharSequence description) {
+        mToolbar.setNavigationDescription(description);
+    }
+
+    @Override
+    public void setDefaultDisplayHomeAsUpEnabled(boolean enabled) {
+        // Do nothing
+    }
+
+    @Override
+    public void setHomeActionContentDescription(int resId) {
+        mToolbar.setNavigationDescription(resId);
+    }
+
+    @Override
+    public void setShowHideAnimationEnabled(boolean enabled) {
+        // This space for rent; no-op.
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration config) {
+        super.onConfigurationChanged(config);
+    }
+
+    @Override
+    public ActionMode startActionMode(ActionMode.Callback callback) {
+        return mToolbar.startActionMode(callback);
+    }
+
+    @Override
+    public void setListNavigationCallbacks(SpinnerAdapter adapter, OnNavigationListener callback) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void setSelectedNavigationItem(int position) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public int getSelectedNavigationIndex() {
+        return -1;
+    }
+
+    @Override
+    public int getNavigationItemCount() {
+        return 0;
+    }
+
+    @Override
+    public void setTitle(CharSequence title) {
+        mTitle = title;
+        mTitleResId = 0;
+        updateToolbarTitle();
+    }
+
+    @Override
+    public void setTitle(int resId) {
+        mTitleResId = resId;
+        mTitle = null;
+        updateToolbarTitle();
+    }
+
+    @Override
+    public void setSubtitle(CharSequence subtitle) {
+        mSubtitle = subtitle;
+        mSubtitleResId = 0;
+        updateToolbarTitle();
+    }
+
+    @Override
+    public void setSubtitle(int resId) {
+        mSubtitleResId = resId;
+        mSubtitle = null;
+        updateToolbarTitle();
+    }
+
+    private void updateToolbarTitle() {
+        final Context context = mToolbar.getContext();
+        CharSequence title = null;
+        CharSequence subtitle = null;
+        if ((mDisplayOptions & ActionBar.DISPLAY_SHOW_TITLE) != 0) {
+            title = mTitleResId != 0 ? context.getText(mTitleResId) : mTitle;
+            subtitle = mSubtitleResId != 0 ? context.getText(mSubtitleResId) : mSubtitle;
+        }
+        mToolbar.setTitle(title);
+        mToolbar.setSubtitle(subtitle);
+    }
+
+    @Override
+    public void setDisplayOptions(@DisplayOptions int options) {
+        setDisplayOptions(options, 0xffffffff);
+    }
+
+    @Override
+    public void setDisplayOptions(@DisplayOptions int options, @DisplayOptions int mask) {
+        final int oldOptions = mDisplayOptions;
+        mDisplayOptions = (options & mask) | (mDisplayOptions & ~mask);
+        final int optionsChanged = oldOptions ^ mDisplayOptions;
+    }
+
+    @Override
+    public void setDisplayUseLogoEnabled(boolean useLogo) {
+        setDisplayOptions(useLogo ? DISPLAY_USE_LOGO : 0, DISPLAY_USE_LOGO);
+    }
+
+    @Override
+    public void setDisplayShowHomeEnabled(boolean showHome) {
+        setDisplayOptions(showHome ? DISPLAY_SHOW_HOME : 0, DISPLAY_SHOW_HOME);
+    }
+
+    @Override
+    public void setDisplayHomeAsUpEnabled(boolean showHomeAsUp) {
+        setDisplayOptions(showHomeAsUp ? DISPLAY_HOME_AS_UP : 0, DISPLAY_HOME_AS_UP);
+    }
+
+    @Override
+    public void setDisplayShowTitleEnabled(boolean showTitle) {
+        setDisplayOptions(showTitle ? DISPLAY_SHOW_TITLE : 0, DISPLAY_SHOW_TITLE);
+    }
+
+    @Override
+    public void setDisplayShowCustomEnabled(boolean showCustom) {
+        setDisplayOptions(showCustom ? DISPLAY_SHOW_CUSTOM : 0, DISPLAY_SHOW_CUSTOM);
+    }
+
+    @Override
+    public void setBackgroundDrawable(@Nullable Drawable d) {
+        mToolbar.setBackground(d);
+    }
+
+    @Override
+    public View getCustomView() {
+        return mCustomView;
+    }
+
+    @Override
+    public CharSequence getTitle() {
+        return mToolbar.getTitle();
+    }
+
+    @Override
+    public CharSequence getSubtitle() {
+        return mToolbar.getSubtitle();
+    }
+
+    @Override
+    public int getNavigationMode() {
+        return NAVIGATION_MODE_STANDARD;
+    }
+
+    @Override
+    public void setNavigationMode(@NavigationMode int mode) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public int getDisplayOptions() {
+        return mDisplayOptions;
+    }
+
+    @Override
+    public Tab newTab() {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void addTab(Tab tab) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void addTab(Tab tab, boolean setSelected) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void addTab(Tab tab, int position) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void addTab(Tab tab, int position, boolean setSelected) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void removeTab(Tab tab) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void removeTabAt(int position) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void removeAllTabs() {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public void selectTab(Tab tab) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public Tab getSelectedTab() {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public Tab getTabAt(int index) {
+        throw new UnsupportedOperationException(
+                "Navigation modes are not supported in toolbar action bars");
+    }
+
+    @Override
+    public int getTabCount() {
+        return 0;
+    }
+
+    @Override
+    public int getHeight() {
+        return mToolbar.getHeight();
+    }
+
+    @Override
+    public void show() {
+        // TODO: Consider a better transition for this.
+        // Right now use no automatic transition so that the app can supply one if desired.
+        mToolbar.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void hide() {
+        // TODO: Consider a better transition for this.
+        // Right now use no automatic transition so that the app can supply one if desired.
+        mToolbar.setVisibility(View.GONE);
+    }
+
+    @Override
+    public boolean isShowing() {
+        return mToolbar.getVisibility() == View.VISIBLE;
+    }
+
+    public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
+        mMenuVisibilityListeners.add(listener);
+    }
+
+    public void removeOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
+        mMenuVisibilityListeners.remove(listener);
+    }
+
+    public void dispatchMenuVisibilityChanged(boolean isVisible) {
+        if (isVisible == mLastMenuVisibility) {
+            return;
+        }
+        mLastMenuVisibility = isVisible;
+
+        final int count = mMenuVisibilityListeners.size();
+        for (int i = 0; i < count; i++) {
+            mMenuVisibilityListeners.get(i).onMenuVisibilityChanged(isVisible);
+        }
+    }
+
+    @Override
+    public void captureSharedElements(Map<String, View> sharedElements) {
+        mToolbar.findSharedElements(sharedElements);
+    }
+}
diff --git a/core/java/com/android/internal/app/WindowDecorActionBar.java b/core/java/com/android/internal/app/WindowDecorActionBar.java
new file mode 100644
index 0000000..fb93ddd
--- /dev/null
+++ b/core/java/com/android/internal/app/WindowDecorActionBar.java
@@ -0,0 +1,1252 @@
+/*
+ * 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.
+ */
+
+package com.android.internal.app;
+
+import android.animation.ValueAnimator;
+import android.view.ViewParent;
+import com.android.internal.view.ActionBarPolicy;
+import com.android.internal.view.menu.MenuBuilder;
+import com.android.internal.view.menu.MenuPopupHelper;
+import com.android.internal.view.menu.SubMenuBuilder;
+import com.android.internal.widget.ActionBarContainer;
+import com.android.internal.widget.ActionBarContextView;
+import com.android.internal.widget.ActionBarOverlayLayout;
+import com.android.internal.widget.ActionBarView;
+import com.android.internal.widget.ScrollingTabContainerView;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.app.ActionBar;
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.os.Handler;
+import android.util.TypedValue;
+import android.view.ActionMode;
+import android.view.ContextThemeWrapper;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.Window;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.AnimationUtils;
+import android.widget.SpinnerAdapter;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Map;
+
+/**
+ * WindowDecorActionBar is the ActionBar implementation used
+ * by devices of all screen sizes as part of the window decor layout.
+ * If it detects a compatible decor, it will split contextual modes
+ * across both the ActionBarView at the top of the screen and
+ * a horizontal LinearLayout at the bottom which is normally hidden.
+ */
+public class WindowDecorActionBar extends ActionBar {
+    private static final String TAG = "WindowDecorActionBar";
+
+    private Context mContext;
+    private Context mThemedContext;
+    private Activity mActivity;
+    private Dialog mDialog;
+
+    private ActionBarOverlayLayout mOverlayLayout;
+    private ActionBarContainer mContainerView;
+    private ActionBarView mActionView;
+    private ActionBarContextView mContextView;
+    private ActionBarContainer mSplitView;
+    private View mContentView;
+    private ScrollingTabContainerView mTabScrollView;
+
+    private ArrayList<TabImpl> mTabs = new ArrayList<TabImpl>();
+
+    private TabImpl mSelectedTab;
+    private int mSavedTabPosition = INVALID_POSITION;
+    
+    private boolean mDisplayHomeAsUpSet;
+
+    ActionModeImpl mActionMode;
+    ActionMode mDeferredDestroyActionMode;
+    ActionMode.Callback mDeferredModeDestroyCallback;
+    
+    private boolean mLastMenuVisibility;
+    private ArrayList<OnMenuVisibilityListener> mMenuVisibilityListeners =
+            new ArrayList<OnMenuVisibilityListener>();
+
+    private static final int CONTEXT_DISPLAY_NORMAL = 0;
+    private static final int CONTEXT_DISPLAY_SPLIT = 1;
+    
+    private static final int INVALID_POSITION = -1;
+
+    private int mContextDisplayMode;
+    private boolean mHasEmbeddedTabs;
+
+    private int mCurWindowVisibility = View.VISIBLE;
+
+    private boolean mContentAnimations = true;
+    private boolean mHiddenByApp;
+    private boolean mHiddenBySystem;
+    private boolean mShowingForMode;
+
+    private boolean mNowShowing = true;
+
+    private Animator mCurrentShowAnim;
+    private boolean mShowHideAnimationEnabled;
+
+    final AnimatorListener mHideListener = new AnimatorListenerAdapter() {
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            if (mContentAnimations && mContentView != null) {
+                mContentView.setTranslationY(0);
+                mContainerView.setTranslationY(0);
+            }
+            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
+                mSplitView.setVisibility(View.GONE);
+            }
+            mContainerView.setVisibility(View.GONE);
+            mContainerView.setTransitioning(false);
+            mCurrentShowAnim = null;
+            completeDeferredDestroyActionMode();
+            if (mOverlayLayout != null) {
+                mOverlayLayout.requestFitSystemWindows();
+            }
+        }
+    };
+
+    final AnimatorListener mShowListener = new AnimatorListenerAdapter() {
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            mCurrentShowAnim = null;
+            mContainerView.requestLayout();
+        }
+    };
+
+    final ValueAnimator.AnimatorUpdateListener mUpdateListener =
+            new ValueAnimator.AnimatorUpdateListener() {
+        @Override
+        public void onAnimationUpdate(ValueAnimator animation) {
+            final ViewParent parent = mContainerView.getParent();
+            ((View) parent).invalidate();
+        }
+    };
+
+    public WindowDecorActionBar(Activity activity) {
+        mActivity = activity;
+        Window window = activity.getWindow();
+        View decor = window.getDecorView();
+        boolean overlayMode = mActivity.getWindow().hasFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
+        init(decor);
+        if (!overlayMode) {
+            mContentView = decor.findViewById(android.R.id.content);
+        }
+    }
+
+    public WindowDecorActionBar(Dialog dialog) {
+        mDialog = dialog;
+        init(dialog.getWindow().getDecorView());
+    }
+
+    /**
+     * Only for edit mode.
+     * @hide
+     */
+    public WindowDecorActionBar(View layout) {
+        assert layout.isInEditMode();
+        init(layout);
+    }
+
+    private void init(View decor) {
+        mOverlayLayout = (ActionBarOverlayLayout) decor.findViewById(
+                com.android.internal.R.id.action_bar_overlay_layout);
+        if (mOverlayLayout != null) {
+            mOverlayLayout.setActionBar(this);
+        }
+        mActionView = (ActionBarView) decor.findViewById(com.android.internal.R.id.action_bar);
+        mContextView = (ActionBarContextView) decor.findViewById(
+                com.android.internal.R.id.action_context_bar);
+        mContainerView = (ActionBarContainer) decor.findViewById(
+                com.android.internal.R.id.action_bar_container);
+        mSplitView = (ActionBarContainer) decor.findViewById(
+                com.android.internal.R.id.split_action_bar);
+
+        if (mActionView == null || mContextView == null || mContainerView == null) {
+            throw new IllegalStateException(getClass().getSimpleName() + " can only be used " +
+                    "with a compatible window decor layout");
+        }
+
+        mContext = mActionView.getContext();
+        mActionView.setContextView(mContextView);
+        mContextDisplayMode = mActionView.isSplitActionBar() ?
+                CONTEXT_DISPLAY_SPLIT : CONTEXT_DISPLAY_NORMAL;
+
+        // This was initially read from the action bar style
+        final int current = mActionView.getDisplayOptions();
+        final boolean homeAsUp = (current & DISPLAY_HOME_AS_UP) != 0;
+        if (homeAsUp) {
+            mDisplayHomeAsUpSet = true;
+        }
+
+        ActionBarPolicy abp = ActionBarPolicy.get(mContext);
+        setHomeButtonEnabled(abp.enableHomeButtonByDefault() || homeAsUp);
+        setHasEmbeddedTabs(abp.hasEmbeddedTabs());
+    }
+
+    public void onConfigurationChanged(Configuration newConfig) {
+        setHasEmbeddedTabs(ActionBarPolicy.get(mContext).hasEmbeddedTabs());
+    }
+
+    private void setHasEmbeddedTabs(boolean hasEmbeddedTabs) {
+        mHasEmbeddedTabs = hasEmbeddedTabs;
+        // Switch tab layout configuration if needed
+        if (!mHasEmbeddedTabs) {
+            mActionView.setEmbeddedTabView(null);
+            mContainerView.setTabContainer(mTabScrollView);
+        } else {
+            mContainerView.setTabContainer(null);
+            mActionView.setEmbeddedTabView(mTabScrollView);
+        }
+        final boolean isInTabMode = getNavigationMode() == NAVIGATION_MODE_TABS;
+        if (mTabScrollView != null) {
+            if (isInTabMode) {
+                mTabScrollView.setVisibility(View.VISIBLE);
+                if (mOverlayLayout != null) {
+                    mOverlayLayout.requestFitSystemWindows();
+                }
+            } else {
+                mTabScrollView.setVisibility(View.GONE);
+            }
+        }
+        mActionView.setCollapsable(!mHasEmbeddedTabs && isInTabMode);
+    }
+
+    public boolean hasNonEmbeddedTabs() {
+        return !mHasEmbeddedTabs && getNavigationMode() == NAVIGATION_MODE_TABS;
+    }
+
+    private void ensureTabsExist() {
+        if (mTabScrollView != null) {
+            return;
+        }
+
+        ScrollingTabContainerView tabScroller = new ScrollingTabContainerView(mContext);
+
+        if (mHasEmbeddedTabs) {
+            tabScroller.setVisibility(View.VISIBLE);
+            mActionView.setEmbeddedTabView(tabScroller);
+        } else {
+            if (getNavigationMode() == NAVIGATION_MODE_TABS) {
+                tabScroller.setVisibility(View.VISIBLE);
+                if (mOverlayLayout != null) {
+                    mOverlayLayout.requestFitSystemWindows();
+                }
+            } else {
+                tabScroller.setVisibility(View.GONE);
+            }
+            mContainerView.setTabContainer(tabScroller);
+        }
+        mTabScrollView = tabScroller;
+    }
+
+    void completeDeferredDestroyActionMode() {
+        if (mDeferredModeDestroyCallback != null) {
+            mDeferredModeDestroyCallback.onDestroyActionMode(mDeferredDestroyActionMode);
+            mDeferredDestroyActionMode = null;
+            mDeferredModeDestroyCallback = null;
+        }
+    }
+
+    public void setWindowVisibility(int visibility) {
+        mCurWindowVisibility = visibility;
+    }
+
+    /**
+     * Enables or disables animation between show/hide states.
+     * If animation is disabled using this method, animations in progress
+     * will be finished.
+     *
+     * @param enabled true to animate, false to not animate.
+     */
+    public void setShowHideAnimationEnabled(boolean enabled) {
+        mShowHideAnimationEnabled = enabled;
+        if (!enabled && mCurrentShowAnim != null) {
+            mCurrentShowAnim.end();
+        }
+    }
+
+    public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
+        mMenuVisibilityListeners.add(listener);
+    }
+
+    public void removeOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
+        mMenuVisibilityListeners.remove(listener);
+    }
+
+    public void dispatchMenuVisibilityChanged(boolean isVisible) {
+        if (isVisible == mLastMenuVisibility) {
+            return;
+        }
+        mLastMenuVisibility = isVisible;
+
+        final int count = mMenuVisibilityListeners.size();
+        for (int i = 0; i < count; i++) {
+            mMenuVisibilityListeners.get(i).onMenuVisibilityChanged(isVisible);
+        }
+    }
+
+    @Override
+    public void setCustomView(int resId) {
+        setCustomView(LayoutInflater.from(getThemedContext()).inflate(resId, mActionView, false));
+    }
+
+    @Override
+    public void setDisplayUseLogoEnabled(boolean useLogo) {
+        setDisplayOptions(useLogo ? DISPLAY_USE_LOGO : 0, DISPLAY_USE_LOGO);
+    }
+
+    @Override
+    public void setDisplayShowHomeEnabled(boolean showHome) {
+        setDisplayOptions(showHome ? DISPLAY_SHOW_HOME : 0, DISPLAY_SHOW_HOME);
+    }
+
+    @Override
+    public void setDisplayHomeAsUpEnabled(boolean showHomeAsUp) {
+        setDisplayOptions(showHomeAsUp ? DISPLAY_HOME_AS_UP : 0, DISPLAY_HOME_AS_UP);
+    }
+
+    @Override
+    public void setDisplayShowTitleEnabled(boolean showTitle) {
+        setDisplayOptions(showTitle ? DISPLAY_SHOW_TITLE : 0, DISPLAY_SHOW_TITLE);
+    }
+
+    @Override
+    public void setDisplayShowCustomEnabled(boolean showCustom) {
+        setDisplayOptions(showCustom ? DISPLAY_SHOW_CUSTOM : 0, DISPLAY_SHOW_CUSTOM);
+    }
+
+    @Override
+    public void setHomeButtonEnabled(boolean enable) {
+        mActionView.setHomeButtonEnabled(enable);
+    }
+
+    @Override
+    public void setTitle(int resId) {
+        setTitle(mContext.getString(resId));
+    }
+
+    @Override
+    public void setSubtitle(int resId) {
+        setSubtitle(mContext.getString(resId));
+    }
+
+    public void captureSharedElements(Map<String, View> sharedElements) {
+        mContainerView.findSharedElements(sharedElements);
+    }
+
+    public void setSelectedNavigationItem(int position) {
+        switch (mActionView.getNavigationMode()) {
+        case NAVIGATION_MODE_TABS:
+            selectTab(mTabs.get(position));
+            break;
+        case NAVIGATION_MODE_LIST:
+            mActionView.setDropdownSelectedPosition(position);
+            break;
+        default:
+            throw new IllegalStateException(
+                    "setSelectedNavigationIndex not valid for current navigation mode");
+        }
+    }
+
+    public void removeAllTabs() {
+        cleanupTabs();
+    }
+
+    private void cleanupTabs() {
+        if (mSelectedTab != null) {
+            selectTab(null);
+        }
+        mTabs.clear();
+        if (mTabScrollView != null) {
+            mTabScrollView.removeAllTabs();
+        }
+        mSavedTabPosition = INVALID_POSITION;
+    }
+
+    public void setTitle(CharSequence title) {
+        mActionView.setTitle(title);
+    }
+
+    public void setSubtitle(CharSequence subtitle) {
+        mActionView.setSubtitle(subtitle);
+    }
+
+    public void setDisplayOptions(int options) {
+        if ((options & DISPLAY_HOME_AS_UP) != 0) {
+            mDisplayHomeAsUpSet = true;
+        }
+        mActionView.setDisplayOptions(options);
+    }
+
+    public void setDisplayOptions(int options, int mask) {
+        final int current = mActionView.getDisplayOptions(); 
+        if ((mask & DISPLAY_HOME_AS_UP) != 0) {
+            mDisplayHomeAsUpSet = true;
+        }
+        mActionView.setDisplayOptions((options & mask) | (current & ~mask));
+    }
+
+    public void setBackgroundDrawable(Drawable d) {
+        mContainerView.setPrimaryBackground(d);
+    }
+
+    public void setStackedBackgroundDrawable(Drawable d) {
+        mContainerView.setStackedBackground(d);
+    }
+
+    public void setSplitBackgroundDrawable(Drawable d) {
+        if (mSplitView != null) {
+            mSplitView.setSplitBackground(d);
+        }
+    }
+
+    public View getCustomView() {
+        return mActionView.getCustomNavigationView();
+    }
+
+    public CharSequence getTitle() {
+        return mActionView.getTitle();
+    }
+
+    public CharSequence getSubtitle() {
+        return mActionView.getSubtitle();
+    }
+
+    public int getNavigationMode() {
+        return mActionView.getNavigationMode();
+    }
+
+    public int getDisplayOptions() {
+        return mActionView.getDisplayOptions();
+    }
+
+    public ActionMode startActionMode(ActionMode.Callback callback) {
+        if (mActionMode != null) {
+            mActionMode.finish();
+        }
+
+        mContextView.killMode();
+        ActionModeImpl mode = new ActionModeImpl(callback);
+        if (mode.dispatchOnCreate()) {
+            mode.invalidate();
+            mContextView.initForMode(mode);
+            animateToMode(true);
+            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
+                // TODO animate this
+                if (mSplitView.getVisibility() != View.VISIBLE) {
+                    mSplitView.setVisibility(View.VISIBLE);
+                    if (mOverlayLayout != null) {
+                        mOverlayLayout.requestFitSystemWindows();
+                    }
+                }
+            }
+            mContextView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+            mActionMode = mode;
+            return mode;
+        }
+        return null;
+    }
+
+    private void configureTab(Tab tab, int position) {
+        final TabImpl tabi = (TabImpl) tab;
+        final ActionBar.TabListener callback = tabi.getCallback();
+
+        if (callback == null) {
+            throw new IllegalStateException("Action Bar Tab must have a Callback");
+        }
+
+        tabi.setPosition(position);
+        mTabs.add(position, tabi);
+
+        final int count = mTabs.size();
+        for (int i = position + 1; i < count; i++) {
+            mTabs.get(i).setPosition(i);
+        }
+    }
+
+    @Override
+    public void addTab(Tab tab) {
+        addTab(tab, mTabs.isEmpty());
+    }
+
+    @Override
+    public void addTab(Tab tab, int position) {
+        addTab(tab, position, mTabs.isEmpty());
+    }
+
+    @Override
+    public void addTab(Tab tab, boolean setSelected) {
+        ensureTabsExist();
+        mTabScrollView.addTab(tab, setSelected);
+        configureTab(tab, mTabs.size());
+        if (setSelected) {
+            selectTab(tab);
+        }
+    }
+
+    @Override
+    public void addTab(Tab tab, int position, boolean setSelected) {
+        ensureTabsExist();
+        mTabScrollView.addTab(tab, position, setSelected);
+        configureTab(tab, position);
+        if (setSelected) {
+            selectTab(tab);
+        }
+    }
+
+    @Override
+    public Tab newTab() {
+        return new TabImpl();
+    }
+
+    @Override
+    public void removeTab(Tab tab) {
+        removeTabAt(tab.getPosition());
+    }
+
+    @Override
+    public void removeTabAt(int position) {
+        if (mTabScrollView == null) {
+            // No tabs around to remove
+            return;
+        }
+
+        int selectedTabPosition = mSelectedTab != null
+                ? mSelectedTab.getPosition() : mSavedTabPosition;
+        mTabScrollView.removeTabAt(position);
+        TabImpl removedTab = mTabs.remove(position);
+        if (removedTab != null) {
+            removedTab.setPosition(-1);
+        }
+
+        final int newTabCount = mTabs.size();
+        for (int i = position; i < newTabCount; i++) {
+            mTabs.get(i).setPosition(i);
+        }
+
+        if (selectedTabPosition == position) {
+            selectTab(mTabs.isEmpty() ? null : mTabs.get(Math.max(0, position - 1)));
+        }
+    }
+
+    @Override
+    public void selectTab(Tab tab) {
+        if (getNavigationMode() != NAVIGATION_MODE_TABS) {
+            mSavedTabPosition = tab != null ? tab.getPosition() : INVALID_POSITION;
+            return;
+        }
+
+        final FragmentTransaction trans = mActionView.isInEditMode() ? null :
+                mActivity.getFragmentManager().beginTransaction().disallowAddToBackStack();
+
+        if (mSelectedTab == tab) {
+            if (mSelectedTab != null) {
+                mSelectedTab.getCallback().onTabReselected(mSelectedTab, trans);
+                mTabScrollView.animateToTab(tab.getPosition());
+            }
+        } else {
+            mTabScrollView.setTabSelected(tab != null ? tab.getPosition() : Tab.INVALID_POSITION);
+            if (mSelectedTab != null) {
+                mSelectedTab.getCallback().onTabUnselected(mSelectedTab, trans);
+            }
+            mSelectedTab = (TabImpl) tab;
+            if (mSelectedTab != null) {
+                mSelectedTab.getCallback().onTabSelected(mSelectedTab, trans);
+            }
+        }
+
+        if (trans != null && !trans.isEmpty()) {
+            trans.commit();
+        }
+    }
+
+    @Override
+    public Tab getSelectedTab() {
+        return mSelectedTab;
+    }
+
+    @Override
+    public int getHeight() {
+        return mContainerView.getHeight();
+    }
+
+    public void enableContentAnimations(boolean enabled) {
+        mContentAnimations = enabled;
+    }
+
+    @Override
+    public void show() {
+        if (mHiddenByApp) {
+            mHiddenByApp = false;
+            updateVisibility(false);
+        }
+    }
+
+    private void showForActionMode() {
+        if (!mShowingForMode) {
+            mShowingForMode = true;
+            if (mOverlayLayout != null) {
+                mOverlayLayout.setShowingForActionMode(true);
+            }
+            updateVisibility(false);
+        }
+    }
+
+    public void showForSystem() {
+        if (mHiddenBySystem) {
+            mHiddenBySystem = false;
+            updateVisibility(true);
+        }
+    }
+
+    @Override
+    public void hide() {
+        if (!mHiddenByApp) {
+            mHiddenByApp = true;
+            updateVisibility(false);
+        }
+    }
+
+    private void hideForActionMode() {
+        if (mShowingForMode) {
+            mShowingForMode = false;
+            if (mOverlayLayout != null) {
+                mOverlayLayout.setShowingForActionMode(false);
+            }
+            updateVisibility(false);
+        }
+    }
+
+    public void hideForSystem() {
+        if (!mHiddenBySystem) {
+            mHiddenBySystem = true;
+            updateVisibility(true);
+        }
+    }
+
+    private static boolean checkShowingFlags(boolean hiddenByApp, boolean hiddenBySystem,
+            boolean showingForMode) {
+        if (showingForMode) {
+            return true;
+        } else if (hiddenByApp || hiddenBySystem) {
+            return false;
+        } else {
+            return true;
+        }
+    }
+
+    private void updateVisibility(boolean fromSystem) {
+        // Based on the current state, should we be hidden or shown?
+        final boolean shown = checkShowingFlags(mHiddenByApp, mHiddenBySystem,
+                mShowingForMode);
+
+        if (shown) {
+            if (!mNowShowing) {
+                mNowShowing = true;
+                doShow(fromSystem);
+            }
+        } else {
+            if (mNowShowing) {
+                mNowShowing = false;
+                doHide(fromSystem);
+            }
+        }
+    }
+
+    public void doShow(boolean fromSystem) {
+        if (mCurrentShowAnim != null) {
+            mCurrentShowAnim.end();
+        }
+        mContainerView.setVisibility(View.VISIBLE);
+
+        if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled
+                || fromSystem)) {
+            mContainerView.setTranslationY(0); // because we're about to ask its window loc
+            float startingY = -mContainerView.getHeight();
+            if (fromSystem) {
+                int topLeft[] = {0, 0};
+                mContainerView.getLocationInWindow(topLeft);
+                startingY -= topLeft[1];
+            }
+            mContainerView.setTranslationY(startingY);
+            AnimatorSet anim = new AnimatorSet();
+            ObjectAnimator a = ObjectAnimator.ofFloat(mContainerView, View.TRANSLATION_Y, 0);
+            a.addUpdateListener(mUpdateListener);
+            AnimatorSet.Builder b = anim.play(a);
+            if (mContentAnimations && mContentView != null) {
+                b.with(ObjectAnimator.ofFloat(mContentView, View.TRANSLATION_Y,
+                        startingY, 0));
+            }
+            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
+                mSplitView.setTranslationY(mSplitView.getHeight());
+                mSplitView.setVisibility(View.VISIBLE);
+                b.with(ObjectAnimator.ofFloat(mSplitView, View.TRANSLATION_Y, 0));
+            }
+            anim.setInterpolator(AnimationUtils.loadInterpolator(mContext,
+                    com.android.internal.R.interpolator.decelerate_cubic));
+            anim.setDuration(250);
+            // If this is being shown from the system, add a small delay.
+            // This is because we will also be animating in the status bar,
+            // and these two elements can't be done in lock-step.  So we give
+            // a little time for the status bar to start its animation before
+            // the action bar animates.  (This corresponds to the corresponding
+            // case when hiding, where the status bar has a small delay before
+            // starting.)
+            anim.addListener(mShowListener);
+            mCurrentShowAnim = anim;
+            anim.start();
+        } else {
+            mContainerView.setAlpha(1);
+            mContainerView.setTranslationY(0);
+            if (mContentAnimations && mContentView != null) {
+                mContentView.setTranslationY(0);
+            }
+            if (mSplitView != null && mContextDisplayMode == CONTEXT_DISPLAY_SPLIT) {
+                mSplitView.setAlpha(1);
+                mSplitView.setTranslationY(0);
+                mSplitView.setVisibility(View.VISIBLE);
+            }
+            mShowListener.onAnimationEnd(null);
+        }
+        if (mOverlayLayout != null) {
+            mOverlayLayout.requestFitSystemWindows();
+        }
+    }
+
+    public void doHide(boolean fromSystem) {
+        if (mCurrentShowAnim != null) {
+            mCurrentShowAnim.end();
+        }
+
+        if (mCurWindowVisibility == View.VISIBLE && (mShowHideAnimationEnabled
+                || fromSystem)) {
+            mContainerView.setAlpha(1);
+            mContainerView.setTransitioning(true);
+            AnimatorSet anim = new AnimatorSet();
+            float endingY = -mContainerView.getHeight();
+            if (fromSystem) {
+                int topLeft[] = {0, 0};
+                mContainerView.getLocationInWindow(topLeft);
+                endingY -= topLeft[1];
+            }
+            ObjectAnimator a = ObjectAnimator.ofFloat(mContainerView, View.TRANSLATION_Y, endingY);
+            a.addUpdateListener(mUpdateListener);
+            AnimatorSet.Builder b = anim.play(a);
+            if (mContentAnimations && mContentView != null) {
+                b.with(ObjectAnimator.ofFloat(mContentView, View.TRANSLATION_Y,
+                        0, endingY));
+            }
+            if (mSplitView != null && mSplitView.getVisibility() == View.VISIBLE) {
+                mSplitView.setAlpha(1);
+                b.with(ObjectAnimator.ofFloat(mSplitView, View.TRANSLATION_Y,
+                        mSplitView.getHeight()));
+            }
+            anim.setInterpolator(AnimationUtils.loadInterpolator(mContext,
+                    com.android.internal.R.interpolator.accelerate_cubic));
+            anim.setDuration(250);
+            anim.addListener(mHideListener);
+            mCurrentShowAnim = anim;
+            anim.start();
+        } else {
+            mHideListener.onAnimationEnd(null);
+        }
+    }
+
+    public boolean isShowing() {
+        return mNowShowing;
+    }
+
+    public boolean isSystemShowing() {
+        return !mHiddenBySystem;
+    }
+
+    void animateToMode(boolean toActionMode) {
+        if (toActionMode) {
+            showForActionMode();
+        } else {
+            hideForActionMode();
+        }
+
+        mActionView.animateToVisibility(toActionMode ? View.GONE : View.VISIBLE);
+        mContextView.animateToVisibility(toActionMode ? View.VISIBLE : View.GONE);
+        if (mTabScrollView != null && !mActionView.hasEmbeddedTabs() && mActionView.isCollapsed()) {
+            mTabScrollView.animateToVisibility(toActionMode ? View.GONE : View.VISIBLE);
+        }
+    }
+
+    public Context getThemedContext() {
+        if (mThemedContext == null) {
+            TypedValue outValue = new TypedValue();
+            Resources.Theme currentTheme = mContext.getTheme();
+            currentTheme.resolveAttribute(com.android.internal.R.attr.actionBarWidgetTheme,
+                    outValue, true);
+            final int targetThemeRes = outValue.resourceId;
+            
+            if (targetThemeRes != 0 && mContext.getThemeResId() != targetThemeRes) {
+                mThemedContext = new ContextThemeWrapper(mContext, targetThemeRes);
+            } else {
+                mThemedContext = mContext;
+            }
+        }
+        return mThemedContext;
+    }
+    
+    @Override
+    public boolean isTitleTruncated() {
+        return mActionView != null && mActionView.isTitleTruncated();
+    }
+
+    @Override
+    public void setHomeAsUpIndicator(Drawable indicator) {
+        mActionView.setHomeAsUpIndicator(indicator);
+    }
+
+    @Override
+    public void setHomeAsUpIndicator(int resId) {
+        mActionView.setHomeAsUpIndicator(resId);
+    }
+
+    @Override
+    public void setHomeActionContentDescription(CharSequence description) {
+        mActionView.setHomeActionContentDescription(description);
+    }
+
+    @Override
+    public void setHomeActionContentDescription(int resId) {
+        mActionView.setHomeActionContentDescription(resId);
+    }
+
+    /**
+     * @hide 
+     */
+    public class ActionModeImpl extends ActionMode implements MenuBuilder.Callback {
+        private ActionMode.Callback mCallback;
+        private MenuBuilder mMenu;
+        private WeakReference<View> mCustomView;
+        
+        public ActionModeImpl(ActionMode.Callback callback) {
+            mCallback = callback;
+            mMenu = new MenuBuilder(getThemedContext())
+                    .setDefaultShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+            mMenu.setCallback(this);
+        }
+
+        @Override
+        public MenuInflater getMenuInflater() {
+            return new MenuInflater(getThemedContext());
+        }
+
+        @Override
+        public Menu getMenu() {
+            return mMenu;
+        }
+
+        @Override
+        public void finish() {
+            if (mActionMode != this) {
+                // Not the active action mode - no-op
+                return;
+            }
+
+            // If this change in state is going to cause the action bar
+            // to be hidden, defer the onDestroy callback until the animation
+            // is finished and associated relayout is about to happen. This lets
+            // apps better anticipate visibility and layout behavior.
+            if (!checkShowingFlags(mHiddenByApp, mHiddenBySystem, false)) {
+                // With the current state but the action bar hidden, our
+                // overall showing state is going to be false.
+                mDeferredDestroyActionMode = this;
+                mDeferredModeDestroyCallback = mCallback;
+            } else {
+                mCallback.onDestroyActionMode(this);
+            }
+            mCallback = null;
+            animateToMode(false);
+
+            // Clear out the context mode views after the animation finishes
+            mContextView.closeMode();
+            mActionView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+
+            mActionMode = null;
+        }
+
+        @Override
+        public void invalidate() {
+            mMenu.stopDispatchingItemsChanged();
+            try {
+                mCallback.onPrepareActionMode(this, mMenu);
+            } finally {
+                mMenu.startDispatchingItemsChanged();
+            }
+        }
+
+        public boolean dispatchOnCreate() {
+            mMenu.stopDispatchingItemsChanged();
+            try {
+                return mCallback.onCreateActionMode(this, mMenu);
+            } finally {
+                mMenu.startDispatchingItemsChanged();
+            }
+        }
+
+        @Override
+        public void setCustomView(View view) {
+            mContextView.setCustomView(view);
+            mCustomView = new WeakReference<View>(view);
+        }
+
+        @Override
+        public void setSubtitle(CharSequence subtitle) {
+            mContextView.setSubtitle(subtitle);
+        }
+
+        @Override
+        public void setTitle(CharSequence title) {
+            mContextView.setTitle(title);
+        }
+
+        @Override
+        public void setTitle(int resId) {
+            setTitle(mContext.getResources().getString(resId));
+        }
+
+        @Override
+        public void setSubtitle(int resId) {
+            setSubtitle(mContext.getResources().getString(resId));
+        }
+
+        @Override
+        public CharSequence getTitle() {
+            return mContextView.getTitle();
+        }
+
+        @Override
+        public CharSequence getSubtitle() {
+            return mContextView.getSubtitle();
+        }
+        
+        @Override
+        public void setTitleOptionalHint(boolean titleOptional) {
+            super.setTitleOptionalHint(titleOptional);
+            mContextView.setTitleOptional(titleOptional);
+        }
+
+        @Override
+        public boolean isTitleOptional() {
+            return mContextView.isTitleOptional();
+        }
+
+        @Override
+        public View getCustomView() {
+            return mCustomView != null ? mCustomView.get() : null;
+        }
+
+        public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) {
+            if (mCallback != null) {
+                return mCallback.onActionItemClicked(this, item);
+            } else {
+                return false;
+            }
+        }
+
+        public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) {
+        }
+
+        public boolean onSubMenuSelected(SubMenuBuilder subMenu) {
+            if (mCallback == null) {
+                return false;
+            }
+
+            if (!subMenu.hasVisibleItems()) {
+                return true;
+            }
+
+            new MenuPopupHelper(getThemedContext(), subMenu).show();
+            return true;
+        }
+
+        public void onCloseSubMenu(SubMenuBuilder menu) {
+        }
+
+        public void onMenuModeChange(MenuBuilder menu) {
+            if (mCallback == null) {
+                return;
+            }
+            invalidate();
+            mContextView.showOverflowMenu();
+        }
+    }
+
+    /**
+     * @hide
+     */
+    public class TabImpl extends ActionBar.Tab {
+        private ActionBar.TabListener mCallback;
+        private Object mTag;
+        private Drawable mIcon;
+        private CharSequence mText;
+        private CharSequence mContentDesc;
+        private int mPosition = -1;
+        private View mCustomView;
+
+        @Override
+        public Object getTag() {
+            return mTag;
+        }
+
+        @Override
+        public Tab setTag(Object tag) {
+            mTag = tag;
+            return this;
+        }
+
+        public ActionBar.TabListener getCallback() {
+            return mCallback;
+        }
+
+        @Override
+        public Tab setTabListener(ActionBar.TabListener callback) {
+            mCallback = callback;
+            return this;
+        }
+
+        @Override
+        public View getCustomView() {
+            return mCustomView;
+        }
+
+        @Override
+        public Tab setCustomView(View view) {
+            mCustomView = view;
+            if (mPosition >= 0) {
+                mTabScrollView.updateTab(mPosition);
+            }
+            return this;
+        }
+
+        @Override
+        public Tab setCustomView(int layoutResId) {
+            return setCustomView(LayoutInflater.from(getThemedContext())
+                    .inflate(layoutResId, null));
+        }
+
+        @Override
+        public Drawable getIcon() {
+            return mIcon;
+        }
+
+        @Override
+        public int getPosition() {
+            return mPosition;
+        }
+
+        public void setPosition(int position) {
+            mPosition = position;
+        }
+
+        @Override
+        public CharSequence getText() {
+            return mText;
+        }
+
+        @Override
+        public Tab setIcon(Drawable icon) {
+            mIcon = icon;
+            if (mPosition >= 0) {
+                mTabScrollView.updateTab(mPosition);
+            }
+            return this;
+        }
+
+        @Override
+        public Tab setIcon(int resId) {
+            return setIcon(mContext.getDrawable(resId));
+        }
+
+        @Override
+        public Tab setText(CharSequence text) {
+            mText = text;
+            if (mPosition >= 0) {
+                mTabScrollView.updateTab(mPosition);
+            }
+            return this;
+        }
+
+        @Override
+        public Tab setText(int resId) {
+            return setText(mContext.getResources().getText(resId));
+        }
+
+        @Override
+        public void select() {
+            selectTab(this);
+        }
+
+        @Override
+        public Tab setContentDescription(int resId) {
+            return setContentDescription(mContext.getResources().getText(resId));
+        }
+
+        @Override
+        public Tab setContentDescription(CharSequence contentDesc) {
+            mContentDesc = contentDesc;
+            if (mPosition >= 0) {
+                mTabScrollView.updateTab(mPosition);
+            }
+            return this;
+        }
+
+        @Override
+        public CharSequence getContentDescription() {
+            return mContentDesc;
+        }
+    }
+
+    @Override
+    public void setCustomView(View view) {
+        mActionView.setCustomNavigationView(view);
+    }
+
+    @Override
+    public void setCustomView(View view, LayoutParams layoutParams) {
+        view.setLayoutParams(layoutParams);
+        mActionView.setCustomNavigationView(view);
+    }
+
+    @Override
+    public void setListNavigationCallbacks(SpinnerAdapter adapter, OnNavigationListener callback) {
+        mActionView.setDropdownAdapter(adapter);
+        mActionView.setCallback(callback);
+    }
+
+    @Override
+    public int getSelectedNavigationIndex() {
+        switch (mActionView.getNavigationMode()) {
+            case NAVIGATION_MODE_TABS:
+                return mSelectedTab != null ? mSelectedTab.getPosition() : -1;
+            case NAVIGATION_MODE_LIST:
+                return mActionView.getDropdownSelectedPosition();
+            default:
+                return -1;
+        }
+    }
+
+    @Override
+    public int getNavigationItemCount() {
+        switch (mActionView.getNavigationMode()) {
+            case NAVIGATION_MODE_TABS:
+                return mTabs.size();
+            case NAVIGATION_MODE_LIST:
+                SpinnerAdapter adapter = mActionView.getDropdownAdapter();
+                return adapter != null ? adapter.getCount() : 0;
+            default:
+                return 0;
+        }
+    }
+
+    @Override
+    public int getTabCount() {
+        return mTabs.size();
+    }
+
+    @Override
+    public void setNavigationMode(int mode) {
+        final int oldMode = mActionView.getNavigationMode();
+        switch (oldMode) {
+            case NAVIGATION_MODE_TABS:
+                mSavedTabPosition = getSelectedNavigationIndex();
+                selectTab(null);
+                mTabScrollView.setVisibility(View.GONE);
+                break;
+        }
+        if (oldMode != mode && !mHasEmbeddedTabs) {
+            if (mOverlayLayout != null) {
+                mOverlayLayout.requestFitSystemWindows();
+            }
+        }
+        mActionView.setNavigationMode(mode);
+        switch (mode) {
+            case NAVIGATION_MODE_TABS:
+                ensureTabsExist();
+                mTabScrollView.setVisibility(View.VISIBLE);
+                if (mSavedTabPosition != INVALID_POSITION) {
+                    setSelectedNavigationItem(mSavedTabPosition);
+                    mSavedTabPosition = INVALID_POSITION;
+                }
+                break;
+        }
+        mActionView.setCollapsable(mode == NAVIGATION_MODE_TABS && !mHasEmbeddedTabs);
+    }
+
+    @Override
+    public Tab getTabAt(int index) {
+        return mTabs.get(index);
+    }
+
+
+    @Override
+    public void setIcon(int resId) {
+        mActionView.setIcon(resId);
+    }
+
+    @Override
+    public void setIcon(Drawable icon) {
+        mActionView.setIcon(icon);
+    }
+
+    public boolean hasIcon() {
+        return mActionView.hasIcon();
+    }
+
+    @Override
+    public void setLogo(int resId) {
+        mActionView.setLogo(resId);
+    }
+
+    @Override
+    public void setLogo(Drawable logo) {
+        mActionView.setLogo(logo);
+    }
+
+    public boolean hasLogo() {
+        return mActionView.hasLogo();
+    }
+
+    public void setDefaultDisplayHomeAsUpEnabled(boolean enable) {
+        if (!mDisplayHomeAsUpSet) {
+            setDisplayHomeAsUpEnabled(enable);
+        }
+    }
+}
diff --git a/core/java/com/android/internal/content/NativeLibraryHelper.java b/core/java/com/android/internal/content/NativeLibraryHelper.java
index 6d65782..ba419f9 100644
--- a/core/java/com/android/internal/content/NativeLibraryHelper.java
+++ b/core/java/com/android/internal/content/NativeLibraryHelper.java
@@ -16,7 +16,7 @@
 
 package com.android.internal.content;
 
-import android.os.Build;
+import android.content.pm.PackageManager;
 import android.util.Slog;
 
 import java.io.File;
@@ -31,38 +31,76 @@
 
     private static final boolean DEBUG_NATIVE = false;
 
-    private static native long nativeSumNativeBinaries(String file, String cpuAbi, String cpuAbi2);
-
     /**
-     * Sums the size of native binaries in an APK.
+     * A handle to an opened APK. Used as input to the various NativeLibraryHelper
+     * methods. Allows us to scan and parse the APK exactly once instead of doing
+     * it multiple times.
      *
-     * @param apkFile APK file to scan for native libraries
-     * @return size of all native binary files in bytes
+     * @hide
      */
-    public static long sumNativeBinariesLI(File apkFile) {
-        final String cpuAbi = Build.CPU_ABI;
-        final String cpuAbi2 = Build.CPU_ABI2;
-        return nativeSumNativeBinaries(apkFile.getPath(), cpuAbi, cpuAbi2);
+    public static class ApkHandle {
+        final String apkPath;
+        final long apkHandle;
+
+        public ApkHandle(String path) {
+            apkPath = path;
+            apkHandle = nativeOpenApk(apkPath);
+        }
+
+        public ApkHandle(File apkFile) {
+            apkPath = apkFile.getPath();
+            apkHandle = nativeOpenApk(apkPath);
+        }
+
+        public void close() {
+            nativeClose(apkHandle);
+        }
     }
 
-    private native static int nativeCopyNativeBinaries(String filePath, String sharedLibraryPath,
-            String cpuAbi, String cpuAbi2);
+
+    private static native long nativeOpenApk(String path);
+    private static native void nativeClose(long handle);
+
+    private static native long nativeSumNativeBinaries(long handle, String cpuAbi);
+
+    /**
+     * Sums the size of native binaries in an APK for a given ABI.
+     *
+     * @return size of all native binary files in bytes
+     */
+    public static long sumNativeBinariesLI(ApkHandle handle, String abi) {
+        return nativeSumNativeBinaries(handle.apkHandle, abi);
+    }
+
+    private native static int nativeCopyNativeBinaries(long handle,
+            String sharedLibraryPath, String abiToCopy);
 
     /**
      * Copies native binaries to a shared library directory.
      *
-     * @param apkFile APK file to scan for native libraries
+     * @param handle APK file to scan for native libraries
      * @param sharedLibraryDir directory for libraries to be copied to
      * @return {@link PackageManager#INSTALL_SUCCEEDED} if successful or another
      *         error code from that class if not
      */
-    public static int copyNativeBinariesIfNeededLI(File apkFile, File sharedLibraryDir) {
-        final String cpuAbi = Build.CPU_ABI;
-        final String cpuAbi2 = Build.CPU_ABI2;
-        return nativeCopyNativeBinaries(apkFile.getPath(), sharedLibraryDir.getPath(), cpuAbi,
-                cpuAbi2);
+    public static int copyNativeBinariesIfNeededLI(ApkHandle handle, File sharedLibraryDir,
+            String abi) {
+        return nativeCopyNativeBinaries(handle.apkHandle, sharedLibraryDir.getPath(), abi);
     }
 
+    /**
+     * Checks if a given APK contains native code for any of the provided
+     * {@code supportedAbis}. Returns an index into {@code supportedAbis} if a matching
+     * ABI is found, {@link PackageManager#NO_NATIVE_LIBRARIES} if the
+     * APK doesn't contain any native code, and
+     * {@link PackageManager#INSTALL_FAILED_NO_MATCHING_ABIS} if none of the ABIs match.
+     */
+    public static int findSupportedAbi(ApkHandle handle, String[] supportedAbis) {
+        return nativeFindSupportedAbi(handle.apkHandle, supportedAbis);
+    }
+
+    private native static int nativeFindSupportedAbi(long handle, String[] supportedAbis);
+
     // Convenience method to call removeNativeBinariesFromDirLI(File)
     public static boolean removeNativeBinariesLI(String nativeLibraryPath) {
         return removeNativeBinariesFromDirLI(new File(nativeLibraryPath));
diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java
index 31ca3de..9df8ad5 100644
--- a/core/java/com/android/internal/content/PackageMonitor.java
+++ b/core/java/com/android/internal/content/PackageMonitor.java
@@ -242,7 +242,11 @@
     public boolean anyPackagesDisappearing() {
         return mDisappearingPackages != null;
     }
-    
+
+    public boolean isReplacing() {
+        return mChangeType == PACKAGE_UPDATING;
+    }
+
     public boolean isPackageModified(String packageName) {
         if (mModifiedPackages != null) {
             for (int i=mModifiedPackages.length-1; i>=0; i--) {
diff --git a/core/java/com/android/internal/inputmethod/InputMethodUtils.java b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
index 03a053c..ac3274d 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodUtils.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -504,7 +504,7 @@
 
         private String mEnabledInputMethodsStrCache;
         private int mCurrentUserId;
-        private int[] mRelatedUserIds = new int[0];
+        private int[] mCurrentProfileIds = new int[0];
 
         private static void buildEnabledInputMethodsSettingString(
                 StringBuilder builder, Pair<String, ArrayList<String>> pair) {
@@ -537,17 +537,17 @@
             mCurrentUserId = userId;
         }
 
-        public void setRelatedUserIds(int[] relatedUserIds) {
+        public void setCurrentProfileIds(int[] currentProfileIds) {
             synchronized (this) {
-                mRelatedUserIds = relatedUserIds;
+                mCurrentProfileIds = currentProfileIds;
             }
         }
 
-        public boolean isRelatedToOrCurrentUser(int userId) {
+        public boolean isCurrentProfile(int userId) {
             synchronized (this) {
                 if (userId == mCurrentUserId) return true;
-                for (int i = 0; i < mRelatedUserIds.length; i++) {
-                    if (userId == mRelatedUserIds[i]) return true;
+                for (int i = 0; i < mCurrentProfileIds.length; i++) {
+                    if (userId == mCurrentProfileIds[i]) return true;
                 }
                 return false;
             }
diff --git a/core/java/com/android/internal/notification/PeopleNotificationScorer.java b/core/java/com/android/internal/notification/PeopleNotificationScorer.java
new file mode 100644
index 0000000..efb5f63
--- /dev/null
+++ b/core/java/com/android/internal/notification/PeopleNotificationScorer.java
@@ -0,0 +1,227 @@
+/*
+* 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.android.internal.notification;
+
+import android.app.Notification;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.LruCache;
+import android.util.Slog;
+
+/**
+ * This {@link NotificationScorer} attempts to validate people references.
+ * Also elevates the priority of real people.
+ */
+public class PeopleNotificationScorer implements NotificationScorer {
+    private static final String TAG = "PeopleNotificationScorer";
+    private static final boolean DBG = false;
+
+    private static final boolean ENABLE_PEOPLE_SCORER = true;
+    private static final String SETTING_ENABLE_PEOPLE_SCORER = "people_scorer_enabled";
+    private static final String[] LOOKUP_PROJECTION = { Contacts._ID };
+    private static final int MAX_PEOPLE = 10;
+    private static final int PEOPLE_CACHE_SIZE = 200;
+    // see NotificationManagerService
+    private static final int NOTIFICATION_PRIORITY_MULTIPLIER = 10;
+
+    protected boolean mEnabled;
+    private Context mContext;
+
+    // maps raw person handle to resolved person object
+    private LruCache<String, LookupResult> mPeopleCache;
+
+    private float findMaxContactScore(Bundle extras) {
+        if (extras == null) {
+            return 0f;
+        }
+
+        final String[] people = extras.getStringArray(Notification.EXTRA_PEOPLE);
+        if (people == null || people.length == 0) {
+            return 0f;
+        }
+
+        float rank = 0f;
+        for (int personIdx = 0; personIdx < people.length && personIdx < MAX_PEOPLE; personIdx++) {
+            final String handle = people[personIdx];
+            if (TextUtils.isEmpty(handle)) continue;
+
+            LookupResult lookupResult = mPeopleCache.get(handle);
+            if (lookupResult == null || lookupResult.isExpired()) {
+                final Uri uri = Uri.parse(handle);
+                if ("tel".equals(uri.getScheme())) {
+                    if (DBG) Slog.w(TAG, "checking telephone URI: " + handle);
+                    lookupResult = lookupPhoneContact(handle, uri.getSchemeSpecificPart());
+                } else if (handle.startsWith(Contacts.CONTENT_LOOKUP_URI.toString())) {
+                    if (DBG) Slog.w(TAG, "checking lookup URI: " + handle);
+                    lookupResult = resolveContactsUri(handle, uri);
+                } else {
+                    if (DBG) Slog.w(TAG, "unsupported URI " + handle);
+                }
+            } else {
+                if (DBG) Slog.w(TAG, "using cached lookupResult: " + lookupResult.mId);
+            }
+            if (lookupResult != null) {
+                rank = Math.max(rank, lookupResult.getRank());
+            }
+        }
+        return rank;
+    }
+
+    private LookupResult lookupPhoneContact(final String handle, final String number) {
+        LookupResult lookupResult = null;
+        Cursor c = null;
+        try {
+            Uri numberUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
+                    Uri.encode(number));
+            c = mContext.getContentResolver().query(numberUri, LOOKUP_PROJECTION, null, null, null);
+            if (c != null && c.getCount() > 0) {
+                c.moveToFirst();
+                final int idIdx = c.getColumnIndex(Contacts._ID);
+                final int id = c.getInt(idIdx);
+                if (DBG) Slog.w(TAG, "is valid: " + id);
+                lookupResult = new LookupResult(id);
+            }
+        } catch(Throwable t) {
+            Slog.w(TAG, "Problem getting content resolver or performing contacts query.", t);
+        } finally {
+            if (c != null) {
+                c.close();
+            }
+        }
+        if (lookupResult == null) {
+            lookupResult = new LookupResult(LookupResult.INVALID_ID);
+        }
+        mPeopleCache.put(handle, lookupResult);
+        return lookupResult;
+    }
+
+    private LookupResult resolveContactsUri(String handle, final Uri personUri) {
+        LookupResult lookupResult = null;
+        Cursor c = null;
+        try {
+            c = mContext.getContentResolver().query(personUri, LOOKUP_PROJECTION, null, null, null);
+            if (c != null && c.getCount() > 0) {
+                c.moveToFirst();
+                final int idIdx = c.getColumnIndex(Contacts._ID);
+                final int id = c.getInt(idIdx);
+                if (DBG) Slog.w(TAG, "is valid: " + id);
+                lookupResult = new LookupResult(id);
+            }
+        } catch(Throwable t) {
+            Slog.w(TAG, "Problem getting content resolver or performing contacts query.", t);
+        } finally {
+            if (c != null) {
+                c.close();
+            }
+        }
+        if (lookupResult == null) {
+            lookupResult = new LookupResult(LookupResult.INVALID_ID);
+        }
+        mPeopleCache.put(handle, lookupResult);
+        return lookupResult;
+    }
+
+    private final static int clamp(int x, int low, int high) {
+        return (x < low) ? low : ((x > high) ? high : x);
+    }
+
+    // TODO: rework this function before shipping
+    private static int priorityBumpMap(int incomingScore) {
+        //assumption is that scale runs from [-2*pm, 2*pm]
+        int pm = NOTIFICATION_PRIORITY_MULTIPLIER;
+        int theScore = incomingScore;
+        // enforce input in range
+        theScore = clamp(theScore, -2 * pm, 2 * pm);
+        if (theScore != incomingScore) return incomingScore;
+        // map -20 -> -20 and -10 -> 5 (when pm = 10)
+        if (theScore <= -pm) {
+            theScore += 1.5 * (theScore + 2 * pm);
+        } else {
+            // map 0 -> 10, 10 -> 15, 20 -> 20;
+            theScore += 0.5 * (2 * pm - theScore);
+        }
+        if (DBG) Slog.v(TAG, "priorityBumpMap: score before: " + incomingScore
+                + ", score after " + theScore + ".");
+        return theScore;
+    }
+
+    @Override
+    public void initialize(Context context) {
+        if (DBG) Slog.v(TAG, "Initializing  " + getClass().getSimpleName() + ".");
+        mContext = context;
+        mPeopleCache = new LruCache<String, LookupResult>(PEOPLE_CACHE_SIZE);
+        mEnabled = ENABLE_PEOPLE_SCORER && 1 == Settings.Global.getInt(
+                mContext.getContentResolver(), SETTING_ENABLE_PEOPLE_SCORER, 0);
+    }
+
+    @Override
+    public int getScore(Notification notification, int score) {
+        if (notification == null || !mEnabled) {
+            if (DBG) Slog.w(TAG, "empty notification? scorer disabled?");
+            return score;
+        }
+        float contactScore = findMaxContactScore(notification.extras);
+        if (contactScore > 0f) {
+            if (DBG) Slog.v(TAG, "Notification references a real contact. Promoted!");
+            score = priorityBumpMap(score);
+        } else {
+            if (DBG) Slog.v(TAG, "Notification lacks any valid contact reference. Not promoted!");
+        }
+        return score;
+    }
+
+    private static class LookupResult {
+        private static final long CONTACT_REFRESH_MILLIS = 60 * 60 * 1000;  // 1hr
+        public static final int INVALID_ID = -1;
+
+        private final long mExpireMillis;
+        private int mId;
+
+        public LookupResult(int id) {
+            mId = id;
+            mExpireMillis = System.currentTimeMillis() + CONTACT_REFRESH_MILLIS;
+        }
+
+        public boolean isExpired() {
+            return mExpireMillis < System.currentTimeMillis();
+        }
+
+        public boolean isInvalid() {
+            return mId == INVALID_ID || isExpired();
+        }
+
+        public float getRank() {
+            if (isInvalid()) {
+                return 0f;
+            } else {
+                return 1f;  // TODO: finer grained score
+            }
+        }
+
+        public LookupResult setId(int id) {
+            mId = id;
+            return this;
+        }
+    }
+}
+
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 39636fe..4c11fa9 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -574,6 +574,7 @@
             mUptime = in.readLong();
             mPastUptime = in.readLong();
             mUptimeStart = in.readLong();
+            mRealtime = in.readLong();
             mPastRealtime = in.readLong();
             mRealtimeStart = in.readLong();
             mUnpluggedUptime = in.readLong();
@@ -586,6 +587,7 @@
             out.writeLong(mUptime);
             out.writeLong(runningUptime);
             out.writeLong(mUptimeStart);
+            out.writeLong(mRealtime);
             out.writeLong(runningRealtime);
             out.writeLong(mRealtimeStart);
             out.writeLong(mUnpluggedUptime);
diff --git a/core/java/com/android/internal/os/WrapperInit.java b/core/java/com/android/internal/os/WrapperInit.java
index 1766f7b..3301cbe 100644
--- a/core/java/com/android/internal/os/WrapperInit.java
+++ b/core/java/com/android/internal/os/WrapperInit.java
@@ -26,8 +26,6 @@
 
 import libcore.io.IoUtils;
 
-import dalvik.system.Zygote;
-
 /**
  * Startup class for the wrapper process.
  * @hide
@@ -94,7 +92,7 @@
      * @param niceName The nice name for the application, or null if none.
      * @param targetSdkVersion The target SDK version for the app.
      * @param pipeFd The pipe to which the application's pid should be written, or null if none.
-     * @param args Arguments for {@link RuntimeInit.main}.
+     * @param args Arguments for {@link RuntimeInit#main}.
      */
     public static void execApplication(String invokeWith, String niceName,
             int targetSdkVersion, FileDescriptor pipeFd, String[] args) {
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
new file mode 100644
index 0000000..c5fa0a1
--- /dev/null
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -0,0 +1,164 @@
+/*
+ * 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.android.internal.os;
+
+
+import dalvik.system.ZygoteHooks;
+import libcore.io.ErrnoException;
+import libcore.io.Libcore;
+
+/** @hide */
+public final class Zygote {
+    /*
+    * Bit values for "debugFlags" argument.  The definitions are duplicated
+    * in the native code.
+    */
+
+    /** enable debugging over JDWP */
+    public static final int DEBUG_ENABLE_DEBUGGER   = 1;
+    /** enable JNI checks */
+    public static final int DEBUG_ENABLE_CHECKJNI   = 1 << 1;
+    /** enable Java programming language "assert" statements */
+    public static final int DEBUG_ENABLE_ASSERT     = 1 << 2;
+    /** disable the JIT compiler */
+    public static final int DEBUG_ENABLE_SAFEMODE   = 1 << 3;
+    /** Enable logging of third-party JNI activity. */
+    public static final int DEBUG_ENABLE_JNI_LOGGING = 1 << 4;
+
+    /** No external storage should be mounted. */
+    public static final int MOUNT_EXTERNAL_NONE = 0;
+    /** Single-user external storage should be mounted. */
+    public static final int MOUNT_EXTERNAL_SINGLEUSER = 1;
+    /** Multi-user external storage should be mounted. */
+    public static final int MOUNT_EXTERNAL_MULTIUSER = 2;
+    /** All multi-user external storage should be mounted. */
+    public static final int MOUNT_EXTERNAL_MULTIUSER_ALL = 3;
+
+    private static final ZygoteHooks VM_HOOKS = new ZygoteHooks();
+
+    private Zygote() {}
+
+    /**
+     * Forks a new VM instance.  The current VM must have been started
+     * with the -Xzygote flag. <b>NOTE: new instance keeps all
+     * root capabilities. The new process is expected to call capset()</b>.
+     *
+     * @param uid the UNIX uid that the new process should setuid() to after
+     * fork()ing and and before spawning any threads.
+     * @param gid the UNIX gid that the new process should setgid() to after
+     * fork()ing and and before spawning any threads.
+     * @param gids null-ok; a list of UNIX gids that the new process should
+     * setgroups() to after fork and before spawning any threads.
+     * @param debugFlags bit flags that enable debugging features.
+     * @param rlimits null-ok an array of rlimit tuples, with the second
+     * dimension having a length of 3 and representing
+     * (resource, rlim_cur, rlim_max). These are set via the posix
+     * setrlimit(2) call.
+     * @param seInfo null-ok a string specifying SELinux information for
+     * the new process.
+     * @param niceName null-ok a string specifying the process name.
+     * @param fdsToClose an array of ints, holding one or more POSIX
+     * file descriptor numbers that are to be closed by the child
+     * (and replaced by /dev/null) after forking.  An integer value
+     * of -1 in any entry in the array means "ignore this one".
+     *
+     * @return 0 if this is the child, pid of the child
+     * if this is the parent, or -1 on error.
+     */
+    public static int forkAndSpecialize(int uid, int gid, int[] gids, int debugFlags,
+          int[][] rlimits, int mountExternal, String seInfo, String niceName, int[] fdsToClose) {
+        VM_HOOKS.preFork();
+        int pid = nativeForkAndSpecialize(
+                  uid, gid, gids, debugFlags, rlimits, mountExternal, seInfo, niceName, fdsToClose);
+        VM_HOOKS.postForkCommon();
+        return pid;
+    }
+
+    native private static int nativeForkAndSpecialize(int uid, int gid, int[] gids,int debugFlags,
+          int[][] rlimits, int mountExternal, String seInfo, String niceName, int[] fdsToClose);
+
+    /**
+     * Special method to start the system server process. In addition to the
+     * common actions performed in forkAndSpecialize, the pid of the child
+     * process is recorded such that the death of the child process will cause
+     * zygote to exit.
+     *
+     * @param uid the UNIX uid that the new process should setuid() to after
+     * fork()ing and and before spawning any threads.
+     * @param gid the UNIX gid that the new process should setgid() to after
+     * fork()ing and and before spawning any threads.
+     * @param gids null-ok; a list of UNIX gids that the new process should
+     * setgroups() to after fork and before spawning any threads.
+     * @param debugFlags bit flags that enable debugging features.
+     * @param rlimits null-ok an array of rlimit tuples, with the second
+     * dimension having a length of 3 and representing
+     * (resource, rlim_cur, rlim_max). These are set via the posix
+     * setrlimit(2) call.
+     * @param permittedCapabilities argument for setcap()
+     * @param effectiveCapabilities argument for setcap()
+     *
+     * @return 0 if this is the child, pid of the child
+     * if this is the parent, or -1 on error.
+     */
+    public static int forkSystemServer(int uid, int gid, int[] gids, int debugFlags,
+            int[][] rlimits, long permittedCapabilities, long effectiveCapabilities) {
+        VM_HOOKS.preFork();
+        int pid = nativeForkSystemServer(
+                uid, gid, gids, debugFlags, rlimits, permittedCapabilities, effectiveCapabilities);
+        VM_HOOKS.postForkCommon();
+        return pid;
+    }
+
+    native private static int nativeForkSystemServer(int uid, int gid, int[] gids, int debugFlags,
+            int[][] rlimits, long permittedCapabilities, long effectiveCapabilities);
+
+    private static void callPostForkChildHooks(int debugFlags) {
+        VM_HOOKS.postForkChild(debugFlags);
+    }
+
+
+    /**
+     * Executes "/system/bin/sh -c &lt;command&gt;" using the exec() system call.
+     * This method throws a runtime exception if exec() failed, otherwise, this
+     * method never returns.
+     *
+     * @param command The shell command to execute.
+     */
+    public static void execShell(String command) {
+        String[] args = { "/system/bin/sh", "-c", command };
+        try {
+            Libcore.os.execv(args[0], args);
+        } catch (ErrnoException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Appends quotes shell arguments to the specified string builder.
+     * The arguments are quoted using single-quotes, escaped if necessary,
+     * prefixed with a space, and appended to the command.
+     *
+     * @param command A string builder for the shell command being constructed.
+     * @param args An array of argument strings to be quoted and appended to the command.
+     * @see #execShell(String)
+     */
+    public static void appendQuotedShellArgs(StringBuilder command, String[] args) {
+        for (String arg : args) {
+            command.append(" '").append(arg.replace("'", "'\\''")).append("'");
+        }
+    }
+}
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index f9a1f89..58a8e62 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -22,10 +22,7 @@
 import android.os.SELinux;
 import android.os.SystemProperties;
 import android.util.Log;
-
 import dalvik.system.PathClassLoader;
-import dalvik.system.Zygote;
-
 import java.io.BufferedReader;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
@@ -35,8 +32,8 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.PrintStream;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-
 import libcore.io.ErrnoException;
 import libcore.io.IoUtils;
 import libcore.io.Libcore;
@@ -60,7 +57,7 @@
     private static final int CONNECTION_TIMEOUT_MILLIS = 1000;
 
     /** max number of arguments that a connection can specify */
-    private static final int MAX_ZYGOTE_ARGC=1024;
+    private static final int MAX_ZYGOTE_ARGC = 1024;
 
     /**
      * The command socket.
@@ -74,15 +71,18 @@
     private final BufferedReader mSocketReader;
     private final Credentials peer;
     private final String peerSecurityContext;
+    private final String abiList;
 
     /**
      * Constructs instance from connected socket.
      *
      * @param socket non-null; connected socket
+     * @param abiList non-null; a list of ABIs this zygote supports.
      * @throws IOException
      */
-    ZygoteConnection(LocalSocket socket) throws IOException {
+    ZygoteConnection(LocalSocket socket, String abiList) throws IOException {
         mSocket = socket;
+        this.abiList = abiList;
 
         mSocketOutStream
                 = new DataOutputStream(socket.getOutputStream());
@@ -112,43 +112,6 @@
     }
 
     /**
-     * Reads start commands from an open command socket.
-     * Start commands are presently a pair of newline-delimited lines
-     * indicating a) class to invoke main() on b) nice name to set argv[0] to.
-     * Continues to read commands and forkAndSpecialize children until
-     * the socket is closed. This method is used in ZYGOTE_FORK_MODE
-     *
-     * @throws ZygoteInit.MethodAndArgsCaller trampoline to invoke main()
-     * method in child process
-     */
-    void run() throws ZygoteInit.MethodAndArgsCaller {
-
-        int loopCount = ZygoteInit.GC_LOOP_COUNT;
-
-        while (true) {
-            /*
-             * Call gc() before we block in readArgumentList().
-             * It's work that has to be done anyway, and it's better
-             * to avoid making every child do it.  It will also
-             * madvise() any free memory as a side-effect.
-             *
-             * Don't call it every time, because walking the entire
-             * heap is a lot of overhead to free a few hundred bytes.
-             */
-            if (loopCount <= 0) {
-                ZygoteInit.gc();
-                loopCount = ZygoteInit.GC_LOOP_COUNT;
-            } else {
-                loopCount--;
-            }
-
-            if (runOnce()) {
-                break;
-            }
-        }
-    }
-
-    /**
      * Reads one start command from the command socket. If successful,
      * a child is forked and a {@link ZygoteInit.MethodAndArgsCaller}
      * exception is thrown in that child while in the parent process,
@@ -197,6 +160,11 @@
 
         try {
             parsedArgs = new Arguments(args);
+
+            if (parsedArgs.abiListQuery) {
+                return handleAbiListQuery();
+            }
+
             if (parsedArgs.permittedCapabilities != 0 || parsedArgs.effectiveCapabilities != 0) {
                 throw new ZygoteSecurityException("Client may not specify capabilities: " +
                         "permitted=0x" + Long.toHexString(parsedArgs.permittedCapabilities) +
@@ -288,6 +256,18 @@
         }
     }
 
+    private boolean handleAbiListQuery() {
+        try {
+            final byte[] abiListBytes = abiList.getBytes(StandardCharsets.US_ASCII);
+            mSocketOutStream.writeInt(abiListBytes.length);
+            mSocketOutStream.write(abiListBytes);
+            return false;
+        } catch (IOException ioe) {
+            Log.e(TAG, "Error writing to command socket", ioe);
+            return true;
+        }
+    }
+
     /**
      * Closes socket associated with this connection.
      */
@@ -389,6 +369,11 @@
         String remainingArgs[];
 
         /**
+         * Whether the current arguments constitute an ABI list query.
+         */
+        boolean abiListQuery;
+
+        /**
          * Constructs instance and parses args
          * @param args zygote command-line args
          * @throws IllegalArgumentException
@@ -541,6 +526,8 @@
                     mountExternal = Zygote.MOUNT_EXTERNAL_MULTIUSER;
                 } else if (arg.equals("--mount-external-multiuser-all")) {
                     mountExternal = Zygote.MOUNT_EXTERNAL_MULTIUSER_ALL;
+                } else if (arg.equals("--query-abi-list")) {
+                    abiListQuery = true;
                 } else {
                     break;
                 }
@@ -807,7 +794,7 @@
     /**
      * Applies invoke-with system properties to the zygote arguments.
      *
-     * @param parsedArgs non-null; zygote args
+     * @param args non-null; zygote args
      */
     public static void applyInvokeWithSystemProperty(Arguments args) {
         if (args.invokeWith == null && args.niceName != null) {
@@ -976,7 +963,7 @@
             mSocketOutStream.writeInt(pid);
             mSocketOutStream.writeBoolean(usingWrapper);
         } catch (IOException ex) {
-            Log.e(TAG, "Error reading from command socket", ex);
+            Log.e(TAG, "Error writing to command socket", ex);
             return true;
         }
 
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 05c57e8..ef2908d 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -32,7 +32,6 @@
 import android.util.Log;
 
 import dalvik.system.VMRuntime;
-import dalvik.system.Zygote;
 
 import libcore.io.IoUtils;
 import libcore.io.Libcore;
@@ -65,7 +64,7 @@
 
     private static final String PROPERTY_DISABLE_OPENGL_PRELOADING = "ro.zygote.disable_gl_preload";
 
-    private static final String ANDROID_SOCKET_ENV = "ANDROID_SOCKET_zygote";
+    private static final String ANDROID_SOCKET_PREFIX = "ANDROID_SOCKET_";
 
     private static final int LOG_BOOT_PROGRESS_PRELOAD_START = 3020;
     private static final int LOG_BOOT_PROGRESS_PRELOAD_END = 3030;
@@ -73,8 +72,9 @@
     /** when preloading, GC after allocating this many bytes */
     private static final int PRELOAD_GC_THRESHOLD = 50000;
 
-    public static final String USAGE_STRING =
-            " <\"start-system-server\"|\"\" for startSystemServer>";
+    private static final String ABI_LIST_ARG = "--abi-list=";
+
+    private static final String SOCKET_NAME_ARG = "--socket-name=";
 
     private static LocalServerSocket sServerSocket;
 
@@ -151,15 +151,15 @@
      *
      * @throws RuntimeException when open fails
      */
-    private static void registerZygoteSocket() {
+    private static void registerZygoteSocket(String socketName) {
         if (sServerSocket == null) {
             int fileDesc;
+            final String fullSocketName = ANDROID_SOCKET_PREFIX + socketName;
             try {
-                String env = System.getenv(ANDROID_SOCKET_ENV);
+                String env = System.getenv(fullSocketName);
                 fileDesc = Integer.parseInt(env);
             } catch (RuntimeException ex) {
-                throw new RuntimeException(
-                        ANDROID_SOCKET_ENV + " unset or invalid", ex);
+                throw new RuntimeException(fullSocketName + " unset or invalid", ex);
             }
 
             try {
@@ -176,9 +176,9 @@
      * Waits for and accepts a single command connection. Throws
      * RuntimeException on failure.
      */
-    private static ZygoteConnection acceptCommandPeer() {
+    private static ZygoteConnection acceptCommandPeer(String abiList) {
         try {
-            return new ZygoteConnection(sServerSocket.accept());
+            return new ZygoteConnection(sServerSocket.accept(), abiList);
         } catch (IOException ex) {
             throw new RuntimeException(
                     "IOException during accept()", ex);
@@ -577,7 +577,26 @@
             // Start profiling the zygote initialization.
             SamplingProfilerIntegration.start();
 
-            registerZygoteSocket();
+            boolean startSystemServer = false;
+            String socketName = "zygote";
+            String abiList = null;
+            for (int i = 1; i < argv.length; i++) {
+                if ("start-system-server".equals(argv[i])) {
+                    startSystemServer = true;
+                } else if (argv[i].startsWith(ABI_LIST_ARG)) {
+                    abiList = argv[i].substring(ABI_LIST_ARG.length());
+                } else if (argv[i].startsWith(SOCKET_NAME_ARG)) {
+                    socketName = argv[i].substring(SOCKET_NAME_ARG.length());
+                } else {
+                    throw new RuntimeException("Unknown command line argument: " + argv[i]);
+                }
+            }
+
+            if (abiList == null) {
+                throw new RuntimeException("No ABI list supplied.");
+            }
+
+            registerZygoteSocket(socketName);
             EventLog.writeEvent(LOG_BOOT_PROGRESS_PRELOAD_START,
                 SystemClock.uptimeMillis());
             preload();
@@ -594,20 +613,12 @@
             // Zygote.
             Trace.setTracingEnabled(false);
 
-            // If requested, start system server directly from Zygote
-            if (argv.length != 2) {
-                throw new RuntimeException(argv[0] + USAGE_STRING);
-            }
-
-            if (argv[1].equals("start-system-server")) {
+            if (startSystemServer) {
                 startSystemServer();
-            } else if (!argv[1].equals("")) {
-                throw new RuntimeException(argv[0] + USAGE_STRING);
             }
 
             Log.i(TAG, "Accepting command socket connections");
-
-            runSelectLoop();
+            runSelectLoop(abiList);
 
             closeServerSocket();
         } catch (MethodAndArgsCaller caller) {
@@ -627,7 +638,7 @@
      * @throws MethodAndArgsCaller in a child process when a main() should
      * be executed.
      */
-    private static void runSelectLoop() throws MethodAndArgsCaller {
+    private static void runSelectLoop(String abiList) throws MethodAndArgsCaller {
         ArrayList<FileDescriptor> fds = new ArrayList<FileDescriptor>();
         ArrayList<ZygoteConnection> peers = new ArrayList<ZygoteConnection>();
         FileDescriptor[] fdArray = new FileDescriptor[4];
@@ -666,7 +677,7 @@
             if (index < 0) {
                 throw new RuntimeException("Error in select()");
             } else if (index == 0) {
-                ZygoteConnection newPeer = acceptCommandPeer();
+                ZygoteConnection newPeer = acceptCommandPeer(abiList);
                 peers.add(newPeer);
                 fds.add(newPeer.getFileDesciptor());
             } else {
diff --git a/core/java/com/android/internal/policy/IKeyguardService.aidl b/core/java/com/android/internal/policy/IKeyguardService.aidl
index 63ff5a0..b78c70f 100644
--- a/core/java/com/android/internal/policy/IKeyguardService.aidl
+++ b/core/java/com/android/internal/policy/IKeyguardService.aidl
@@ -25,12 +25,24 @@
 interface IKeyguardService {
     boolean isShowing();
     boolean isSecure();
-    boolean isShowingAndNotHidden();
+    boolean isShowingAndNotOccluded();
     boolean isInputRestricted();
     boolean isDismissable();
     oneway void verifyUnlock(IKeyguardExitCallback callback);
     oneway void keyguardDone(boolean authenticated, boolean wakeup);
-    oneway void setHidden(boolean isHidden);
+
+    /**
+     * Sets the Keyguard as occluded when a window dismisses the Keyguard with flag
+     * FLAG_SHOW_ON_LOCK_SCREEN.
+     *
+     * @param isOccluded Whether the Keyguard is occluded by another window.
+     * @return See IKeyguardServiceConstants.KEYGUARD_SERVICE_SET_OCCLUDED_*. This is needed because
+     *         PhoneWindowManager needs to set these flags immediately and can't wait for the
+     *         Keyguard thread to pick it up. In the hidden case, PhoneWindowManager is solely
+     *         responsible to make sure that the flags are unset.
+     */
+    int setOccluded(boolean isOccluded);
+
     oneway void dismiss();
     oneway void onDreamingStarted();
     oneway void onDreamingStopped();
diff --git a/core/java/com/android/internal/policy/IKeyguardServiceConstants.java b/core/java/com/android/internal/policy/IKeyguardServiceConstants.java
new file mode 100644
index 0000000..b88174a
--- /dev/null
+++ b/core/java/com/android/internal/policy/IKeyguardServiceConstants.java
@@ -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
+ */
+
+package com.android.internal.policy;
+
+/**
+ * @hide
+ */
+public class IKeyguardServiceConstants {
+
+    /**
+     * Constant for {@link com.android.internal.policy.IKeyguardService#setHidden(boolean)}:
+     * Don't change the keyguard window flags.
+     */
+    public static final int KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_NONE = 0;
+
+    /**
+     * Constant for {@link com.android.internal.policy.IKeyguardService#setHidden(boolean)}:
+     * Set the keyguard window flags to FLAG_SHOW_WALLPAPER and PRIVATE_FLAG_KEYGUARD.
+     */
+    public static final int KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_SET_FLAGS = 1;
+
+    /**
+     * Constant for {@link com.android.internal.policy.IKeyguardService#setHidden(boolean)}:
+     * Unset the keyguard window flags to FLAG_SHOW_WALLPAPER and PRIVATE_FLAG_KEYGUARD.
+     */
+    public static final int KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_UNSET_FLAGS = 2;
+}
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index 4734712..dfdb9ae 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -41,6 +41,7 @@
             out List<IBinder> notificationKeys, out List<StatusBarNotification> notifications,
             out int[] switches, out List<IBinder> binders);
     void onPanelRevealed();
+    void onPanelHidden();
     void onNotificationClick(String pkg, String tag, int id, int userId);
     void onNotificationError(String pkg, String tag, int id,
             int uid, int initialPid, String message, int userId);
diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java
index 9137d3c..d177410 100644
--- a/core/java/com/android/internal/util/ArrayUtils.java
+++ b/core/java/com/android/internal/util/ArrayUtils.java
@@ -16,11 +16,10 @@
 
 package com.android.internal.util;
 
-import java.lang.reflect.Array;
+import dalvik.system.VMRuntime;
+import libcore.util.EmptyArray;
 
-// XXX these should be changed to reflect the actual memory allocator we use.
-// it looks like right now objects want to be powers of 2 minus 8
-// and the array size eats another 4 bytes
+import java.lang.reflect.Array;
 
 /**
  * ArrayUtils contains some methods that you can call to find out
@@ -28,46 +27,42 @@
  */
 public class ArrayUtils
 {
-    private static Object[] EMPTY = new Object[0];
     private static final int CACHE_SIZE = 73;
     private static Object[] sCache = new Object[CACHE_SIZE];
 
     private ArrayUtils() { /* cannot be instantiated */ }
 
-    public static int idealByteArraySize(int need) {
-        for (int i = 4; i < 32; i++)
-            if (need <= (1 << i) - 12)
-                return (1 << i) - 12;
-
-        return need;
+    public static byte[] newUnpaddedByteArray(int minLen) {
+        return (byte[])VMRuntime.getRuntime().newUnpaddedArray(byte.class, minLen);
     }
 
-    public static int idealBooleanArraySize(int need) {
-        return idealByteArraySize(need);
+    public static char[] newUnpaddedCharArray(int minLen) {
+        return (char[])VMRuntime.getRuntime().newUnpaddedArray(char.class, minLen);
     }
 
-    public static int idealShortArraySize(int need) {
-        return idealByteArraySize(need * 2) / 2;
+    public static int[] newUnpaddedIntArray(int minLen) {
+        return (int[])VMRuntime.getRuntime().newUnpaddedArray(int.class, minLen);
     }
 
-    public static int idealCharArraySize(int need) {
-        return idealByteArraySize(need * 2) / 2;
+    public static boolean[] newUnpaddedBooleanArray(int minLen) {
+        return (boolean[])VMRuntime.getRuntime().newUnpaddedArray(boolean.class, minLen);
     }
 
-    public static int idealIntArraySize(int need) {
-        return idealByteArraySize(need * 4) / 4;
+    public static long[] newUnpaddedLongArray(int minLen) {
+        return (long[])VMRuntime.getRuntime().newUnpaddedArray(long.class, minLen);
     }
 
-    public static int idealFloatArraySize(int need) {
-        return idealByteArraySize(need * 4) / 4;
+    public static float[] newUnpaddedFloatArray(int minLen) {
+        return (float[])VMRuntime.getRuntime().newUnpaddedArray(float.class, minLen);
     }
 
-    public static int idealObjectArraySize(int need) {
-        return idealByteArraySize(need * 4) / 4;
+    public static Object[] newUnpaddedObjectArray(int minLen) {
+        return (Object[])VMRuntime.getRuntime().newUnpaddedArray(Object.class, minLen);
     }
 
-    public static int idealLongArraySize(int need) {
-        return idealByteArraySize(need * 8) / 8;
+    @SuppressWarnings("unchecked")
+    public static <T> T[] newUnpaddedArray(Class<T> clazz, int minLen) {
+        return (T[])VMRuntime.getRuntime().newUnpaddedArray(clazz, minLen);
     }
 
     /**
@@ -102,9 +97,10 @@
      * it will return the same empty array every time to avoid reallocation,
      * although this is not guaranteed.
      */
+    @SuppressWarnings("unchecked")
     public static <T> T[] emptyArray(Class<T> kind) {
         if (kind == Object.class) {
-            return (T[]) EMPTY;
+            return (T[]) EmptyArray.OBJECT;
         }
 
         int bucket = ((System.identityHashCode(kind) / 8) & 0x7FFFFFFF) % CACHE_SIZE;
diff --git a/core/java/com/android/internal/util/GrowingArrayUtils.java b/core/java/com/android/internal/util/GrowingArrayUtils.java
new file mode 100644
index 0000000..b4d2d730
--- /dev/null
+++ b/core/java/com/android/internal/util/GrowingArrayUtils.java
@@ -0,0 +1,196 @@
+/*
+ * 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.android.internal.util;
+
+/**
+ * A helper class that aims to provide comparable growth performance to ArrayList, but on primitive
+ * arrays. Common array operations are implemented for efficient use in dynamic containers.
+ *
+ * All methods in this class assume that the length of an array is equivalent to its capacity and
+ * NOT the number of elements in the array. The current size of the array is always passed in as a
+ * parameter.
+ *
+ * @hide
+ */
+public final class GrowingArrayUtils {
+
+    /**
+     * Appends an element to the end of the array, growing the array if there is no more room.
+     * @param array The array to which to append the element. This must NOT be null.
+     * @param currentSize The number of elements in the array. Must be less than or equal to
+     *                    array.length.
+     * @param element The element to append.
+     * @return the array to which the element was appended. This may be different than the given
+     *         array.
+     */
+    public static <T> T[] append(T[] array, int currentSize, T element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 > array.length) {
+            @SuppressWarnings("unchecked")
+            T[] newArray = ArrayUtils.newUnpaddedArray(
+                    (Class<T>) array.getClass().getComponentType(), growSize(currentSize));
+            System.arraycopy(array, 0, newArray, 0, currentSize);
+            array = newArray;
+        }
+        array[currentSize] = element;
+        return array;
+    }
+
+    /**
+     * Primitive int version of {@link #append(Object[], int, Object)}.
+     */
+    public static int[] append(int[] array, int currentSize, int element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 > array.length) {
+            int[] newArray = ArrayUtils.newUnpaddedIntArray(growSize(currentSize));
+            System.arraycopy(array, 0, newArray, 0, currentSize);
+            array = newArray;
+        }
+        array[currentSize] = element;
+        return array;
+    }
+
+    /**
+     * Primitive long version of {@link #append(Object[], int, Object)}.
+     */
+    public static long[] append(long[] array, int currentSize, long element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 > array.length) {
+            long[] newArray = ArrayUtils.newUnpaddedLongArray(growSize(currentSize));
+            System.arraycopy(array, 0, newArray, 0, currentSize);
+            array = newArray;
+        }
+        array[currentSize] = element;
+        return array;
+    }
+
+    /**
+     * Primitive boolean version of {@link #append(Object[], int, Object)}.
+     */
+    public static boolean[] append(boolean[] array, int currentSize, boolean element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 > array.length) {
+            boolean[] newArray = ArrayUtils.newUnpaddedBooleanArray(growSize(currentSize));
+            System.arraycopy(array, 0, newArray, 0, currentSize);
+            array = newArray;
+        }
+        array[currentSize] = element;
+        return array;
+    }
+
+    /**
+     * Inserts an element into the array at the specified index, growing the array if there is no
+     * more room.
+     *
+     * @param array The array to which to append the element. Must NOT be null.
+     * @param currentSize The number of elements in the array. Must be less than or equal to
+     *                    array.length.
+     * @param element The element to insert.
+     * @return the array to which the element was appended. This may be different than the given
+     *         array.
+     */
+    public static <T> T[] insert(T[] array, int currentSize, int index, T element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 <= array.length) {
+            System.arraycopy(array, index, array, index + 1, currentSize - index);
+            array[index] = element;
+            return array;
+        }
+
+        @SuppressWarnings("unchecked")
+        T[] newArray = ArrayUtils.newUnpaddedArray((Class<T>)array.getClass().getComponentType(),
+                growSize(currentSize));
+        System.arraycopy(array, 0, newArray, 0, index);
+        newArray[index] = element;
+        System.arraycopy(array, index, newArray, index + 1, array.length - index);
+        return newArray;
+    }
+
+    /**
+     * Primitive int version of {@link #insert(Object[], int, int, Object)}.
+     */
+    public static int[] insert(int[] array, int currentSize, int index, int element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 <= array.length) {
+            System.arraycopy(array, index, array, index + 1, currentSize - index);
+            array[index] = element;
+            return array;
+        }
+
+        int[] newArray = ArrayUtils.newUnpaddedIntArray(growSize(currentSize));
+        System.arraycopy(array, 0, newArray, 0, index);
+        newArray[index] = element;
+        System.arraycopy(array, index, newArray, index + 1, array.length - index);
+        return newArray;
+    }
+
+    /**
+     * Primitive long version of {@link #insert(Object[], int, int, Object)}.
+     */
+    public static long[] insert(long[] array, int currentSize, int index, long element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 <= array.length) {
+            System.arraycopy(array, index, array, index + 1, currentSize - index);
+            array[index] = element;
+            return array;
+        }
+
+        long[] newArray = ArrayUtils.newUnpaddedLongArray(growSize(currentSize));
+        System.arraycopy(array, 0, newArray, 0, index);
+        newArray[index] = element;
+        System.arraycopy(array, index, newArray, index + 1, array.length - index);
+        return newArray;
+    }
+
+    /**
+     * Primitive boolean version of {@link #insert(Object[], int, int, Object)}.
+     */
+    public static boolean[] insert(boolean[] array, int currentSize, int index, boolean element) {
+        assert currentSize <= array.length;
+
+        if (currentSize + 1 <= array.length) {
+            System.arraycopy(array, index, array, index + 1, currentSize - index);
+            array[index] = element;
+            return array;
+        }
+
+        boolean[] newArray = ArrayUtils.newUnpaddedBooleanArray(growSize(currentSize));
+        System.arraycopy(array, 0, newArray, 0, index);
+        newArray[index] = element;
+        System.arraycopy(array, index, newArray, index + 1, array.length - index);
+        return newArray;
+    }
+
+    /**
+     * Given the current size of an array, returns an ideal size to which the array should grow.
+     * This is typically double the given size, but should not be relied upon to do so in the
+     * future.
+     */
+    public static int growSize(int currentSize) {
+        return currentSize <= 4 ? 8 : currentSize * 2;
+    }
+
+    // Uninstantiable
+    private GrowingArrayUtils() {}
+}
diff --git a/core/java/com/android/internal/util/ImageUtils.java b/core/java/com/android/internal/util/ImageUtils.java
new file mode 100644
index 0000000..a5ce6e0ca
--- /dev/null
+++ b/core/java/com/android/internal/util/ImageUtils.java
@@ -0,0 +1,84 @@
+/*
+ * 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.android.internal.util;
+
+import android.graphics.Bitmap;
+
+/**
+ * Utility class for image analysis and processing.
+ *
+ * @hide
+ */
+public class ImageUtils {
+
+    // Amount (max is 255) that two channels can differ before the color is no longer "gray".
+    private static final int TOLERANCE = 20;
+
+    // Alpha amount for which values below are considered transparent.
+    private static final int ALPHA_TOLERANCE = 50;
+
+    private int[] mTempBuffer;
+
+    /**
+     * Checks whether a bitmap is grayscale. Grayscale here means "very close to a perfect
+     * gray".
+     */
+    public boolean isGrayscale(Bitmap bitmap) {
+        final int height = bitmap.getHeight();
+        final int width = bitmap.getWidth();
+        int size = height*width;
+
+        ensureBufferSize(size);
+        bitmap.getPixels(mTempBuffer, 0, width, 0, 0, width, height);
+        for (int i = 0; i < size; i++) {
+            if (!isGrayscale(mTempBuffer[i])) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Makes sure that {@code mTempBuffer} has at least length {@code size}.
+     */
+    private void ensureBufferSize(int size) {
+        if (mTempBuffer == null || mTempBuffer.length < size) {
+            mTempBuffer = new int[size];
+        }
+    }
+
+    /**
+     * Classifies a color as grayscale or not. Grayscale here means "very close to a perfect
+     * gray"; if all three channels are approximately equal, this will return true.
+     *
+     * Note that really transparent colors are always grayscale.
+     */
+    public static boolean isGrayscale(int color) {
+        int alpha = 0xFF & (color >> 24);
+        if (alpha < ALPHA_TOLERANCE) {
+            return true;
+        }
+
+        int r = 0xFF & (color >> 16);
+        int g = 0xFF & (color >> 8);
+        int b = 0xFF & color;
+
+        return Math.abs(r - g) < TOLERANCE
+                && Math.abs(r - b) < TOLERANCE
+                && Math.abs(g - b) < TOLERANCE;
+    }
+}
diff --git a/core/java/com/android/internal/util/LegacyNotificationUtil.java b/core/java/com/android/internal/util/LegacyNotificationUtil.java
new file mode 100644
index 0000000..0394bbc
--- /dev/null
+++ b/core/java/com/android/internal/util/LegacyNotificationUtil.java
@@ -0,0 +1,193 @@
+/*
+ * 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.android.internal.util;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.drawable.AnimationDrawable;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.text.SpannableStringBuilder;
+import android.text.Spanned;
+import android.text.style.TextAppearanceSpan;
+import android.util.Log;
+import android.util.Pair;
+
+import java.util.Arrays;
+import java.util.WeakHashMap;
+
+/**
+ * Helper class to process legacy (Holo) notifications to make them look like quantum notifications.
+ *
+ * @hide
+ */
+public class LegacyNotificationUtil {
+
+    private static final String TAG = "LegacyNotificationUtil";
+
+    private static final Object sLock = new Object();
+    private static LegacyNotificationUtil sInstance;
+
+    private final ImageUtils mImageUtils = new ImageUtils();
+    private final WeakHashMap<Bitmap, Pair<Boolean, Integer>> mGrayscaleBitmapCache =
+            new WeakHashMap<Bitmap, Pair<Boolean, Integer>>();
+
+    public static LegacyNotificationUtil getInstance() {
+        synchronized (sLock) {
+            if (sInstance == null) {
+                sInstance = new LegacyNotificationUtil();
+            }
+            return sInstance;
+        }
+    }
+
+    /**
+     * Checks whether a bitmap is grayscale. Grayscale here means "very close to a perfect
+     * gray".
+     *
+     * @param bitmap The bitmap to test.
+     * @return Whether the bitmap is grayscale.
+     */
+    public boolean isGrayscale(Bitmap bitmap) {
+        synchronized (sLock) {
+            Pair<Boolean, Integer> cached = mGrayscaleBitmapCache.get(bitmap);
+            if (cached != null) {
+                if (cached.second == bitmap.getGenerationId()) {
+                    return cached.first;
+                }
+            }
+        }
+        boolean result;
+        int generationId;
+        synchronized (mImageUtils) {
+            result = mImageUtils.isGrayscale(bitmap);
+
+            // generationId and the check whether the Bitmap is grayscale can't be read atomically
+            // here. However, since the thread is in the process of posting the notification, we can
+            // assume that it doesn't modify the bitmap while we are checking the pixels.
+            generationId = bitmap.getGenerationId();
+        }
+        synchronized (sLock) {
+            mGrayscaleBitmapCache.put(bitmap, Pair.create(result, generationId));
+        }
+        return result;
+    }
+
+    /**
+     * Checks whether a drawable is grayscale. Grayscale here means "very close to a perfect
+     * gray".
+     *
+     * @param d The drawable to test.
+     * @return Whether the drawable is grayscale.
+     */
+    public boolean isGrayscale(Drawable d) {
+        if (d == null) {
+            return false;
+        } else if (d instanceof BitmapDrawable) {
+            BitmapDrawable bd = (BitmapDrawable) d;
+            return bd.getBitmap() != null && isGrayscale(bd.getBitmap());
+        } else if (d instanceof AnimationDrawable) {
+            AnimationDrawable ad = (AnimationDrawable) d;
+            int count = ad.getNumberOfFrames();
+            return count > 0 && isGrayscale(ad.getFrame(0));
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Checks whether a drawable with a resoure id is grayscale. Grayscale here means "very close
+     * to a perfect gray".
+     *
+     * @param context The context to load the drawable from.
+     * @return Whether the drawable is grayscale.
+     */
+    public boolean isGrayscale(Context context, int drawableResId) {
+        if (drawableResId != 0) {
+            try {
+                return isGrayscale(context.getDrawable(drawableResId));
+            } catch (Resources.NotFoundException ex) {
+                Log.e(TAG, "Drawable not found: " + drawableResId);
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Inverts all the grayscale colors set by {@link android.text.style.TextAppearanceSpan}s on
+     * the text.
+     *
+     * @param charSequence The text to process.
+     * @return The color inverted text.
+     */
+    public CharSequence invertCharSequenceColors(CharSequence charSequence) {
+        if (charSequence instanceof Spanned) {
+            Spanned ss = (Spanned) charSequence;
+            Object[] spans = ss.getSpans(0, ss.length(), Object.class);
+            SpannableStringBuilder builder = new SpannableStringBuilder(ss.toString());
+            for (Object span : spans) {
+                Object resultSpan = span;
+                if (span instanceof TextAppearanceSpan) {
+                    resultSpan = processTextAppearanceSpan((TextAppearanceSpan) span);
+                }
+                builder.setSpan(resultSpan, ss.getSpanStart(span), ss.getSpanEnd(span),
+                        ss.getSpanFlags(span));
+            }
+            return builder;
+        }
+        return charSequence;
+    }
+
+    private TextAppearanceSpan processTextAppearanceSpan(TextAppearanceSpan span) {
+        ColorStateList colorStateList = span.getTextColor();
+        if (colorStateList != null) {
+            int[] colors = colorStateList.getColors();
+            boolean changed = false;
+            for (int i = 0; i < colors.length; i++) {
+                if (ImageUtils.isGrayscale(colors[i])) {
+
+                    // Allocate a new array so we don't change the colors in the old color state
+                    // list.
+                    if (!changed) {
+                        colors = Arrays.copyOf(colors, colors.length);
+                    }
+                    colors[i] = processColor(colors[i]);
+                    changed = true;
+                }
+            }
+            if (changed) {
+                return new TextAppearanceSpan(
+                        span.getFamily(), span.getTextStyle(), span.getTextSize(),
+                        new ColorStateList(colorStateList.getStates(), colors),
+                        span.getLinkTextColor());
+            }
+        }
+        return span;
+    }
+
+    private int processColor(int color) {
+        return Color.argb(Color.alpha(color),
+                255 - Color.red(color),
+                255 - Color.green(color),
+                255 - Color.blue(color));
+    }
+}
diff --git a/core/java/com/android/internal/view/BaseIWindow.java b/core/java/com/android/internal/view/BaseIWindow.java
index 02bd4ac..86c9fe3 100644
--- a/core/java/com/android/internal/view/BaseIWindow.java
+++ b/core/java/com/android/internal/view/BaseIWindow.java
@@ -57,10 +57,6 @@
     }
 
     @Override
-    public void dispatchScreenState(boolean on) {
-    }
-
-    @Override
     public void windowFocusChanged(boolean hasFocus, boolean touchEnabled) {
     }
 
diff --git a/core/java/com/android/internal/view/IInputMethodClient.aidl b/core/java/com/android/internal/view/IInputMethodClient.aidl
index ce4312d..9e8d12b 100644
--- a/core/java/com/android/internal/view/IInputMethodClient.aidl
+++ b/core/java/com/android/internal/view/IInputMethodClient.aidl
@@ -27,4 +27,5 @@
     void onBindMethod(in InputBindResult res);
     void onUnbindMethod(int sequence);
     void setActive(boolean active);
+    void setCursorAnchorMonitorMode(int monitorMode);
 }
diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl
index 45ca7fc..5336174 100644
--- a/core/java/com/android/internal/view/IInputMethodManager.aidl
+++ b/core/java/com/android/internal/view/IInputMethodManager.aidl
@@ -78,4 +78,5 @@
     void setAdditionalInputMethodSubtypes(String id, in InputMethodSubtype[] subtypes);
     int getInputMethodWindowVisibleHeight();
     oneway void notifyTextCommitted();
+    void setCursorAnchorMonitorMode(in IBinder token, int monitorMode);
 }
diff --git a/core/java/com/android/internal/view/menu/ActionMenuItemView.java b/core/java/com/android/internal/view/menu/ActionMenuItemView.java
index 3cceebe..891baea 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuItemView.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuItemView.java
@@ -282,11 +282,6 @@
 
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
-            // Fill all available height.
-            heightMeasureSpec = MeasureSpec.makeMeasureSpec(
-                    MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY);
-        }
         final boolean textVisible = hasText();
         if (textVisible && mSavedPaddingLeft >= 0) {
             super.setPadding(mSavedPaddingLeft, getPaddingTop(),
diff --git a/core/java/com/android/internal/widget/ActionBarContainer.java b/core/java/com/android/internal/widget/ActionBarContainer.java
index c2d22dd..ed07514 100644
--- a/core/java/com/android/internal/widget/ActionBarContainer.java
+++ b/core/java/com/android/internal/widget/ActionBarContainer.java
@@ -43,6 +43,7 @@
     private Drawable mSplitBackground;
     private boolean mIsSplit;
     private boolean mIsStacked;
+    private int mHeight;
 
     public ActionBarContainer(Context context) {
         this(context, null);
@@ -59,6 +60,7 @@
         mBackground = a.getDrawable(com.android.internal.R.styleable.ActionBar_background);
         mStackedBackground = a.getDrawable(
                 com.android.internal.R.styleable.ActionBar_backgroundStacked);
+        mHeight = a.getDimensionPixelSize(com.android.internal.R.styleable.ActionBar_height, -1);
 
         if (getId() == com.android.internal.R.id.split_action_bar) {
             mIsSplit = true;
@@ -251,6 +253,11 @@
 
     @Override
     public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        if (mActionBarView == null &&
+                MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST && mHeight >= 0) {
+            heightMeasureSpec = MeasureSpec.makeMeasureSpec(
+                    Math.min(mHeight, MeasureSpec.getSize(heightMeasureSpec)), MeasureSpec.AT_MOST);
+        }
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 
         if (mActionBarView == null) return;
diff --git a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java
index adb9bf8..c9dff1a 100644
--- a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java
+++ b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java
@@ -21,7 +21,7 @@
 import android.os.Build;
 import android.view.ViewGroup;
 import android.view.WindowInsets;
-import com.android.internal.app.ActionBarImpl;
+import com.android.internal.app.WindowDecorActionBar;
 
 import android.content.Context;
 import android.content.res.TypedArray;
@@ -38,7 +38,7 @@
     private static final String TAG = "ActionBarOverlayLayout";
 
     private int mActionBarHeight;
-    private ActionBarImpl mActionBar;
+    private WindowDecorActionBar mActionBar;
     private int mWindowVisibility = View.VISIBLE;
 
     // The main UI elements that we handle the layout of.
@@ -88,7 +88,7 @@
                 Build.VERSION_CODES.KITKAT;
     }
 
-    public void setActionBar(ActionBarImpl impl) {
+    public void setActionBar(WindowDecorActionBar impl) {
         mActionBar = impl;
         if (getWindowToken() != null) {
             // This is being initialized after being added to a window;
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index 1273c4d..60631b9 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -430,7 +430,7 @@
             mActionMenuPresenter.setItemLimit(Integer.MAX_VALUE);
             // Span the whole width
             layoutParams.width = LayoutParams.MATCH_PARENT;
-            layoutParams.height = mContentHeight;
+            layoutParams.height = LayoutParams.WRAP_CONTENT;
             configPresenters(builder);
             menuView = (ActionMenuView) mActionMenuPresenter.getMenuView(this);
             if (mSplitView != null) {
diff --git a/core/java/com/android/internal/widget/AutoScrollHelper.java b/core/java/com/android/internal/widget/AutoScrollHelper.java
index 7a294aa..0d468ca 100644
--- a/core/java/com/android/internal/widget/AutoScrollHelper.java
+++ b/core/java/com/android/internal/widget/AutoScrollHelper.java
@@ -892,6 +892,10 @@
         public boolean canTargetScrollVertically(int direction) {
             final AbsListView target = mTarget;
             final int itemCount = target.getCount();
+            if (itemCount == 0) {
+                return false;
+            }
+
             final int childCount = target.getChildCount();
             final int firstPosition = target.getFirstVisiblePosition();
             final int lastPosition = firstPosition + childCount;
diff --git a/core/java/com/android/internal/widget/ILockSettings.aidl b/core/java/com/android/internal/widget/ILockSettings.aidl
index 91056f1..9501f92 100644
--- a/core/java/com/android/internal/widget/ILockSettings.aidl
+++ b/core/java/com/android/internal/widget/ILockSettings.aidl
@@ -28,6 +28,7 @@
     boolean checkPattern(in String pattern, int userId);
     void setLockPassword(in String password, int userId);
     boolean checkPassword(in String password, int userId);
+    boolean checkVoldPassword(int userId);
     boolean havePattern(int userId);
     boolean havePassword(int userId);
     void removeUser(int userId);
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index 2d79491..2882b54 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -19,11 +19,14 @@
 import android.Manifest;
 import android.app.ActivityManagerNative;
 import android.app.admin.DevicePolicyManager;
+import android.app.trust.TrustManager;
 import android.appwidget.AppWidgetManager;
+import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.net.Uri;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -46,6 +49,8 @@
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -145,6 +150,8 @@
     private static final String LOCK_SCREEN_OWNER_INFO_ENABLED =
             Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED;
 
+    private static final String ENABLED_TRUST_AGENTS = "lockscreen.enabledtrustagents";
+
     private final Context mContext;
     private final ContentResolver mContentResolver;
     private DevicePolicyManager mDevicePolicyManager;
@@ -167,6 +174,15 @@
         return mDevicePolicyManager;
     }
 
+    private TrustManager getTrustManager() {
+        TrustManager trust = (TrustManager) mContext.getSystemService(Context.TRUST_SERVICE);
+        if (trust == null) {
+            Log.e(TAG, "Can't get TrustManagerService: is it running?",
+                    new IllegalStateException("Stack trace:"));
+        }
+        return trust;
+    }
+
     /**
      * @param contentResolver Used to look up and save settings.
      */
@@ -242,10 +258,14 @@
      */
     public void reportFailedPasswordAttempt() {
         getDevicePolicyManager().reportFailedPasswordAttempt(getCurrentOrCallingUserId());
+        getTrustManager().reportUnlockAttempt(false /* authenticated */,
+                getCurrentOrCallingUserId());
     }
 
     public void reportSuccessfulPasswordAttempt() {
         getDevicePolicyManager().reportSuccessfulPasswordAttempt(getCurrentOrCallingUserId());
+        getTrustManager().reportUnlockAttempt(true /* authenticated */,
+                getCurrentOrCallingUserId());
     }
 
     public void setCurrentUser(int userId) {
@@ -313,6 +333,20 @@
     }
 
     /**
+     * Check to see if vold already has the password.
+     * Note that this also clears vold's copy of the password.
+     * @return Whether the vold password matches or not.
+     */
+    public boolean checkVoldPassword() {
+        final int userId = getCurrentOrCallingUserId();
+        try {
+            return getLockSettings().checkVoldPassword(userId);
+        } catch (RemoteException re) {
+            return false;
+        }
+    }
+
+    /**
      * Check to see if a password matches any of the passwords stored in the
      * password history.
      *
@@ -496,11 +530,12 @@
      */
     public void saveLockPattern(List<LockPatternView.Cell> pattern, boolean isFallback) {
         try {
-            getLockSettings().setLockPattern(patternToString(pattern), getCurrentOrCallingUserId());
+            int userId = getCurrentOrCallingUserId();
+            getLockSettings().setLockPattern(patternToString(pattern), userId);
             DevicePolicyManager dpm = getDevicePolicyManager();
             if (pattern != null) {
 
-                int userHandle = getCurrentOrCallingUserId();
+                int userHandle = userId;
                 if (userHandle == UserHandle.USER_OWNER) {
                     String stringPattern = patternToString(pattern);
                     updateEncryptionPassword(StorageManager.CRYPT_TYPE_PATTERN, stringPattern);
@@ -511,30 +546,55 @@
                     deleteGallery();
                     setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
                     dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING,
-                            pattern.size(), 0, 0, 0, 0, 0, 0, getCurrentOrCallingUserId());
+                            pattern.size(), 0, 0, 0, 0, 0, 0, userId);
                 } else {
                     setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK);
                     setLong(PASSWORD_TYPE_ALTERNATE_KEY,
                             DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
                     finishBiometricWeak();
                     dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK,
-                            0, 0, 0, 0, 0, 0, 0, getCurrentOrCallingUserId());
+                            0, 0, 0, 0, 0, 0, 0, userId);
                 }
             } else {
                 dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, 0, 0,
-                        0, 0, 0, 0, 0, getCurrentOrCallingUserId());
+                        0, 0, 0, 0, 0, userId);
             }
         } catch (RemoteException re) {
             Log.e(TAG, "Couldn't save lock pattern " + re);
         }
     }
 
+    private void updateCryptoUserInfo() {
+        int userId = getCurrentOrCallingUserId();
+        if (userId != UserHandle.USER_OWNER) {
+            return;
+        }
+
+        final String ownerInfo = isOwnerInfoEnabled() ? getOwnerInfo(userId) : "";
+
+        IBinder service = ServiceManager.getService("mount");
+        if (service == null) {
+            Log.e(TAG, "Could not find the mount service to update the user info");
+            return;
+        }
+
+        IMountService mountService = IMountService.Stub.asInterface(service);
+        try {
+            Log.d(TAG, "Setting owner info");
+            mountService.setField("OwnerInfo", ownerInfo);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error changing user info", e);
+        }
+    }
+
     public void setOwnerInfo(String info, int userId) {
         setString(LOCK_SCREEN_OWNER_INFO, info, userId);
+        updateCryptoUserInfo();
     }
 
     public void setOwnerInfoEnabled(boolean enabled) {
         setBoolean(LOCK_SCREEN_OWNER_INFO_ENABLED, enabled);
+        updateCryptoUserInfo();
     }
 
     public String getOwnerInfo(int userId) {
@@ -728,13 +788,13 @@
      */
     public int getKeyguardStoredPasswordQuality() {
         int quality =
-                (int) getLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+                (int) getLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
         // If the user has chosen to use weak biometric sensor, then return the backup locking
         // method and treat biometric as a special case.
         if (quality == DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK) {
             quality =
                 (int) getLong(PASSWORD_TYPE_ALTERNATE_KEY,
-                        DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+                        DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
         }
         return quality;
     }
@@ -744,7 +804,7 @@
      */
     public boolean usingBiometricWeak() {
         int quality =
-                (int) getLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+                (int) getLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
         return quality == DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK;
     }
 
@@ -883,11 +943,12 @@
      */
     public boolean isLockPatternEnabled() {
         final boolean backupEnabled =
-                getLong(PASSWORD_TYPE_ALTERNATE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING)
-                == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
+                getLong(PASSWORD_TYPE_ALTERNATE_KEY,
+                        DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED)
+                                == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
 
         return getBoolean(Settings.Secure.LOCK_PATTERN_ENABLED, false)
-                && (getLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING)
+                && (getLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED)
                         == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING ||
                         (usingBiometricWeak() && backupEnabled));
     }
@@ -1374,4 +1435,38 @@
         setBoolean(LOCKSCREEN_WIDGETS_ENABLED, enabled, userId);
     }
 
+    public void setEnabledTrustAgents(Collection<ComponentName> activeTrustAgents) {
+        setEnabledTrustAgents(activeTrustAgents, getCurrentOrCallingUserId());
+    }
+
+    public List<ComponentName> getEnabledTrustAgents() {
+        return getEnabledTrustAgents(getCurrentOrCallingUserId());
+    }
+
+    public void setEnabledTrustAgents(Collection<ComponentName> activeTrustAgents, int userId) {
+        StringBuilder sb = new StringBuilder();
+        for (ComponentName cn : activeTrustAgents) {
+            if (sb.length() > 0) {
+                sb.append(',');
+            }
+            sb.append(cn.flattenToShortString());
+        }
+        setString(ENABLED_TRUST_AGENTS, sb.toString(), userId);
+        getTrustManager().reportEnabledTrustAgentsChanged(getCurrentOrCallingUserId());
+    }
+
+    public List<ComponentName> getEnabledTrustAgents(int userId) {
+        String serialized = getString(ENABLED_TRUST_AGENTS, userId);
+        if (TextUtils.isEmpty(serialized)) {
+            return null;
+        }
+        String[] split = serialized.split(",");
+        ArrayList<ComponentName> activeTrustAgents = new ArrayList<ComponentName>(split.length);
+        for (String s : split) {
+            if (!TextUtils.isEmpty(s)) {
+                activeTrustAgents.add(ComponentName.unflattenFromString(s));
+            }
+        }
+        return activeTrustAgents;
+    }
 }
diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java
index 26cb4e5..36ed344 100644
--- a/core/java/com/android/internal/widget/LockPatternView.java
+++ b/core/java/com/android/internal/widget/LockPatternView.java
@@ -32,6 +32,7 @@
 import android.os.Parcelable;
 import android.os.SystemClock;
 import android.util.AttributeSet;
+import android.util.TypedValue;
 import android.view.HapticFeedbackConstants;
 import android.view.MotionEvent;
 import android.view.View;
@@ -260,13 +261,23 @@
 
         mPathPaint.setAntiAlias(true);
         mPathPaint.setDither(true);
-        mPathPaint.setColor(Color.WHITE);   // TODO this should be from the style
+
+        int defaultColor = Color.WHITE;
+        TypedValue outValue = new TypedValue();
+        if (context.getTheme().resolveAttribute(android.R.attr.textColorPrimary, outValue, true)) {
+            defaultColor = context.getResources().getColor(outValue.resourceId);
+        }
+
+        final int color = a.getColor(R.styleable.LockPatternView_pathColor, defaultColor);
+        mPathPaint.setColor(color);
+
         mPathPaint.setAlpha(mStrokeAlpha);
         mPathPaint.setStyle(Paint.Style.STROKE);
         mPathPaint.setStrokeJoin(Paint.Join.ROUND);
         mPathPaint.setStrokeCap(Paint.Cap.ROUND);
 
         // lot's of bitmaps!
+        // TODO: those bitmaps are hardcoded to the Holo Theme which should not be the case!
         mBitmapBtnDefault = getBitmapFor(R.drawable.btn_code_lock_default_holo);
         mBitmapBtnTouched = getBitmapFor(R.drawable.btn_code_lock_touched_holo);
         mBitmapCircleDefault = getBitmapFor(R.drawable.indicator_code_lock_point_area_default_holo);
diff --git a/core/java/com/android/internal/widget/SizeAdaptiveLayout.java b/core/java/com/android/internal/widget/SizeAdaptiveLayout.java
index 961e471..5f3c5f9 100644
--- a/core/java/com/android/internal/widget/SizeAdaptiveLayout.java
+++ b/core/java/com/android/internal/widget/SizeAdaptiveLayout.java
@@ -107,8 +107,6 @@
         }
         if (background instanceof ColorDrawable) {
             mModestyPanel.setBackgroundDrawable(background);
-        } else {
-            mModestyPanel.setBackgroundColor(Color.BLACK);
         }
         SizeAdaptiveLayout.LayoutParams layout =
                 new SizeAdaptiveLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
diff --git a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java b/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java
deleted file mode 100644
index 4648f39..0000000
--- a/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java
+++ /dev/null
@@ -1,1270 +0,0 @@
-/*
- * 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.android.internal.widget.multiwaveview;
-
-import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.TimeInterpolator;
-import android.animation.ValueAnimator;
-import android.animation.ValueAnimator.AnimatorUpdateListener;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
-import android.media.AudioManager;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.os.Vibrator;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-
-import com.android.internal.R;
-
-import java.util.ArrayList;
-
-/**
- * A special widget containing a center and outer ring. Moving the center ring to the outer ring
- * causes an event that can be caught by implementing OnTriggerListener.
- */
-public class MultiWaveView extends View {
-    private static final String TAG = "MultiWaveView";
-    private static final boolean DEBUG = false;
-
-    // Wave state machine
-    private static final int STATE_IDLE = 0;
-    private static final int STATE_START = 1;
-    private static final int STATE_FIRST_TOUCH = 2;
-    private static final int STATE_TRACKING = 3;
-    private static final int STATE_SNAP = 4;
-    private static final int STATE_FINISH = 5;
-
-    // Animation properties.
-    private static final float SNAP_MARGIN_DEFAULT = 20.0f; // distance to ring before we snap to it
-
-    public interface OnTriggerListener {
-        int NO_HANDLE = 0;
-        int CENTER_HANDLE = 1;
-        public void onGrabbed(View v, int handle);
-        public void onReleased(View v, int handle);
-        public void onTrigger(View v, int target);
-        public void onGrabbedStateChange(View v, int handle);
-        public void onFinishFinalAnimation();
-    }
-
-    // Tuneable parameters for animation
-    private static final int CHEVRON_INCREMENTAL_DELAY = 160;
-    private static final int CHEVRON_ANIMATION_DURATION = 850;
-    private static final int RETURN_TO_HOME_DELAY = 1200;
-    private static final int RETURN_TO_HOME_DURATION = 200;
-    private static final int HIDE_ANIMATION_DELAY = 200;
-    private static final int HIDE_ANIMATION_DURATION = 200;
-    private static final int SHOW_ANIMATION_DURATION = 200;
-    private static final int SHOW_ANIMATION_DELAY = 50;
-    private static final int INITIAL_SHOW_HANDLE_DURATION = 200;
-
-    private static final float TAP_RADIUS_SCALE_ACCESSIBILITY_ENABLED = 1.3f;
-    private static final float TARGET_SCALE_EXPANDED = 1.0f;
-    private static final float TARGET_SCALE_COLLAPSED = 0.8f;
-    private static final float RING_SCALE_EXPANDED = 1.0f;
-    private static final float RING_SCALE_COLLAPSED = 0.5f;
-
-    private TimeInterpolator mChevronAnimationInterpolator = Ease.Quad.easeOut;
-
-    private ArrayList<TargetDrawable> mTargetDrawables = new ArrayList<TargetDrawable>();
-    private ArrayList<TargetDrawable> mChevronDrawables = new ArrayList<TargetDrawable>();
-    private AnimationBundle mChevronAnimations = new AnimationBundle();
-    private AnimationBundle mTargetAnimations = new AnimationBundle();
-    private AnimationBundle mHandleAnimations = new AnimationBundle();
-    private ArrayList<String> mTargetDescriptions;
-    private ArrayList<String> mDirectionDescriptions;
-    private OnTriggerListener mOnTriggerListener;
-    private TargetDrawable mHandleDrawable;
-    private TargetDrawable mOuterRing;
-    private Vibrator mVibrator;
-
-    private int mFeedbackCount = 3;
-    private int mVibrationDuration = 0;
-    private int mGrabbedState;
-    private int mActiveTarget = -1;
-    private float mTapRadius;
-    private float mWaveCenterX;
-    private float mWaveCenterY;
-    private int mMaxTargetHeight;
-    private int mMaxTargetWidth;
-
-    private float mOuterRadius = 0.0f;
-    private float mSnapMargin = 0.0f;
-    private boolean mDragging;
-    private int mNewTargetResources;
-
-    private class AnimationBundle extends ArrayList<Tweener> {
-        private static final long serialVersionUID = 0xA84D78726F127468L;
-        private boolean mSuspended;
-
-        public void start() {
-            if (mSuspended) return; // ignore attempts to start animations
-            final int count = size();
-            for (int i = 0; i < count; i++) {
-                Tweener anim = get(i);
-                anim.animator.start();
-            }
-        }
-
-        public void cancel() {
-            final int count = size();
-            for (int i = 0; i < count; i++) {
-                Tweener anim = get(i);
-                anim.animator.cancel();
-            }
-            clear();
-        }
-
-        public void stop() {
-            final int count = size();
-            for (int i = 0; i < count; i++) {
-                Tweener anim = get(i);
-                anim.animator.end();
-            }
-            clear();
-        }
-
-        public void setSuspended(boolean suspend) {
-            mSuspended = suspend;
-        }
-    };
-
-    private AnimatorListener mResetListener = new AnimatorListenerAdapter() {
-        public void onAnimationEnd(Animator animator) {
-            switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY);
-            dispatchOnFinishFinalAnimation();
-        }
-    };
-
-    private AnimatorListener mResetListenerWithPing = new AnimatorListenerAdapter() {
-        public void onAnimationEnd(Animator animator) {
-            ping();
-            switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY);
-            dispatchOnFinishFinalAnimation();
-        }
-    };
-
-    private AnimatorUpdateListener mUpdateListener = new AnimatorUpdateListener() {
-        public void onAnimationUpdate(ValueAnimator animation) {
-            invalidateGlobalRegion(mHandleDrawable);
-            invalidate();
-        }
-    };
-
-    private boolean mAnimatingTargets;
-    private AnimatorListener mTargetUpdateListener = new AnimatorListenerAdapter() {
-        public void onAnimationEnd(Animator animator) {
-            if (mNewTargetResources != 0) {
-                internalSetTargetResources(mNewTargetResources);
-                mNewTargetResources = 0;
-                hideTargets(false, false);
-            }
-            mAnimatingTargets = false;
-        }
-    };
-    private int mTargetResourceId;
-    private int mTargetDescriptionsResourceId;
-    private int mDirectionDescriptionsResourceId;
-    private boolean mAlwaysTrackFinger;
-    private int mHorizontalInset;
-    private int mVerticalInset;
-    private int mGravity = Gravity.TOP;
-    private boolean mInitialLayout = true;
-    private Tweener mBackgroundAnimator;
-
-    public MultiWaveView(Context context) {
-        this(context, null);
-    }
-
-    public MultiWaveView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        Resources res = context.getResources();
-
-        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MultiWaveView);
-        mOuterRadius = a.getDimension(R.styleable.MultiWaveView_outerRadius, mOuterRadius);
-        mSnapMargin = a.getDimension(R.styleable.MultiWaveView_snapMargin, mSnapMargin);
-        mVibrationDuration = a.getInt(R.styleable.MultiWaveView_vibrationDuration,
-                mVibrationDuration);
-        mFeedbackCount = a.getInt(R.styleable.MultiWaveView_feedbackCount,
-                mFeedbackCount);
-        mHandleDrawable = new TargetDrawable(res,
-                a.peekValue(R.styleable.MultiWaveView_handleDrawable).resourceId);
-        mTapRadius = mHandleDrawable.getWidth()/2;
-        mOuterRing = new TargetDrawable(res,
-                a.peekValue(R.styleable.MultiWaveView_waveDrawable).resourceId);
-        mAlwaysTrackFinger = a.getBoolean(R.styleable.MultiWaveView_alwaysTrackFinger, false);
-
-        // Read array of chevron drawables
-        TypedValue outValue = new TypedValue();
-        if (a.getValue(R.styleable.MultiWaveView_chevronDrawables, outValue)) {
-            ArrayList<TargetDrawable> chevrons = loadDrawableArray(outValue.resourceId);
-            for (int i = 0; i < chevrons.size(); i++) {
-                final TargetDrawable chevron = chevrons.get(i);
-                for (int k = 0; k < mFeedbackCount; k++) {
-                    mChevronDrawables.add(chevron == null ? null : new TargetDrawable(chevron));
-                }
-            }
-        }
-
-        // Read array of target drawables
-        if (a.getValue(R.styleable.MultiWaveView_targetDrawables, outValue)) {
-            internalSetTargetResources(outValue.resourceId);
-        }
-        if (mTargetDrawables == null || mTargetDrawables.size() == 0) {
-            throw new IllegalStateException("Must specify at least one target drawable");
-        }
-
-        // Read array of target descriptions
-        if (a.getValue(R.styleable.MultiWaveView_targetDescriptions, outValue)) {
-            final int resourceId = outValue.resourceId;
-            if (resourceId == 0) {
-                throw new IllegalStateException("Must specify target descriptions");
-            }
-            setTargetDescriptionsResourceId(resourceId);
-        }
-
-        // Read array of direction descriptions
-        if (a.getValue(R.styleable.MultiWaveView_directionDescriptions, outValue)) {
-            final int resourceId = outValue.resourceId;
-            if (resourceId == 0) {
-                throw new IllegalStateException("Must specify direction descriptions");
-            }
-            setDirectionDescriptionsResourceId(resourceId);
-        }
-
-        a.recycle();
-
-        // Use gravity attribute from LinearLayout
-        a = context.obtainStyledAttributes(attrs, android.R.styleable.LinearLayout);
-        mGravity = a.getInt(android.R.styleable.LinearLayout_gravity, Gravity.TOP);
-        a.recycle();
-
-        setVibrateEnabled(mVibrationDuration > 0);
-        assignDefaultsIfNeeded();
-    }
-
-    private void dump() {
-        Log.v(TAG, "Outer Radius = " + mOuterRadius);
-        Log.v(TAG, "SnapMargin = " + mSnapMargin);
-        Log.v(TAG, "FeedbackCount = " + mFeedbackCount);
-        Log.v(TAG, "VibrationDuration = " + mVibrationDuration);
-        Log.v(TAG, "TapRadius = " + mTapRadius);
-        Log.v(TAG, "WaveCenterX = " + mWaveCenterX);
-        Log.v(TAG, "WaveCenterY = " + mWaveCenterY);
-    }
-
-    public void suspendAnimations() {
-        mChevronAnimations.setSuspended(true);
-        mTargetAnimations.setSuspended(true);
-        mHandleAnimations.setSuspended(true);
-    }
-
-    public void resumeAnimations() {
-        mChevronAnimations.setSuspended(false);
-        mTargetAnimations.setSuspended(false);
-        mHandleAnimations.setSuspended(false);
-        mChevronAnimations.start();
-        mTargetAnimations.start();
-        mHandleAnimations.start();
-    }
-
-    @Override
-    protected int getSuggestedMinimumWidth() {
-        // View should be large enough to contain the background + handle and
-        // target drawable on either edge.
-        return (int) (Math.max(mOuterRing.getWidth(), 2 * mOuterRadius) + mMaxTargetWidth);
-    }
-
-    @Override
-    protected int getSuggestedMinimumHeight() {
-        // View should be large enough to contain the unlock ring + target and
-        // target drawable on either edge
-        return (int) (Math.max(mOuterRing.getHeight(), 2 * mOuterRadius) + mMaxTargetHeight);
-    }
-
-    private int resolveMeasured(int measureSpec, int desired)
-    {
-        int result = 0;
-        int specSize = MeasureSpec.getSize(measureSpec);
-        switch (MeasureSpec.getMode(measureSpec)) {
-            case MeasureSpec.UNSPECIFIED:
-                result = desired;
-                break;
-            case MeasureSpec.AT_MOST:
-                result = Math.min(specSize, desired);
-                break;
-            case MeasureSpec.EXACTLY:
-            default:
-                result = specSize;
-        }
-        return result;
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        final int minimumWidth = getSuggestedMinimumWidth();
-        final int minimumHeight = getSuggestedMinimumHeight();
-        int computedWidth = resolveMeasured(widthMeasureSpec, minimumWidth);
-        int computedHeight = resolveMeasured(heightMeasureSpec, minimumHeight);
-        computeInsets((computedWidth - minimumWidth), (computedHeight - minimumHeight));
-        setMeasuredDimension(computedWidth, computedHeight);
-    }
-
-    private void switchToState(int state, float x, float y) {
-        switch (state) {
-            case STATE_IDLE:
-                deactivateTargets();
-                hideTargets(true, false);
-                startBackgroundAnimation(0, 0.0f);
-                mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE);
-                break;
-
-            case STATE_START:
-                deactivateHandle(0, 0, 1.0f, null);
-                startBackgroundAnimation(0, 0.0f);
-                break;
-
-            case STATE_FIRST_TOUCH:
-                deactivateTargets();
-                showTargets(true);
-                mHandleDrawable.setState(TargetDrawable.STATE_ACTIVE);
-                startBackgroundAnimation(INITIAL_SHOW_HANDLE_DURATION, 1.0f);
-                setGrabbedState(OnTriggerListener.CENTER_HANDLE);
-                if (AccessibilityManager.getInstance(mContext).isEnabled()) {
-                    announceTargets();
-                }
-                break;
-
-            case STATE_TRACKING:
-                break;
-
-            case STATE_SNAP:
-                break;
-
-            case STATE_FINISH:
-                doFinish();
-                break;
-        }
-    }
-
-    private void activateHandle(int duration, int delay, float finalAlpha,
-            AnimatorListener finishListener) {
-        mHandleAnimations.cancel();
-        mHandleAnimations.add(Tweener.to(mHandleDrawable, duration,
-                "ease", Ease.Cubic.easeIn,
-                "delay", delay,
-                "alpha", finalAlpha,
-                "onUpdate", mUpdateListener,
-                "onComplete", finishListener));
-        mHandleAnimations.start();
-    }
-
-    private void deactivateHandle(int duration, int delay, float finalAlpha,
-            AnimatorListener finishListener) {
-        mHandleAnimations.cancel();
-        mHandleAnimations.add(Tweener.to(mHandleDrawable, duration,
-            "ease", Ease.Quart.easeOut,
-            "delay", delay,
-            "alpha", finalAlpha,
-            "x", 0,
-            "y", 0,
-            "onUpdate", mUpdateListener,
-            "onComplete", finishListener));
-        mHandleAnimations.start();
-    }
-
-    /**
-     * Animation used to attract user's attention to the target button.
-     * Assumes mChevronDrawables is an a list with an even number of chevrons filled with
-     * mFeedbackCount items in the order: left, right, top, bottom.
-     */
-    private void startChevronAnimation() {
-        final float chevronStartDistance = mHandleDrawable.getWidth() * 0.8f;
-        final float chevronStopDistance = mOuterRadius * 0.9f / 2.0f;
-        final float startScale = 0.5f;
-        final float endScale = 2.0f;
-        final int directionCount = mFeedbackCount > 0 ? mChevronDrawables.size()/mFeedbackCount : 0;
-
-        mChevronAnimations.stop();
-
-        // Add an animation for all chevron drawables.  There are mFeedbackCount drawables
-        // in each direction and directionCount directions.
-        for (int direction = 0; direction < directionCount; direction++) {
-            double angle = 2.0 * Math.PI * direction / directionCount;
-            final float sx = (float) Math.cos(angle);
-            final float sy = 0.0f - (float) Math.sin(angle);
-            final float[] xrange = new float[]
-                 {sx * chevronStartDistance, sx * chevronStopDistance};
-            final float[] yrange = new float[]
-                 {sy * chevronStartDistance, sy * chevronStopDistance};
-            for (int count = 0; count < mFeedbackCount; count++) {
-                int delay = count * CHEVRON_INCREMENTAL_DELAY;
-                final TargetDrawable icon = mChevronDrawables.get(direction*mFeedbackCount + count);
-                if (icon == null) {
-                    continue;
-                }
-                mChevronAnimations.add(Tweener.to(icon, CHEVRON_ANIMATION_DURATION,
-                        "ease", mChevronAnimationInterpolator,
-                        "delay", delay,
-                        "x", xrange,
-                        "y", yrange,
-                        "alpha", new float[] {1.0f, 0.0f},
-                        "scaleX", new float[] {startScale, endScale},
-                        "scaleY", new float[] {startScale, endScale},
-                        "onUpdate", mUpdateListener));
-            }
-        }
-        mChevronAnimations.start();
-    }
-
-    private void deactivateTargets() {
-        final int count = mTargetDrawables.size();
-        for (int i = 0; i < count; i++) {
-            TargetDrawable target = mTargetDrawables.get(i);
-            target.setState(TargetDrawable.STATE_INACTIVE);
-        }
-        mActiveTarget = -1;
-    }
-
-    void invalidateGlobalRegion(TargetDrawable drawable) {
-        int width = drawable.getWidth();
-        int height = drawable.getHeight();
-        RectF childBounds = new RectF(0, 0, width, height);
-        childBounds.offset(drawable.getX() - width/2, drawable.getY() - height/2);
-        View view = this;
-        while (view.getParent() != null && view.getParent() instanceof View) {
-            view = (View) view.getParent();
-            view.getMatrix().mapRect(childBounds);
-            view.invalidate((int) Math.floor(childBounds.left),
-                    (int) Math.floor(childBounds.top),
-                    (int) Math.ceil(childBounds.right),
-                    (int) Math.ceil(childBounds.bottom));
-        }
-    }
-
-    /**
-     * Dispatches a trigger event to listener. Ignored if a listener is not set.
-     * @param whichTarget the target that was triggered.
-     */
-    private void dispatchTriggerEvent(int whichTarget) {
-        vibrate();
-        if (mOnTriggerListener != null) {
-            mOnTriggerListener.onTrigger(this, whichTarget);
-        }
-    }
-
-    private void dispatchOnFinishFinalAnimation() {
-        if (mOnTriggerListener != null) {
-            mOnTriggerListener.onFinishFinalAnimation();
-        }
-    }
-
-    private void doFinish() {
-        final int activeTarget = mActiveTarget;
-        final boolean targetHit =  activeTarget != -1;
-
-        if (targetHit) {
-            if (DEBUG) Log.v(TAG, "Finish with target hit = " + targetHit);
-
-            highlightSelected(activeTarget);
-
-            // Inform listener of any active targets.  Typically only one will be active.
-            deactivateHandle(RETURN_TO_HOME_DURATION, RETURN_TO_HOME_DELAY, 0.0f, mResetListener);
-            dispatchTriggerEvent(activeTarget);
-            if (!mAlwaysTrackFinger) {
-                // Force ring and targets to finish animation to final expanded state
-                mTargetAnimations.stop();
-            }
-        } else {
-            // Animate handle back to the center based on current state.
-            deactivateHandle(HIDE_ANIMATION_DURATION, HIDE_ANIMATION_DELAY, 1.0f,
-                    mResetListenerWithPing);
-            hideTargets(true, false);
-        }
-
-        setGrabbedState(OnTriggerListener.NO_HANDLE);
-    }
-
-    private void highlightSelected(int activeTarget) {
-        // Highlight the given target and fade others
-        mTargetDrawables.get(activeTarget).setState(TargetDrawable.STATE_ACTIVE);
-        hideUnselected(activeTarget);
-    }
-
-    private void hideUnselected(int active) {
-        for (int i = 0; i < mTargetDrawables.size(); i++) {
-            if (i != active) {
-                mTargetDrawables.get(i).setAlpha(0.0f);
-            }
-        }
-    }
-
-    private void hideTargets(boolean animate, boolean expanded) {
-        mTargetAnimations.cancel();
-        // Note: these animations should complete at the same time so that we can swap out
-        // the target assets asynchronously from the setTargetResources() call.
-        mAnimatingTargets = animate;
-        final int duration = animate ? HIDE_ANIMATION_DURATION : 0;
-        final int delay = animate ? HIDE_ANIMATION_DELAY : 0;
-
-        final float targetScale = expanded ? TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
-        final int length = mTargetDrawables.size();
-        for (int i = 0; i < length; i++) {
-            TargetDrawable target = mTargetDrawables.get(i);
-            target.setState(TargetDrawable.STATE_INACTIVE);
-            mTargetAnimations.add(Tweener.to(target, duration,
-                    "ease", Ease.Cubic.easeOut,
-                    "alpha", 0.0f,
-                    "scaleX", targetScale,
-                    "scaleY", targetScale,
-                    "delay", delay,
-                    "onUpdate", mUpdateListener));
-        }
-
-        final float ringScaleTarget = expanded ? RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
-        mTargetAnimations.add(Tweener.to(mOuterRing, duration,
-                "ease", Ease.Cubic.easeOut,
-                "alpha", 0.0f,
-                "scaleX", ringScaleTarget,
-                "scaleY", ringScaleTarget,
-                "delay", delay,
-                "onUpdate", mUpdateListener,
-                "onComplete", mTargetUpdateListener));
-
-        mTargetAnimations.start();
-    }
-
-    private void showTargets(boolean animate) {
-        mTargetAnimations.stop();
-        mAnimatingTargets = animate;
-        final int delay = animate ? SHOW_ANIMATION_DELAY : 0;
-        final int duration = animate ? SHOW_ANIMATION_DURATION : 0;
-        final int length = mTargetDrawables.size();
-        for (int i = 0; i < length; i++) {
-            TargetDrawable target = mTargetDrawables.get(i);
-            target.setState(TargetDrawable.STATE_INACTIVE);
-            mTargetAnimations.add(Tweener.to(target, duration,
-                    "ease", Ease.Cubic.easeOut,
-                    "alpha", 1.0f,
-                    "scaleX", 1.0f,
-                    "scaleY", 1.0f,
-                    "delay", delay,
-                    "onUpdate", mUpdateListener));
-        }
-        mTargetAnimations.add(Tweener.to(mOuterRing, duration,
-                "ease", Ease.Cubic.easeOut,
-                "alpha", 1.0f,
-                "scaleX", 1.0f,
-                "scaleY", 1.0f,
-                "delay", delay,
-                "onUpdate", mUpdateListener,
-                "onComplete", mTargetUpdateListener));
-
-        mTargetAnimations.start();
-    }
-
-    private void vibrate() {
-        final boolean hapticEnabled = Settings.System.getIntForUser(
-                mContext.getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED, 1,
-                UserHandle.USER_CURRENT) != 0;
-        if (mVibrator != null && hapticEnabled) {
-            mVibrator.vibrate(mVibrationDuration, AudioManager.STREAM_SYSTEM);
-        }
-    }
-
-    private ArrayList<TargetDrawable> loadDrawableArray(int resourceId) {
-        Resources res = getContext().getResources();
-        TypedArray array = res.obtainTypedArray(resourceId);
-        final int count = array.length();
-        ArrayList<TargetDrawable> drawables = new ArrayList<TargetDrawable>(count);
-        for (int i = 0; i < count; i++) {
-            TypedValue value = array.peekValue(i);
-            TargetDrawable target = new TargetDrawable(res, value != null ? value.resourceId : 0);
-            drawables.add(target);
-        }
-        array.recycle();
-        return drawables;
-    }
-
-    private void internalSetTargetResources(int resourceId) {
-        mTargetDrawables = loadDrawableArray(resourceId);
-        mTargetResourceId = resourceId;
-        final int count = mTargetDrawables.size();
-        int maxWidth = mHandleDrawable.getWidth();
-        int maxHeight = mHandleDrawable.getHeight();
-        for (int i = 0; i < count; i++) {
-            TargetDrawable target = mTargetDrawables.get(i);
-            maxWidth = Math.max(maxWidth, target.getWidth());
-            maxHeight = Math.max(maxHeight, target.getHeight());
-        }
-        if (mMaxTargetWidth != maxWidth || mMaxTargetHeight != maxHeight) {
-            mMaxTargetWidth = maxWidth;
-            mMaxTargetHeight = maxHeight;
-            requestLayout(); // required to resize layout and call updateTargetPositions()
-        } else {
-            updateTargetPositions(mWaveCenterX, mWaveCenterY);
-            updateChevronPositions(mWaveCenterX, mWaveCenterY);
-        }
-    }
-
-    /**
-     * Loads an array of drawables from the given resourceId.
-     *
-     * @param resourceId
-     */
-    public void setTargetResources(int resourceId) {
-        if (mAnimatingTargets) {
-            // postpone this change until we return to the initial state
-            mNewTargetResources = resourceId;
-        } else {
-            internalSetTargetResources(resourceId);
-        }
-    }
-
-    public int getTargetResourceId() {
-        return mTargetResourceId;
-    }
-
-    /**
-     * Sets the resource id specifying the target descriptions for accessibility.
-     *
-     * @param resourceId The resource id.
-     */
-    public void setTargetDescriptionsResourceId(int resourceId) {
-        mTargetDescriptionsResourceId = resourceId;
-        if (mTargetDescriptions != null) {
-            mTargetDescriptions.clear();
-        }
-    }
-
-    /**
-     * Gets the resource id specifying the target descriptions for accessibility.
-     *
-     * @return The resource id.
-     */
-    public int getTargetDescriptionsResourceId() {
-        return mTargetDescriptionsResourceId;
-    }
-
-    /**
-     * Sets the resource id specifying the target direction descriptions for accessibility.
-     *
-     * @param resourceId The resource id.
-     */
-    public void setDirectionDescriptionsResourceId(int resourceId) {
-        mDirectionDescriptionsResourceId = resourceId;
-        if (mDirectionDescriptions != null) {
-            mDirectionDescriptions.clear();
-        }
-    }
-
-    /**
-     * Gets the resource id specifying the target direction descriptions.
-     *
-     * @return The resource id.
-     */
-    public int getDirectionDescriptionsResourceId() {
-        return mDirectionDescriptionsResourceId;
-    }
-
-    /**
-     * Enable or disable vibrate on touch.
-     *
-     * @param enabled
-     */
-    public void setVibrateEnabled(boolean enabled) {
-        if (enabled && mVibrator == null) {
-            mVibrator = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE);
-        } else {
-            mVibrator = null;
-        }
-    }
-
-    /**
-     * Starts chevron animation. Example use case: show chevron animation whenever the phone rings
-     * or the user touches the screen.
-     *
-     */
-    public void ping() {
-        startChevronAnimation();
-    }
-
-    /**
-     * Resets the widget to default state and cancels all animation. If animate is 'true', will
-     * animate objects into place. Otherwise, objects will snap back to place.
-     *
-     * @param animate
-     */
-    public void reset(boolean animate) {
-        mChevronAnimations.stop();
-        mHandleAnimations.stop();
-        mTargetAnimations.stop();
-        startBackgroundAnimation(0, 0.0f);
-        hideChevrons();
-        hideTargets(animate, false);
-        deactivateHandle(0, 0, 1.0f, null);
-        Tweener.reset();
-    }
-
-    private void startBackgroundAnimation(int duration, float alpha) {
-        Drawable background = getBackground();
-        if (mAlwaysTrackFinger && background != null) {
-            if (mBackgroundAnimator != null) {
-                mBackgroundAnimator.animator.end();
-            }
-            mBackgroundAnimator = Tweener.to(background, duration,
-                    "ease", Ease.Cubic.easeIn,
-                    "alpha", new int[] {0, (int)(255.0f * alpha)},
-                    "delay", SHOW_ANIMATION_DELAY);
-            mBackgroundAnimator.animator.start();
-        }
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        final int action = event.getAction();
-        boolean handled = false;
-        switch (action) {
-            case MotionEvent.ACTION_DOWN:
-                if (DEBUG) Log.v(TAG, "*** DOWN ***");
-                handleDown(event);
-                handled = true;
-                break;
-
-            case MotionEvent.ACTION_MOVE:
-                if (DEBUG) Log.v(TAG, "*** MOVE ***");
-                handleMove(event);
-                handled = true;
-                break;
-
-            case MotionEvent.ACTION_UP:
-                if (DEBUG) Log.v(TAG, "*** UP ***");
-                handleMove(event);
-                handleUp(event);
-                handled = true;
-                break;
-
-            case MotionEvent.ACTION_CANCEL:
-                if (DEBUG) Log.v(TAG, "*** CANCEL ***");
-                handleMove(event);
-                handleCancel(event);
-                handled = true;
-                break;
-        }
-        invalidate();
-        return handled ? true : super.onTouchEvent(event);
-    }
-
-    private void moveHandleTo(float x, float y, boolean animate) {
-        mHandleDrawable.setX(x);
-        mHandleDrawable.setY(y);
-    }
-
-    private void handleDown(MotionEvent event) {
-        float eventX = event.getX();
-        float eventY = event.getY();
-        switchToState(STATE_START, eventX, eventY);
-        if (!trySwitchToFirstTouchState(eventX, eventY)) {
-            mDragging = false;
-            ping();
-        }
-    }
-
-    private void handleUp(MotionEvent event) {
-        if (DEBUG && mDragging) Log.v(TAG, "** Handle RELEASE");
-        switchToState(STATE_FINISH, event.getX(), event.getY());
-    }
-
-    private void handleCancel(MotionEvent event) {
-        if (DEBUG && mDragging) Log.v(TAG, "** Handle CANCEL");
-
-        // We should drop the active target here but it interferes with
-        // moving off the screen in the direction of the navigation bar. At some point we may
-        // want to revisit how we handle this. For now we'll allow a canceled event to
-        // activate the current target.
-
-        // mActiveTarget = -1; // Drop the active target if canceled.
-
-        switchToState(STATE_FINISH, event.getX(), event.getY());
-    }
-
-    private void handleMove(MotionEvent event) {
-        int activeTarget = -1;
-        final int historySize = event.getHistorySize();
-        ArrayList<TargetDrawable> targets = mTargetDrawables;
-        int ntargets = targets.size();
-        float x = 0.0f;
-        float y = 0.0f;
-        for (int k = 0; k < historySize + 1; k++) {
-            float eventX = k < historySize ? event.getHistoricalX(k) : event.getX();
-            float eventY = k < historySize ? event.getHistoricalY(k) : event.getY();
-            // tx and ty are relative to wave center
-            float tx = eventX - mWaveCenterX;
-            float ty = eventY - mWaveCenterY;
-            float touchRadius = (float) Math.sqrt(dist2(tx, ty));
-            final float scale = touchRadius > mOuterRadius ? mOuterRadius / touchRadius : 1.0f;
-            float limitX = tx * scale;
-            float limitY = ty * scale;
-            double angleRad = Math.atan2(-ty, tx);
-
-            if (!mDragging) {
-                trySwitchToFirstTouchState(eventX, eventY);
-            }
-
-            if (mDragging) {
-                // For multiple targets, snap to the one that matches
-                final float snapRadius = mOuterRadius - mSnapMargin;
-                final float snapDistance2 = snapRadius * snapRadius;
-                // Find first target in range
-                for (int i = 0; i < ntargets; i++) {
-                    TargetDrawable target = targets.get(i);
-
-                    double targetMinRad = (i - 0.5) * 2 * Math.PI / ntargets;
-                    double targetMaxRad = (i + 0.5) * 2 * Math.PI / ntargets;
-                    if (target.isEnabled()) {
-                        boolean angleMatches =
-                            (angleRad > targetMinRad && angleRad <= targetMaxRad) ||
-                            (angleRad + 2 * Math.PI > targetMinRad &&
-                             angleRad + 2 * Math.PI <= targetMaxRad);
-                        if (angleMatches && (dist2(tx, ty) > snapDistance2)) {
-                            activeTarget = i;
-                        }
-                    }
-                }
-            }
-            x = limitX;
-            y = limitY;
-        }
-
-        if (!mDragging) {
-            return;
-        }
-
-        if (activeTarget != -1) {
-            switchToState(STATE_SNAP, x,y);
-            moveHandleTo(x, y, false);
-        } else {
-            switchToState(STATE_TRACKING, x, y);
-            moveHandleTo(x, y, false);
-        }
-
-        // Draw handle outside parent's bounds
-        invalidateGlobalRegion(mHandleDrawable);
-
-        if (mActiveTarget != activeTarget) {
-            // Defocus the old target
-            if (mActiveTarget != -1) {
-                TargetDrawable target = targets.get(mActiveTarget);
-                if (target.hasState(TargetDrawable.STATE_FOCUSED)) {
-                    target.setState(TargetDrawable.STATE_INACTIVE);
-                }
-            }
-            // Focus the new target
-            if (activeTarget != -1) {
-                TargetDrawable target = targets.get(activeTarget);
-                if (target.hasState(TargetDrawable.STATE_FOCUSED)) {
-                    target.setState(TargetDrawable.STATE_FOCUSED);
-                }
-                if (AccessibilityManager.getInstance(mContext).isEnabled()) {
-                    String targetContentDescription = getTargetDescription(activeTarget);
-                    announceText(targetContentDescription);
-                }
-                activateHandle(0, 0, 0.0f, null);
-            } else {
-                activateHandle(0, 0, 1.0f, null);
-            }
-        }
-        mActiveTarget = activeTarget;
-    }
-
-    @Override
-    public boolean onHoverEvent(MotionEvent event) {
-        if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-            final int action = event.getAction();
-            switch (action) {
-                case MotionEvent.ACTION_HOVER_ENTER:
-                    event.setAction(MotionEvent.ACTION_DOWN);
-                    break;
-                case MotionEvent.ACTION_HOVER_MOVE:
-                    event.setAction(MotionEvent.ACTION_MOVE);
-                    break;
-                case MotionEvent.ACTION_HOVER_EXIT:
-                    event.setAction(MotionEvent.ACTION_UP);
-                    break;
-            }
-            onTouchEvent(event);
-            event.setAction(action);
-        }
-        return super.onHoverEvent(event);
-    }
-
-    /**
-     * Sets the current grabbed state, and dispatches a grabbed state change
-     * event to our listener.
-     */
-    private void setGrabbedState(int newState) {
-        if (newState != mGrabbedState) {
-            if (newState != OnTriggerListener.NO_HANDLE) {
-                vibrate();
-            }
-            mGrabbedState = newState;
-            if (mOnTriggerListener != null) {
-                if (newState == OnTriggerListener.NO_HANDLE) {
-                    mOnTriggerListener.onReleased(this, OnTriggerListener.CENTER_HANDLE);
-                } else {
-                    mOnTriggerListener.onGrabbed(this, OnTriggerListener.CENTER_HANDLE);
-                }
-                mOnTriggerListener.onGrabbedStateChange(this, newState);
-            }
-        }
-    }
-
-    private boolean trySwitchToFirstTouchState(float x, float y) {
-        final float tx = x - mWaveCenterX;
-        final float ty = y - mWaveCenterY;
-        if (mAlwaysTrackFinger || dist2(tx,ty) <= getScaledTapRadiusSquared()) {
-            if (DEBUG) Log.v(TAG, "** Handle HIT");
-            switchToState(STATE_FIRST_TOUCH, x, y);
-            moveHandleTo(tx, ty, false);
-            mDragging = true;
-            return true;
-        }
-        return false;
-    }
-
-    private void assignDefaultsIfNeeded() {
-        if (mOuterRadius == 0.0f) {
-            mOuterRadius = Math.max(mOuterRing.getWidth(), mOuterRing.getHeight())/2.0f;
-        }
-        if (mSnapMargin == 0.0f) {
-            mSnapMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
-                    SNAP_MARGIN_DEFAULT, getContext().getResources().getDisplayMetrics());
-        }
-    }
-
-    private void computeInsets(int dx, int dy) {
-        final int layoutDirection = getLayoutDirection();
-        final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
-
-        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
-            case Gravity.LEFT:
-                mHorizontalInset = 0;
-                break;
-            case Gravity.RIGHT:
-                mHorizontalInset = dx;
-                break;
-            case Gravity.CENTER_HORIZONTAL:
-            default:
-                mHorizontalInset = dx / 2;
-                break;
-        }
-        switch (absoluteGravity & Gravity.VERTICAL_GRAVITY_MASK) {
-            case Gravity.TOP:
-                mVerticalInset = 0;
-                break;
-            case Gravity.BOTTOM:
-                mVerticalInset = dy;
-                break;
-            case Gravity.CENTER_VERTICAL:
-            default:
-                mVerticalInset = dy / 2;
-                break;
-        }
-    }
-
-    @Override
-    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-        super.onLayout(changed, left, top, right, bottom);
-        final int width = right - left;
-        final int height = bottom - top;
-
-        // Target placement width/height. This puts the targets on the greater of the ring
-        // width or the specified outer radius.
-        final float placementWidth = Math.max(mOuterRing.getWidth(), 2 * mOuterRadius);
-        final float placementHeight = Math.max(mOuterRing.getHeight(), 2 * mOuterRadius);
-        float newWaveCenterX = mHorizontalInset
-                + Math.max(width, mMaxTargetWidth + placementWidth) / 2;
-        float newWaveCenterY = mVerticalInset
-                + Math.max(height, + mMaxTargetHeight + placementHeight) / 2;
-
-        if (mInitialLayout) {
-            hideChevrons();
-            hideTargets(false, false);
-            moveHandleTo(0, 0, false);
-            mInitialLayout = false;
-        }
-
-        mOuterRing.setPositionX(newWaveCenterX);
-        mOuterRing.setPositionY(newWaveCenterY);
-
-        mHandleDrawable.setPositionX(newWaveCenterX);
-        mHandleDrawable.setPositionY(newWaveCenterY);
-
-        updateTargetPositions(newWaveCenterX, newWaveCenterY);
-        updateChevronPositions(newWaveCenterX, newWaveCenterY);
-
-        mWaveCenterX = newWaveCenterX;
-        mWaveCenterY = newWaveCenterY;
-
-        if (DEBUG) dump();
-    }
-
-    private void updateTargetPositions(float centerX, float centerY) {
-        // Reposition the target drawables if the view changed.
-        ArrayList<TargetDrawable> targets = mTargetDrawables;
-        final int size = targets.size();
-        final float alpha = (float) (-2.0f * Math.PI / size);
-        for (int i = 0; i < size; i++) {
-            final TargetDrawable targetIcon = targets.get(i);
-            final float angle = alpha * i;
-            targetIcon.setPositionX(centerX);
-            targetIcon.setPositionY(centerY);
-            targetIcon.setX(mOuterRadius * (float) Math.cos(angle));
-            targetIcon.setY(mOuterRadius * (float) Math.sin(angle));
-        }
-    }
-
-    private void updateChevronPositions(float centerX, float centerY) {
-        ArrayList<TargetDrawable> chevrons = mChevronDrawables;
-        final int size = chevrons.size();
-        for (int i = 0; i < size; i++) {
-            TargetDrawable target = chevrons.get(i);
-            if (target != null) {
-                target.setPositionX(centerX);
-                target.setPositionY(centerY);
-            }
-        }
-    }
-
-    private void hideChevrons() {
-        ArrayList<TargetDrawable> chevrons = mChevronDrawables;
-        final int size = chevrons.size();
-        for (int i = 0; i < size; i++) {
-            TargetDrawable chevron = chevrons.get(i);
-            if (chevron != null) {
-                chevron.setAlpha(0.0f);
-            }
-        }
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        mOuterRing.draw(canvas);
-        final int ntargets = mTargetDrawables.size();
-        for (int i = 0; i < ntargets; i++) {
-            TargetDrawable target = mTargetDrawables.get(i);
-            if (target != null) {
-                target.draw(canvas);
-            }
-        }
-        final int nchevrons = mChevronDrawables.size();
-        for (int i = 0; i < nchevrons; i++) {
-            TargetDrawable chevron = mChevronDrawables.get(i);
-            if (chevron != null) {
-                chevron.draw(canvas);
-            }
-        }
-        mHandleDrawable.draw(canvas);
-    }
-
-    public void setOnTriggerListener(OnTriggerListener listener) {
-        mOnTriggerListener = listener;
-    }
-
-    private float square(float d) {
-        return d * d;
-    }
-
-    private float dist2(float dx, float dy) {
-        return dx*dx + dy*dy;
-    }
-
-    private float getScaledTapRadiusSquared() {
-        final float scaledTapRadius;
-        if (AccessibilityManager.getInstance(mContext).isEnabled()) {
-            scaledTapRadius = TAP_RADIUS_SCALE_ACCESSIBILITY_ENABLED * mTapRadius;
-        } else {
-            scaledTapRadius = mTapRadius;
-        }
-        return square(scaledTapRadius);
-    }
-
-    private void announceTargets() {
-        StringBuilder utterance = new StringBuilder();
-        final int targetCount = mTargetDrawables.size();
-        for (int i = 0; i < targetCount; i++) {
-            String targetDescription = getTargetDescription(i);
-            String directionDescription = getDirectionDescription(i);
-            if (!TextUtils.isEmpty(targetDescription)
-                    && !TextUtils.isEmpty(directionDescription)) {
-                String text = String.format(directionDescription, targetDescription);
-                utterance.append(text);
-            }
-            if (utterance.length() > 0) {
-                announceText(utterance.toString());
-            }
-        }
-    }
-
-    private void announceText(String text) {
-        setContentDescription(text);
-        sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
-        setContentDescription(null);
-    }
-
-    private String getTargetDescription(int index) {
-        if (mTargetDescriptions == null || mTargetDescriptions.isEmpty()) {
-            mTargetDescriptions = loadDescriptions(mTargetDescriptionsResourceId);
-            if (mTargetDrawables.size() != mTargetDescriptions.size()) {
-                Log.w(TAG, "The number of target drawables must be"
-                        + " euqal to the number of target descriptions.");
-                return null;
-            }
-        }
-        return mTargetDescriptions.get(index);
-    }
-
-    private String getDirectionDescription(int index) {
-        if (mDirectionDescriptions == null || mDirectionDescriptions.isEmpty()) {
-            mDirectionDescriptions = loadDescriptions(mDirectionDescriptionsResourceId);
-            if (mTargetDrawables.size() != mDirectionDescriptions.size()) {
-                Log.w(TAG, "The number of target drawables must be"
-                        + " euqal to the number of direction descriptions.");
-                return null;
-            }
-        }
-        return mDirectionDescriptions.get(index);
-    }
-
-    private ArrayList<String> loadDescriptions(int resourceId) {
-        TypedArray array = getContext().getResources().obtainTypedArray(resourceId);
-        final int count = array.length();
-        ArrayList<String> targetContentDescriptions = new ArrayList<String>(count);
-        for (int i = 0; i < count; i++) {
-            String contentDescription = array.getString(i);
-            targetContentDescriptions.add(contentDescription);
-        }
-        array.recycle();
-        return targetContentDescriptions;
-    }
-
-    public int getResourceIdForTarget(int index) {
-        final TargetDrawable drawable = mTargetDrawables.get(index);
-        return drawable == null ? 0 : drawable.getResourceId();
-    }
-
-    public void setEnableTarget(int resourceId, boolean enabled) {
-        for (int i = 0; i < mTargetDrawables.size(); i++) {
-            final TargetDrawable target = mTargetDrawables.get(i);
-            if (target.getResourceId() == resourceId) {
-                target.setEnabled(enabled);
-                break; // should never be more than one match
-            }
-        }
-    }
-
-    /**
-     * Gets the position of a target in the array that matches the given resource.
-     * @param resourceId
-     * @return the index or -1 if not found
-     */
-    public int getTargetPosition(int resourceId) {
-        for (int i = 0; i < mTargetDrawables.size(); i++) {
-            final TargetDrawable target = mTargetDrawables.get(i);
-            if (target.getResourceId() == resourceId) {
-                return i; // should never be more than one match
-            }
-        }
-        return -1;
-    }
-
-    private boolean replaceTargetDrawables(Resources res, int existingResourceId,
-            int newResourceId) {
-        if (existingResourceId == 0 || newResourceId == 0) {
-            return false;
-        }
-
-        boolean result = false;
-        final ArrayList<TargetDrawable> drawables = mTargetDrawables;
-        final int size = drawables.size();
-        for (int i = 0; i < size; i++) {
-            final TargetDrawable target = drawables.get(i);
-            if (target != null && target.getResourceId() == existingResourceId) {
-                target.setDrawable(res, newResourceId);
-                result = true;
-            }
-        }
-
-        if (result) {
-            requestLayout(); // in case any given drawable's size changes
-        }
-
-        return result;
-    }
-
-    /**
-     * Searches the given package for a resource to use to replace the Drawable on the
-     * target with the given resource id
-     * @param component of the .apk that contains the resource
-     * @param name of the metadata in the .apk
-     * @param existingResId the resource id of the target to search for
-     * @return true if found in the given package and replaced at least one target Drawables
-     */
-    public boolean replaceTargetDrawablesIfPresent(ComponentName component, String name,
-                int existingResId) {
-        if (existingResId == 0) return false;
-
-        try {
-            PackageManager packageManager = mContext.getPackageManager();
-            // Look for the search icon specified in the activity meta-data
-            Bundle metaData = packageManager.getActivityInfo(
-                    component, PackageManager.GET_META_DATA).metaData;
-            if (metaData != null) {
-                int iconResId = metaData.getInt(name);
-                if (iconResId != 0) {
-                    Resources res = packageManager.getResourcesForActivity(component);
-                    return replaceTargetDrawables(res, existingResId, iconResId);
-                }
-            }
-        } catch (NameNotFoundException e) {
-            Log.w(TAG, "Failed to swap drawable; "
-                    + component.flattenToShortString() + " not found", e);
-        } catch (Resources.NotFoundException nfe) {
-            Log.w(TAG, "Failed to swap drawable from "
-                    + component.flattenToShortString(), nfe);
-        }
-        return false;
-    }
-}
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index 51c5a86..711f28a 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -151,7 +151,8 @@
 	android_content_res_ObbScanner.cpp \
 	android_content_res_Configuration.cpp \
 	android_animation_PropertyValuesHolder.cpp \
-	com_android_internal_net_NetworkStatsFactory.cpp
+	com_android_internal_net_NetworkStatsFactory.cpp \
+	com_android_internal_os_Zygote.cpp
 
 LOCAL_C_INCLUDES += \
 	$(JNI_H_INCLUDE) \
@@ -177,7 +178,8 @@
 	external/harfbuzz_ng/src \
 	external/zlib \
 	frameworks/opt/emoji \
-	libcore/include
+	libcore/include \
+	$(call include-path-for, audio-utils) \
 
 LOCAL_SHARED_LIBRARIES := \
 	libmemtrack \
@@ -213,7 +215,8 @@
 	libjpeg \
 	libusbhost \
 	libharfbuzz_ng \
-	libz
+	libz \
+	libaudioutils \
 
 ifeq ($(USE_OPENGL_RENDERER),true)
 	LOCAL_SHARED_LIBRARIES += libhwui
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 9a7a5f9..aa635c6 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -178,6 +178,7 @@
 extern int register_android_animation_PropertyValuesHolder(JNIEnv *env);
 extern int register_com_android_internal_content_NativeLibraryHelper(JNIEnv *env);
 extern int register_com_android_internal_net_NetworkStatsFactory(JNIEnv *env);
+extern int register_com_android_internal_os_Zygote(JNIEnv *env);
 
 static AndroidRuntime* gCurRuntime = NULL;
 
@@ -228,9 +229,10 @@
 
 /*static*/ JavaVM* AndroidRuntime::mJavaVM = NULL;
 
-
-AndroidRuntime::AndroidRuntime() :
-        mExitWithoutCleanup(false)
+AndroidRuntime::AndroidRuntime(char* argBlockStart, const size_t argBlockLength) :
+        mExitWithoutCleanup(false),
+        mArgBlockStart(argBlockStart),
+        mArgBlockLength(argBlockLength)
 {
     SkGraphics::Init();
     // this sets our preference for 16bit images during decode
@@ -265,13 +267,17 @@
     return jniRegisterNativeMethods(env, className, gMethods, numMethods);
 }
 
-status_t AndroidRuntime::callMain(const char* className,
-    jclass clazz, int argc, const char* const argv[])
+void AndroidRuntime::setArgv0(const char* argv0) {
+    strlcpy(mArgBlockStart, argv0, mArgBlockLength);
+}
+
+status_t AndroidRuntime::callMain(const String8& className, jclass clazz,
+    const Vector<String8>& args)
 {
     JNIEnv* env;
     jmethodID methodId;
 
-    ALOGD("Calling main entry %s", className);
+    ALOGD("Calling main entry %s", className.string());
 
     env = getJNIEnv();
     if (clazz == NULL || env == NULL) {
@@ -280,7 +286,7 @@
 
     methodId = env->GetStaticMethodID(clazz, "main", "([Ljava/lang/String;)V");
     if (methodId == NULL) {
-        ALOGE("ERROR: could not find method %s.main(String[])\n", className);
+        ALOGE("ERROR: could not find method %s.main(String[])\n", className.string());
         return UNKNOWN_ERROR;
     }
 
@@ -291,11 +297,12 @@
     jclass stringClass;
     jobjectArray strArray;
 
+    const size_t numArgs = args.size();
     stringClass = env->FindClass("java/lang/String");
-    strArray = env->NewObjectArray(argc, stringClass, NULL);
+    strArray = env->NewObjectArray(numArgs, stringClass, NULL);
 
-    for (int i = 0; i < argc; i++) {
-        jstring argStr = env->NewStringUTF(argv[i]);
+    for (size_t i = 0; i < numArgs; i++) {
+        jstring argStr = env->NewStringUTF(args[i].string());
         env->SetObjectArrayElement(strArray, i, argStr);
     }
 
@@ -867,20 +874,23 @@
  * Passes the main function two arguments, the class name and the specified
  * options string.
  */
-void AndroidRuntime::start(const char* className, const char* options)
+void AndroidRuntime::start(const char* className, const Vector<String8>& options)
 {
     ALOGD("\n>>>>>> AndroidRuntime START %s <<<<<<\n",
             className != NULL ? className : "(unknown)");
 
+    static const String8 startSystemServer("start-system-server");
+
     /*
      * 'startSystemServer == true' means runtime is obsolete and not run from
      * init.rc anymore, so we print out the boot start event here.
      */
-    if (strcmp(options, "start-system-server") == 0) {
-        /* track our progress through the boot sequence */
-        const int LOG_BOOT_PROGRESS_START = 3000;
-        LOG_EVENT_LONG(LOG_BOOT_PROGRESS_START,
-                       ns2ms(systemTime(SYSTEM_TIME_MONOTONIC)));
+    for (size_t i = 0; i < options.size(); ++i) {
+        if (options[i] == startSystemServer) {
+           /* track our progress through the boot sequence */
+           const int LOG_BOOT_PROGRESS_START = 3000;
+           LOG_EVENT_LONG(LOG_BOOT_PROGRESS_START,  ns2ms(systemTime(SYSTEM_TIME_MONOTONIC)));
+        }
     }
 
     const char* rootDir = getenv("ANDROID_ROOT");
@@ -921,17 +931,20 @@
     jclass stringClass;
     jobjectArray strArray;
     jstring classNameStr;
-    jstring optionsStr;
 
     stringClass = env->FindClass("java/lang/String");
     assert(stringClass != NULL);
-    strArray = env->NewObjectArray(2, stringClass, NULL);
+    strArray = env->NewObjectArray(options.size() + 1, stringClass, NULL);
     assert(strArray != NULL);
     classNameStr = env->NewStringUTF(className);
     assert(classNameStr != NULL);
     env->SetObjectArrayElement(strArray, 0, classNameStr);
-    optionsStr = env->NewStringUTF(options);
-    env->SetObjectArrayElement(strArray, 1, optionsStr);
+
+    for (size_t i = 0; i < options.size(); ++i) {
+        jstring optionsStr = env->NewStringUTF(options.itemAt(i).string());
+        assert(optionsStr != NULL);
+        env->SetObjectArrayElement(strArray, i + 1, optionsStr);
+    }
 
     /*
      * Start VM.  This thread becomes the main thread of the VM, and will
@@ -1244,6 +1257,7 @@
     REG_JNI(register_android_net_TrafficStats),
     REG_JNI(register_android_os_MemoryFile),
     REG_JNI(register_com_android_internal_os_ZygoteInit),
+    REG_JNI(register_com_android_internal_os_Zygote),
     REG_JNI(register_android_hardware_Camera),
     REG_JNI(register_android_hardware_camera2_CameraMetadata),
     REG_JNI(register_android_hardware_SensorManager),
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 310966c..e0fa9ba4 100644
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -329,7 +329,7 @@
     SkBitmap            result;

     JavaPixelAllocator  allocator(env);

 

-    if (!src->copyTo(&result, dstConfig, &allocator)) {

+    if (!src->copyTo(&result, SkBitmapConfigToColorType(dstConfig), &allocator)) {
         return NULL;

     }

     return GraphicsJNI::createBitmap(env, new SkBitmap(result), allocator.getStorageObj(),

diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp
index 2b9a5c4..7aa241a 100644
--- a/core/jni/android/graphics/BitmapFactory.cpp
+++ b/core/jni/android/graphics/BitmapFactory.cpp
@@ -7,6 +7,7 @@
 #include "SkImageDecoder.h"
 #include "SkImageRef_ashmem.h"
 #include "SkImageRef_GlobalPool.h"
+#include "SkMath.h"
 #include "SkPixelRef.h"
 #include "SkStream.h"
 #include "SkTemplates.h"
@@ -146,15 +147,15 @@
     return pr;
 }
 
-static SkBitmap::Config configForScaledOutput(SkBitmap::Config config) {
-    switch (config) {
-        case SkBitmap::kNo_Config:
-        case SkBitmap::kIndex8_Config:
-            return SkBitmap::kARGB_8888_Config;
+static SkColorType colorTypeForScaledOutput(SkColorType colorType) {
+    switch (colorType) {
+        case kUnknown_SkColorType:
+        case kIndex_8_SkColorType:
+            return kNative_8888_SkColorType;
         default:
             break;
     }
-    return config;
+    return colorType;
 }
 
 class ScaleCheckingAllocator : public SkBitmap::HeapAllocator {
@@ -165,8 +166,8 @@
 
     virtual bool allocPixelRef(SkBitmap* bitmap, SkColorTable* ctable) {
         // accounts for scale in final allocation, using eventual size and config
-        const int bytesPerPixel = SkBitmap::ComputeBytesPerPixel(
-                configForScaledOutput(bitmap->config()));
+        const int bytesPerPixel = SkColorTypeBytesPerPixel(
+                colorTypeForScaledOutput(bitmap->colorType()));
         const int requestedSize = bytesPerPixel *
                 int(bitmap->width() * mScale + 0.5f) *
                 int(bitmap->height() * mScale + 0.5f);
@@ -194,21 +195,28 @@
     }
 
     virtual bool allocPixelRef(SkBitmap* bitmap, SkColorTable* ctable) {
-        if (!bitmap->getSize64().is32() || bitmap->getSize() > mSize) {
-            ALOGW("bitmap marked for reuse (%d bytes) can't fit new bitmap (%d bytes)",
-                    mSize, bitmap->getSize());
+        const SkImageInfo& info = bitmap->info();
+        if (info.fColorType == kUnknown_SkColorType) {
+            ALOGW("unable to reuse a bitmap as the target has an unknown bitmap configuration");
             return false;
         }
 
-        SkImageInfo bitmapInfo;
-        if (!bitmap->asImageInfo(&bitmapInfo)) {
-            ALOGW("unable to reuse a bitmap as the target has an unknown bitmap configuration");
+        const int64_t size64 = info.getSafeSize64(bitmap->rowBytes());
+        if (!sk_64_isS32(size64)) {
+            ALOGW("bitmap is too large");
+            return false;
+        }
+
+        const size_t size = sk_64_asS32(size64);
+        if (size > mSize) {
+            ALOGW("bitmap marked for reuse (%d bytes) can't fit new bitmap (%d bytes)",
+                    mSize, size);
             return false;
         }
 
         // Create a new pixelref with the new ctable that wraps the previous pixelref
         SkPixelRef* pr = new AndroidPixelRef(*static_cast<AndroidPixelRef*>(mPixelRef),
-                bitmapInfo, bitmap->rowBytes(), ctable);
+                info, bitmap->rowBytes(), ctable);
 
         bitmap->setPixelRef(pr)->unref();
         // since we're already allocated, we lockPixels right away
@@ -416,12 +424,12 @@
         const float sy = scaledHeight / float(decodingBitmap.height());
 
         // TODO: avoid copying when scaled size equals decodingBitmap size
-        SkBitmap::Config config = configForScaledOutput(decodingBitmap.config());
+        SkColorType colorType = colorTypeForScaledOutput(decodingBitmap.colorType());
         // FIXME: If the alphaType is kUnpremul and the image has alpha, the
         // colors may not be correct, since Skia does not yet support drawing
         // to/from unpremultiplied bitmaps.
-        outputBitmap->setConfig(config, scaledWidth, scaledHeight, 0,
-                                decodingBitmap.alphaType());
+        outputBitmap->setConfig(SkImageInfo::Make(scaledWidth, scaledHeight,
+                colorType, decodingBitmap.alphaType()));
         if (!outputBitmap->allocPixels(outputAllocator, NULL)) {
             return nullObjectReturn("allocation failed for scaled bitmap");
         }
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp
index 098643b..ead2de3 100644
--- a/core/jni/android/graphics/BitmapRegionDecoder.cpp
+++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp
@@ -62,7 +62,7 @@
     bool decodeRegion(SkBitmap* bitmap, const SkIRect& rect,
                       SkBitmap::Config pref, int sampleSize) {
         fDecoder->setSampleSize(sampleSize);
-        return fDecoder->decodeRegion(bitmap, rect, pref);
+        return fDecoder->decodeSubset(bitmap, rect, pref);
     }
 
     SkImageDecoder* getDecoder() const { return fDecoder; }
diff --git a/core/jni/android/graphics/Camera.cpp b/core/jni/android/graphics/Camera.cpp
index 54d448e..ef57e3d 100644
--- a/core/jni/android/graphics/Camera.cpp
+++ b/core/jni/android/graphics/Camera.cpp
@@ -32,39 +32,39 @@
                              jfloat dx, jfloat dy, jfloat dz) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    v->translate(SkFloatToScalar(dx), SkFloatToScalar(dy), SkFloatToScalar(dz));
+    v->translate(dx, dy, dz);
 }
 
 static void Camera_rotateX(JNIEnv* env, jobject obj, jfloat degrees) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    v->rotateX(SkFloatToScalar(degrees));
+    v->rotateX(degrees);
 }
 
 static void Camera_rotateY(JNIEnv* env, jobject obj, jfloat degrees) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    v->rotateY(SkFloatToScalar(degrees));
+    v->rotateY(degrees);
 }
 
 static void Camera_rotateZ(JNIEnv* env, jobject obj, jfloat degrees) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    v->rotateZ(SkFloatToScalar(degrees));
+    v->rotateZ(degrees);
 }
 
 static void Camera_rotate(JNIEnv* env, jobject obj, jfloat x, jfloat y, jfloat z) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    v->rotateX(SkFloatToScalar(x));
-    v->rotateY(SkFloatToScalar(y));
-    v->rotateZ(SkFloatToScalar(z));
+    v->rotateX(x);
+    v->rotateY(y);
+    v->rotateZ(z);
 }
 
 static void Camera_setLocation(JNIEnv* env, jobject obj, jfloat x, jfloat y, jfloat z) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    v->setCameraLocation(SkFloatToScalar(x), SkFloatToScalar(y), SkFloatToScalar(z));
+    v->setCameraLocation(x, y, z);
 }
 
 static jfloat Camera_getLocationX(JNIEnv* env, jobject obj) {
@@ -103,8 +103,7 @@
                                   jfloat x, jfloat y, jfloat z) {
     jlong viewHandle = env->GetLongField(obj, gNativeInstanceFieldID);
     Sk3DView* v = reinterpret_cast<Sk3DView*>(viewHandle);
-    SkScalar dot = v->dotWithNormal(SkFloatToScalar(x), SkFloatToScalar(y),
-                                    SkFloatToScalar(z));
+    SkScalar dot = v->dotWithNormal(x, y, z);
     return SkScalarToFloat(dot);
 }
 
diff --git a/core/jni/android/graphics/Canvas.cpp b/core/jni/android/graphics/Canvas.cpp
index 7420055..5148266 100644
--- a/core/jni/android/graphics/Canvas.cpp
+++ b/core/jni/android/graphics/Canvas.cpp
@@ -65,6 +65,9 @@
     virtual void clipRect(const SkRect& rect, SkRegion::Op op, bool antialias) {
         m_dstCanvas->clipRect(rect, op, antialias);
     }
+    virtual void clipRRect(const SkRRect& rrect, SkRegion::Op op, bool antialias) {
+        m_dstCanvas->clipRRect(rrect, op, antialias);
+    }
     virtual void clipPath(const SkPath& path, SkRegion::Op op, bool antialias) {
         m_dstCanvas->clipPath(path, op, antialias);
     }
@@ -73,6 +76,12 @@
     SkCanvas* m_dstCanvas;
 };
 
+// Returns true if the SkCanvas's clip is non-empty.
+static jboolean hasNonEmptyClip(const SkCanvas& canvas) {
+    bool emptyClip = canvas.isClipEmpty();
+    return emptyClip ? JNI_FALSE : JNI_TRUE;
+}
+
 class SkCanvasGlue {
 public:
 
@@ -170,8 +179,7 @@
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkPaint* paint  = reinterpret_cast<SkPaint*>(paintHandle);
         SkRect bounds;
-        bounds.set(SkFloatToScalar(l), SkFloatToScalar(t), SkFloatToScalar(r),
-                   SkFloatToScalar(b));
+        bounds.set(l, t, r, b);
         int result = canvas->saveLayer(&bounds, paint,
                                       static_cast<SkCanvas::SaveFlags>(flags));
         return static_cast<jint>(result);
@@ -196,8 +204,7 @@
                                 jint alpha, jint flags) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkRect  bounds;
-        bounds.set(SkFloatToScalar(l), SkFloatToScalar(t), SkFloatToScalar(r),
-                   SkFloatToScalar(b));
+        bounds.set(l, t, r, b);
         int result = canvas->saveLayerAlpha(&bounds, alpha,
                                       static_cast<SkCanvas::SaveFlags>(flags));
         return static_cast<jint>(result);
@@ -231,29 +238,22 @@
 
     static void translate(JNIEnv* env, jobject jcanvas, jfloat dx, jfloat dy) {
         NPE_CHECK_RETURN_VOID(env, jcanvas);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->translate(dx_, dy_);
+        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->translate(dx, dy);
     }
 
     static void scale__FF(JNIEnv* env, jobject jcanvas, jfloat sx, jfloat sy) {
         NPE_CHECK_RETURN_VOID(env, jcanvas);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->scale(sx_, sy_);
+        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->scale(sx, sy);
     }
 
     static void rotate__F(JNIEnv* env, jobject jcanvas, jfloat degrees) {
         NPE_CHECK_RETURN_VOID(env, jcanvas);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->rotate(degrees_);
+        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->rotate(degrees);
     }
 
     static void skew__FF(JNIEnv* env, jobject jcanvas, jfloat sx, jfloat sy) {
         NPE_CHECK_RETURN_VOID(env, jcanvas);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->skew(sx_, sy_);
+        (void)GraphicsJNI::getNativeCanvas(env, jcanvas)->skew(sx, sy);
     }
 
     static void concat(JNIEnv* env, jobject, jlong canvasHandle,
@@ -278,11 +278,10 @@
                                   jfloat top, jfloat right, jfloat bottom) {
         NPE_CHECK_RETURN_ZERO(env, jcanvas);
         SkRect  r;
-        r.set(SkFloatToScalar(left), SkFloatToScalar(top),
-              SkFloatToScalar(right), SkFloatToScalar(bottom));
+        r.set(left, top, right, bottom);
         SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
-        bool result = c->clipRect(r);
-        return result ? JNI_TRUE : JNI_FALSE;
+        c->clipRect(r);
+        return hasNonEmptyClip(*c);
     }
 
     static jboolean clipRect_IIII(JNIEnv* env, jobject jcanvas, jint left,
@@ -291,8 +290,9 @@
         SkRect  r;
         r.set(SkIntToScalar(left), SkIntToScalar(top),
               SkIntToScalar(right), SkIntToScalar(bottom));
-        bool result = GraphicsJNI::getNativeCanvas(env, jcanvas)->clipRect(r);
-        return result ? JNI_TRUE : JNI_FALSE;
+        SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
+        c->clipRect(r);
+        return hasNonEmptyClip(*c);
     }
 
     static jboolean clipRect_RectF(JNIEnv* env, jobject jcanvas, jobject rectf) {
@@ -300,8 +300,8 @@
         NPE_CHECK_RETURN_ZERO(env, rectf);
         SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
         SkRect tmp;
-        bool result = c->clipRect(*GraphicsJNI::jrectf_to_rect(env, rectf, &tmp));
-        return result ? JNI_TRUE : JNI_FALSE;
+        c->clipRect(*GraphicsJNI::jrectf_to_rect(env, rectf, &tmp));
+        return hasNonEmptyClip(*c);
     }
 
     static jboolean clipRect_Rect(JNIEnv* env, jobject jcanvas, jobject rect) {
@@ -309,8 +309,8 @@
         NPE_CHECK_RETURN_ZERO(env, rect);
         SkCanvas* c = GraphicsJNI::getNativeCanvas(env, jcanvas);
         SkRect tmp;
-        bool result = c->clipRect(*GraphicsJNI::jrect_to_rect(env, rect, &tmp));
-        return result ? JNI_TRUE : JNI_FALSE;
+        c->clipRect(*GraphicsJNI::jrect_to_rect(env, rect, &tmp));
+        return hasNonEmptyClip(*c);
 
     }
 
@@ -319,27 +319,25 @@
                              jint op) {
         SkRect rect;
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
-        rect.set(SkFloatToScalar(left), SkFloatToScalar(top),
-                 SkFloatToScalar(right), SkFloatToScalar(bottom));
-        bool result = canvas->clipRect(rect, static_cast<SkRegion::Op>(op));
-        return result ? JNI_TRUE : JNI_FALSE;
-
+        rect.set(left, top, right, bottom);
+        canvas->clipRect(rect, static_cast<SkRegion::Op>(op));
+        return hasNonEmptyClip(*canvas);
     }
 
     static jboolean clipPath(JNIEnv* env, jobject, jlong canvasHandle,
                              jlong pathHandle, jint op) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
-        bool result = canvas->clipPath(*reinterpret_cast<SkPath*>(pathHandle),
-                                       static_cast<SkRegion::Op>(op));
-        return result ? JNI_TRUE : JNI_FALSE;
+        canvas->clipPath(*reinterpret_cast<SkPath*>(pathHandle),
+                static_cast<SkRegion::Op>(op));
+        return hasNonEmptyClip(*canvas);
     }
 
     static jboolean clipRegion(JNIEnv* env, jobject, jlong canvasHandle,
                                jlong deviceRgnHandle, jint op) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkRegion* deviceRgn = reinterpret_cast<SkRegion*>(deviceRgnHandle);
-        bool result = canvas->clipRegion(*deviceRgn, static_cast<SkRegion::Op>(op));
-        return result ? JNI_TRUE : JNI_FALSE;
+        canvas->clipRegion(*deviceRgn, static_cast<SkRegion::Op>(op));
+        return hasNonEmptyClip(*canvas);
     }
 
     static void setDrawFilter(JNIEnv* env, jobject, jlong canvasHandle,
@@ -353,7 +351,8 @@
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkRect rect_;
         GraphicsJNI::jrectf_to_rect(env, rect, &rect_);
-        return canvas->quickReject(rect_);
+        bool result = canvas->quickReject(rect_);
+        return result ? JNI_TRUE : JNI_FALSE;
     }
 
     static jboolean quickReject__Path(JNIEnv* env, jobject, jlong canvasHandle,
@@ -368,8 +367,7 @@
                                        jfloat bottom) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkRect r;
-        r.set(SkFloatToScalar(left), SkFloatToScalar(top),
-              SkFloatToScalar(right), SkFloatToScalar(bottom));
+        r.set(left, top, right, bottom);
         bool result = canvas->quickReject(r);
         return result ? JNI_TRUE : JNI_FALSE;
     }
@@ -431,7 +429,7 @@
         SkPoint* pts = storage.get();
         const float* src = floats + offset;
         for (int i = 0; i < count; i++) {
-            pts[i].set(SkFloatToScalar(src[0]), SkFloatToScalar(src[1]));
+            pts[i].set(src[0], src[1]);
             src += 2;
         }
         canvas->drawPoints(mode, count, pts, paint);
@@ -456,7 +454,7 @@
         SkCanvas* canvas = GraphicsJNI::getNativeCanvas(env, jcanvas);
         const SkPaint& paint = *GraphicsJNI::getNativePaint(env, jpaint);
 
-        canvas->drawPoint(SkFloatToScalar(x), SkFloatToScalar(y), paint);
+        canvas->drawPoint(x, y, paint);
     }
 
     static void drawLine__FFFFPaint(JNIEnv* env, jobject, jlong canvasHandle,
@@ -464,9 +462,7 @@
                                     jfloat stopY, jlong paintHandle) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
-        canvas->drawLine(SkFloatToScalar(startX), SkFloatToScalar(startY),
-                         SkFloatToScalar(stopX), SkFloatToScalar(stopY),
-                         *paint);
+        canvas->drawLine(startX, startY, stopX, stopY, *paint);
     }
 
     static void drawRect__RectFPaint(JNIEnv* env, jobject, jlong canvasHandle,
@@ -483,11 +479,7 @@
                                     jfloat bottom, jlong paintHandle) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
-        SkScalar left_ = SkFloatToScalar(left);
-        SkScalar top_ = SkFloatToScalar(top);
-        SkScalar right_ = SkFloatToScalar(right);
-        SkScalar bottom_ = SkFloatToScalar(bottom);
-        canvas->drawRectCoords(left_, top_, right_, bottom_, *paint);
+        canvas->drawRectCoords(left, top, right, bottom, *paint);
     }
 
     static void drawOval(JNIEnv* env, jobject, jlong canvasHandle, jobject joval,
@@ -503,8 +495,7 @@
                            jfloat cy, jfloat radius, jlong paintHandle) {
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
-        canvas->drawCircle(SkFloatToScalar(cx), SkFloatToScalar(cy),
-                           SkFloatToScalar(radius), *paint);
+        canvas->drawCircle(cx, cy, radius, *paint);
     }
 
     static void drawArc(JNIEnv* env, jobject, jlong canvasHandle, jobject joval,
@@ -514,8 +505,7 @@
         SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
         SkRect oval;
         GraphicsJNI::jrectf_to_rect(env, joval, &oval);
-        canvas->drawArc(oval, SkFloatToScalar(startAngle),
-                        SkFloatToScalar(sweepAngle), useCenter, *paint);
+        canvas->drawArc(oval, startAngle, sweepAngle, useCenter, *paint);
     }
 
     static void drawRoundRect(JNIEnv* env, jobject, jlong canvasHandle,
@@ -525,8 +515,7 @@
         SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
         SkRect rect;
         GraphicsJNI::jrectf_to_rect(env, jrect, &rect);
-        canvas->drawRoundRect(rect, SkFloatToScalar(rx), SkFloatToScalar(ry),
-                              *paint);
+        canvas->drawRoundRect(rect, rx, ry, *paint);
     }
 
     static void drawPath(JNIEnv* env, jobject, jlong canvasHandle, jlong pathHandle,
@@ -545,8 +534,6 @@
         SkCanvas* canvas = reinterpret_cast<SkCanvas*>(canvasHandle);
         SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
         SkPaint* paint = reinterpret_cast<SkPaint*>(paintHandle);
-        SkScalar left_ = SkFloatToScalar(left);
-        SkScalar top_ = SkFloatToScalar(top);
 
         if (canvasDensity == bitmapDensity || canvasDensity == 0
                 || bitmapDensity == 0) {
@@ -556,14 +543,14 @@
                     filteredPaint = *paint;
                 }
                 filteredPaint.setFilterLevel(SkPaint::kLow_FilterLevel);
-                canvas->drawBitmap(*bitmap, left_, top_, &filteredPaint);
+                canvas->drawBitmap(*bitmap, left, top, &filteredPaint);
             } else {
-                canvas->drawBitmap(*bitmap, left_, top_, paint);
+                canvas->drawBitmap(*bitmap, left, top, paint);
             }
         } else {
             canvas->save();
-            SkScalar scale = SkFloatToScalar(canvasDensity / (float)bitmapDensity);
-            canvas->translate(left_, top_);
+            SkScalar scale = canvasDensity / (float)bitmapDensity;
+            canvas->translate(left, top);
             canvas->scale(scale, scale);
 
             SkPaint filteredPaint;
@@ -645,8 +632,7 @@
             return;
         }
 
-        canvas->drawBitmap(bitmap, SkFloatToScalar(x), SkFloatToScalar(y),
-                           paint);
+        canvas->drawBitmap(bitmap, x, y, paint);
     }
 
     static void drawBitmapMatrix(JNIEnv* env, jobject, jlong canvasHandle,
@@ -680,9 +666,6 @@
             indices [ptCount * sizeof(uint16_t)]
         */
         ssize_t storageSize = ptCount * sizeof(SkPoint); // texs[]
-#ifdef SK_SCALAR_IS_FIXED
-        storageSize += ptCount * sizeof(SkPoint);  // storage for verts
-#endif
         storageSize += indexCount * sizeof(uint16_t);  // indices[]
 
         SkAutoMalloc storage(storageSize);
@@ -693,16 +676,7 @@
         verts = (SkPoint*)(vertA.ptr() + vertIndex);
         indices = (uint16_t*)(texs + ptCount);
 #else
-        verts = texs + ptCount;
-        indices = (uint16_t*)(verts + ptCount);
-        // convert floats to fixed
-        {
-            const float* src = vertA.ptr() + vertIndex;
-            for (int i = 0; i < ptCount; i++) {
-                verts[i].set(SkFloatToFixed(src[0]), SkFloatToFixed(src[1]));
-                src += 2;
-            }
-        }
+        SkASSERT(false);
 #endif
 
         // cons up texture coordinates and indices
@@ -804,25 +778,7 @@
             texs = (SkPoint*)(texA.ptr() + texIndex);
         }
 #else
-        int count = ptCount;    // for verts
-        if (jtexs != NULL) {
-            count += ptCount;   // += for texs
-        }
-        SkAutoMalloc storage(count * sizeof(SkPoint));
-        verts = (SkPoint*)storage.get();
-        const float* src = vertA.ptr() + vertIndex;
-        for (int i = 0; i < ptCount; i++) {
-            verts[i].set(SkFloatToFixed(src[0]), SkFloatToFixed(src[1]));
-            src += 2;
-        }
-        if (jtexs != NULL) {
-            texs = verts + ptCount;
-            src = texA.ptr() + texIndex;
-            for (int i = 0; i < ptCount; i++) {
-                texs[i].set(SkFloatToFixed(src[0]), SkFloatToFixed(src[1]));
-                src += 2;
-            }
-        }
+        SkASSERT(false);
 #endif
 
         const SkColor* colors = NULL;
@@ -878,8 +834,8 @@
             MinikinFontSkia *mfs = static_cast<MinikinFontSkia *>(layout->getFont(i));
             skFace = mfs->GetSkTypeface();
             glyphs[i] = layout->getGlyphId(i);
-            pos[i].fX = SkFloatToScalar(x + layout->getX(i));
-            pos[i].fY = SkFloatToScalar(y + layout->getY(i));
+            pos[i].fX = x + layout->getX(i);
+            pos[i].fY = y + layout->getY(i);
             if (i > 0 && skFace != lastFace) {
                 paint->setTypeface(lastFace);
                 canvas->drawPosText(glyphs + start, (i - start) << 1, pos + start, *paint);
@@ -956,22 +912,18 @@
         flags = paint->getFlags();
     }
     if (flags & (SkPaint::kUnderlineText_Flag | SkPaint::kStrikeThruText_Flag)) {
-        SkScalar left = SkFloatToScalar(x);
-        SkScalar right = SkFloatToScalar(x + length);
+        SkScalar left = x;
+        SkScalar right = x + length;
         float textSize = paint->getTextSize();
         float strokeWidth = fmax(textSize * kStdUnderline_Thickness, 1.0f);
         if (flags & SkPaint::kUnderlineText_Flag) {
-            SkScalar top = SkFloatToScalar(y + textSize * kStdUnderline_Offset
-                    - 0.5f * strokeWidth);
-            SkScalar bottom = SkFloatToScalar(y + textSize * kStdUnderline_Offset
-                    + 0.5f * strokeWidth);
+            SkScalar top = y + textSize * kStdUnderline_Offset - 0.5f * strokeWidth;
+            SkScalar bottom = y + textSize * kStdUnderline_Offset + 0.5f * strokeWidth;
             canvas->drawRectCoords(left, top, right, bottom, *paint);
         }
         if (flags & SkPaint::kStrikeThruText_Flag) {
-            SkScalar top = SkFloatToScalar(y + textSize * kStdStrikeThru_Offset
-                    - 0.5f * strokeWidth);
-            SkScalar bottom = SkFloatToScalar(y + textSize * kStdStrikeThru_Offset
-                    + 0.5f * strokeWidth);
+            SkScalar top = y + textSize * kStdStrikeThru_Offset - 0.5f * strokeWidth;
+            SkScalar bottom = y + textSize * kStdStrikeThru_Offset + 0.5f * strokeWidth;
             canvas->drawRectCoords(left, top, right, bottom, *paint);
         }
     }
@@ -987,8 +939,8 @@
             int index, int count, jfloat x, jfloat y, int flags, SkPaint* paint) {
         SkPoint* posPtr = new SkPoint[count];
         for (int indx = 0; indx < count; indx++) {
-            posPtr[indx].fX = SkFloatToScalar(x + posArray[indx * 2]);
-            posPtr[indx].fY = SkFloatToScalar(y + posArray[indx * 2 + 1]);
+            posPtr[indx].fX = x + posArray[indx * 2];
+            posPtr[indx].fY = y + posArray[indx * 2 + 1];
         }
         canvas->drawPosText(glyphArray, count << 1, posPtr, *paint);
         delete[] posPtr;
@@ -1036,8 +988,8 @@
         SkPoint* posPtr = posCount > 0 ? new SkPoint[posCount] : NULL;
         int indx;
         for (indx = 0; indx < posCount; indx++) {
-            posPtr[indx].fX = SkFloatToScalar(posArray[indx << 1]);
-            posPtr[indx].fY = SkFloatToScalar(posArray[(indx << 1) + 1]);
+            posPtr[indx].fX = posArray[indx << 1];
+            posPtr[indx].fY = posArray[(indx << 1) + 1];
         }
 
         SkPaint::TextEncoding encoding = paint->getTextEncoding();
@@ -1067,8 +1019,8 @@
         SkPoint* posPtr = posCount > 0 ? new SkPoint[posCount] : NULL;
 
         for (int indx = 0; indx < posCount; indx++) {
-            posPtr[indx].fX = SkFloatToScalar(posArray[indx << 1]);
-            posPtr[indx].fY = SkFloatToScalar(posArray[(indx << 1) + 1]);
+            posPtr[indx].fX = posArray[indx << 1];
+            posPtr[indx].fY = posArray[(indx << 1) + 1];
         }
 
         SkPaint::TextEncoding encoding = paint->getTextEncoding();
diff --git a/core/jni/android/graphics/ColorFilter.cpp b/core/jni/android/graphics/ColorFilter.cpp
index 09589bd..c66c844 100644
--- a/core/jni/android/graphics/ColorFilter.cpp
+++ b/core/jni/android/graphics/ColorFilter.cpp
@@ -50,14 +50,10 @@
         AutoJavaFloatArray autoArray(env, jarray, 20);
         const float* src = autoArray.ptr();
 
-#ifdef SK_SCALAR_IS_FIXED
-        SkFixed array[20];
-        for (int i = 0; i < 20; i++) {
-            array[i] = SkFloatToScalar(src[i]);
-        }
-        return reinterpret_cast<jlong>(new SkColorMatrixFilter(array));
+#ifdef SK_SCALAR_IS_FLOAT
+        return reinterpret_cast<jlong>(SkColorMatrixFilter::Create(src));
 #else
-        return reinterpret_cast<jlong>(new SkColorMatrixFilter(src));
+        SkASSERT(false);
 #endif
     }
 };
diff --git a/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp b/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp
index 2cb1015..b64ab0d 100644
--- a/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp
+++ b/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp
@@ -175,10 +175,14 @@
 class SkJavaOutputStream : public SkWStream {
 public:
     SkJavaOutputStream(JNIEnv* env, jobject stream, jbyteArray storage)
-        : fEnv(env), fJavaOutputStream(stream), fJavaByteArray(storage) {
+        : fEnv(env), fJavaOutputStream(stream), fJavaByteArray(storage), fBytesWritten(0) {
         fCapacity = env->GetArrayLength(storage);
     }
 
+    virtual size_t bytesWritten() const {
+        return fBytesWritten;
+    }
+
     virtual bool write(const void* buffer, size_t size) {
         JNIEnv* env = fEnv;
         jbyteArray storage = fJavaByteArray;
@@ -213,6 +217,7 @@
 
             buffer = (void*)((char*)buffer + requested);
             size -= requested;
+            fBytesWritten += requested;
         }
         return true;
     }
@@ -226,6 +231,7 @@
     jobject     fJavaOutputStream;  // the caller owns this object
     jbyteArray  fJavaByteArray;     // the caller owns this object
     jint        fCapacity;
+    size_t      fBytesWritten;
 };
 
 SkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream,
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index 98edbdb..e4c74b2 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -6,6 +6,7 @@
 
 #include "SkCanvas.h"
 #include "SkDevice.h"
+#include "SkMath.h"
 #include "SkPicture.h"
 #include "SkRegion.h"
 #include <android_runtime/AndroidRuntime.h>
@@ -227,10 +228,10 @@
 {
     SkASSERT(env->IsInstanceOf(obj, gRectF_class));
 
-    r->set(SkFloatToScalar(env->GetFloatField(obj, gRectF_leftFieldID)),
-           SkFloatToScalar(env->GetFloatField(obj, gRectF_topFieldID)),
-           SkFloatToScalar(env->GetFloatField(obj, gRectF_rightFieldID)),
-           SkFloatToScalar(env->GetFloatField(obj, gRectF_bottomFieldID)));
+    r->set(env->GetFloatField(obj, gRectF_leftFieldID),
+           env->GetFloatField(obj, gRectF_topFieldID),
+           env->GetFloatField(obj, gRectF_rightFieldID),
+           env->GetFloatField(obj, gRectF_bottomFieldID));
     return r;
 }
 
@@ -276,8 +277,8 @@
 {
     SkASSERT(env->IsInstanceOf(obj, gPointF_class));
 
-    point->set(SkFloatToScalar(env->GetIntField(obj, gPointF_xFieldID)),
-               SkFloatToScalar(env->GetIntField(obj, gPointF_yFieldID)));
+    point->set(env->GetIntField(obj, gPointF_xFieldID),
+               env->GetIntField(obj, gPointF_yFieldID));
     return point;
 }
 
@@ -564,21 +565,20 @@
 
 jbyteArray GraphicsJNI::allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
                                              SkColorTable* ctable) {
-    Sk64 size64 = bitmap->getSize64();
-    if (size64.isNeg() || !size64.is32()) {
-        jniThrowException(env, "java/lang/IllegalArgumentException",
-                          "bitmap size exceeds 32bits");
+    const SkImageInfo& info = bitmap->info();
+    if (info.fColorType == kUnknown_SkColorType) {
+        doThrowIAE(env, "unknown bitmap configuration");
         return NULL;
     }
 
-    SkImageInfo bitmapInfo;
-    if (!bitmap->asImageInfo(&bitmapInfo)) {
-        jniThrowException(env, "java/lang/IllegalArgumentException",
-                "unknown bitmap configuration");
+    const int64_t size64 = info.getSafeSize64(bitmap->rowBytes());
+    if (!sk_64_isS32(size64)) {
+        doThrowIAE(env, "bitmap size exceeds 32bits");
         return NULL;
     }
+    const size_t size = sk_64_asS32(size64);
+    SkASSERT(size == info.getSafeSize(bitmap->rowBytes()));
 
-    size_t size = size64.get32();
     jbyteArray arrayObj = (jbyteArray) env->CallObjectMethod(gVMRuntime,
                                                              gVMRuntime_newNonMovableArray,
                                                              gByte_class, size);
@@ -591,7 +591,7 @@
         return NULL;
     }
     SkASSERT(addr);
-    SkPixelRef* pr = new AndroidPixelRef(env, bitmapInfo, (void*) addr,
+    SkPixelRef* pr = new AndroidPixelRef(env, info, (void*) addr,
             bitmap->rowBytes(), arrayObj, ctable);
     bitmap->setPixelRef(pr)->unref();
     // since we're already allocated, we lockPixels right away
diff --git a/core/jni/android/graphics/Interpolator.cpp b/core/jni/android/graphics/Interpolator.cpp
index ca04dfe..455f867 100644
--- a/core/jni/android/graphics/Interpolator.cpp
+++ b/core/jni/android/graphics/Interpolator.cpp
@@ -25,26 +25,15 @@
 static void Interpolator_setKeyFrame(JNIEnv* env, jobject clazz, jlong interpHandle, jint index, jint msec, jfloatArray valueArray, jfloatArray blendArray)
 {
     SkInterpolator* interp = reinterpret_cast<SkInterpolator*>(interpHandle);
-    SkScalar    blendStorage[4];
-    SkScalar*   blend = NULL;
 
-    AutoJavaFloatArray  autoValues(env, valueArray);
-    float* values = autoValues.ptr();
-    int i, n = autoValues.length();
-
-    SkAutoSTMalloc<16, SkScalar>  storage(n);
-    SkScalar*                     scalars = storage.get();
-
-    for (i = 0; i < n; i++)
-        scalars[i] = SkFloatToScalar(values[i]);
-
-    if (blendArray != NULL) {
-        AutoJavaFloatArray autoBlend(env, blendArray, 4);
-        values = autoBlend.ptr();
-        for (i = 0; i < 4; i++)
-            blendStorage[i] = SkFloatToScalar(values[i]);
-        blend = blendStorage;
-    }
+    AutoJavaFloatArray autoValues(env, valueArray);
+    AutoJavaFloatArray autoBlend(env, blendArray, 4);
+#ifdef SK_SCALAR_IS_FLOAT
+    SkScalar* scalars = autoValues.ptr();
+    SkScalar* blend = autoBlend.ptr();
+#else
+    #error Need to convert float array to SkScalar array before calling the following function.
+#endif
 
     interp->setKeyFrame(index, msec, scalars, blend);
 }
@@ -55,7 +44,7 @@
     if (repeatCount > 32000)
         repeatCount = 32000;
 
-    interp->setRepeatCount(SkFloatToScalar(repeatCount));
+    interp->setRepeatCount(repeatCount);
     interp->setMirror(mirror != 0);
 }
 
diff --git a/core/jni/android/graphics/LayerRasterizer.cpp b/core/jni/android/graphics/LayerRasterizer.cpp
index 29e7db1..79dc275 100644
--- a/core/jni/android/graphics/LayerRasterizer.cpp
+++ b/core/jni/android/graphics/LayerRasterizer.cpp
@@ -12,7 +12,7 @@
         const SkPaint* paint = reinterpret_cast<SkPaint *>(paintHandle);
         SkASSERT(layer);
         SkASSERT(paint);
-        layer->addLayer(*paint, SkFloatToScalar(dx), SkFloatToScalar(dy));
+        layer->addLayer(*paint, dx, dy);
     }
 };
 
diff --git a/core/jni/android/graphics/MaskFilter.cpp b/core/jni/android/graphics/MaskFilter.cpp
index 5573366..2113330 100644
--- a/core/jni/android/graphics/MaskFilter.cpp
+++ b/core/jni/android/graphics/MaskFilter.cpp
@@ -20,7 +20,7 @@
     }
 
     static jlong createBlur(JNIEnv* env, jobject, jfloat radius, jint blurStyle) {
-        SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(SkFloatToScalar(radius));
+        SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(radius);
         SkMaskFilter* filter = SkBlurMaskFilter::Create(
                 (SkBlurMaskFilter::BlurStyle)blurStyle, sigma);
         ThrowIAE_IfNull(env, filter);
@@ -33,19 +33,19 @@
         AutoJavaFloatArray autoDir(env, dirArray, 3);
         float* values = autoDir.ptr();
         for (int i = 0; i < 3; i++) {
-            direction[i] = SkFloatToScalar(values[i]);
+            direction[i] = values[i];
         }
 
-        SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(SkFloatToScalar(radius));
+        SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(radius);
         SkMaskFilter* filter =  SkBlurMaskFilter::CreateEmboss(sigma,
-                direction, SkFloatToScalar(ambient), SkFloatToScalar(specular));
+                direction, ambient, specular);
         ThrowIAE_IfNull(env, filter);
         return reinterpret_cast<jlong>(filter);
     }
 
     static jlong createTable(JNIEnv* env, jobject, jbyteArray jtable) {
         AutoJavaByteArray autoTable(env, jtable, 256);
-        SkMaskFilter* filter = new SkTableMaskFilter((const uint8_t*)autoTable.ptr());
+        SkMaskFilter* filter = SkTableMaskFilter::Create((const uint8_t*)autoTable.ptr());
         return reinterpret_cast<jlong>(filter);
     }
 
diff --git a/core/jni/android/graphics/Matrix.cpp b/core/jni/android/graphics/Matrix.cpp
index 6ae9fea..23af860 100644
--- a/core/jni/android/graphics/Matrix.cpp
+++ b/core/jni/android/graphics/Matrix.cpp
@@ -65,187 +65,127 @@
     }
      static void setTranslate(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->setTranslate(dx_, dy_);
+        obj->setTranslate(dx, dy);
     }
      static void setScale__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        obj->setScale(sx_, sy_, px_, py_);
+        obj->setScale(sx, sy, px, py);
     }
      static void setScale__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        obj->setScale(sx_, sy_);
+        obj->setScale(sx, sy);
     }
      static void setRotate__FFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        obj->setRotate(degrees_, px_, py_);
+        obj->setRotate(degrees, px, py);
     }
      static void setRotate__F(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        obj->setRotate(degrees_);
+        obj->setRotate(degrees);
     }
      static void setSinCos__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sinValue, jfloat cosValue, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sinValue_ = SkFloatToScalar(sinValue);
-        SkScalar cosValue_ = SkFloatToScalar(cosValue);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        obj->setSinCos(sinValue_, cosValue_, px_, py_);
+        obj->setSinCos(sinValue, cosValue, px, py);
     }
      static void setSinCos__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sinValue, jfloat cosValue) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sinValue_ = SkFloatToScalar(sinValue);
-        SkScalar cosValue_ = SkFloatToScalar(cosValue);
-        obj->setSinCos(sinValue_, cosValue_);
+        obj->setSinCos(sinValue, cosValue);
     }
      static void setSkew__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar kx_ = SkFloatToScalar(kx);
-        SkScalar ky_ = SkFloatToScalar(ky);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        obj->setSkew(kx_, ky_, px_, py_);
+        obj->setSkew(kx, ky, px, py);
     }
      static void setSkew__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar kx_ = SkFloatToScalar(kx);
-        SkScalar ky_ = SkFloatToScalar(ky);
-        obj->setSkew(kx_, ky_);
+        obj->setSkew(kx, ky);
     }
-     static jboolean setConcat(JNIEnv* env, jobject clazz, jlong objHandle, jlong aHandle, jlong bHandle) {
+     static void setConcat(JNIEnv* env, jobject clazz, jlong objHandle, jlong aHandle, jlong bHandle) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
         SkMatrix* a = reinterpret_cast<SkMatrix*>(aHandle);
         SkMatrix* b = reinterpret_cast<SkMatrix*>(bHandle);
-        return obj->setConcat(*a, *b) ? JNI_TRUE : JNI_FALSE;
+        obj->setConcat(*a, *b);
     }
 
-    static jboolean preTranslate(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
+    static void preTranslate(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        return obj->preTranslate(dx_, dy_) ? JNI_TRUE : JNI_FALSE;
+        obj->preTranslate(dx, dy);
     }
 
-    static jboolean preScale__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy, jfloat px, jfloat py) {
+    static void preScale__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        return obj->preScale(sx_, sy_, px_, py_) ? JNI_TRUE : JNI_FALSE;
+        obj->preScale(sx, sy, px, py);
     }
 
-    static jboolean preScale__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy) {
+    static void preScale__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        return obj->preScale(sx_, sy_) ? JNI_TRUE : JNI_FALSE;
+        obj->preScale(sx, sy);
     }
 
-    static jboolean preRotate__FFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees, jfloat px, jfloat py) {
+    static void preRotate__FFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        return obj->preRotate(degrees_, px_, py_) ? JNI_TRUE : JNI_FALSE;
+        obj->preRotate(degrees, px, py);
     }
 
-    static jboolean preRotate__F(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees) {
+    static void preRotate__F(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        return obj->preRotate(degrees_) ? JNI_TRUE : JNI_FALSE;
+        obj->preRotate(degrees);
     }
 
-    static jboolean preSkew__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky, jfloat px, jfloat py) {
+    static void preSkew__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar kx_ = SkFloatToScalar(kx);
-        SkScalar ky_ = SkFloatToScalar(ky);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        return obj->preSkew(kx_, ky_, px_, py_) ? JNI_TRUE : JNI_FALSE;
+        obj->preSkew(kx, ky, px, py);
     }
 
-    static jboolean preSkew__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky) {
+    static void preSkew__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar kx_ = SkFloatToScalar(kx);
-        SkScalar ky_ = SkFloatToScalar(ky);
-        return obj->preSkew(kx_, ky_) ? JNI_TRUE : JNI_FALSE;
+        obj->preSkew(kx, ky);
     }
 
-    static jboolean preConcat(JNIEnv* env, jobject clazz, jlong objHandle, jlong otherHandle) {
+    static void preConcat(JNIEnv* env, jobject clazz, jlong objHandle, jlong otherHandle) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
         SkMatrix* other = reinterpret_cast<SkMatrix*>(otherHandle);
-        return obj->preConcat(*other) ? JNI_TRUE : JNI_FALSE;
+        obj->preConcat(*other);
     }
 
-    static jboolean postTranslate(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
+    static void postTranslate(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        return obj->postTranslate(dx_, dy_) ? JNI_TRUE : JNI_FALSE;
+        obj->postTranslate(dx, dy);
     }
 
-    static jboolean postScale__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy, jfloat px, jfloat py) {
+    static void postScale__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        return obj->postScale(sx_, sy_, px_, py_) ? JNI_TRUE : JNI_FALSE;
+        obj->postScale(sx, sy, px, py);
     }
 
-    static jboolean postScale__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy) {
+    static void postScale__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat sx, jfloat sy) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar sx_ = SkFloatToScalar(sx);
-        SkScalar sy_ = SkFloatToScalar(sy);
-        return obj->postScale(sx_, sy_) ? JNI_TRUE : JNI_FALSE;
+        obj->postScale(sx, sy);
     }
 
-    static jboolean postRotate__FFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees, jfloat px, jfloat py) {
+    static void postRotate__FFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        return obj->postRotate(degrees_, px_, py_) ? JNI_TRUE : JNI_FALSE;
+        obj->postRotate(degrees, px, py);
     }
 
-    static jboolean postRotate__F(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees) {
+    static void postRotate__F(JNIEnv* env, jobject clazz, jlong objHandle, jfloat degrees) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar degrees_ = SkFloatToScalar(degrees);
-        return obj->postRotate(degrees_) ? JNI_TRUE : JNI_FALSE;
+        obj->postRotate(degrees);
     }
 
-    static jboolean postSkew__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky, jfloat px, jfloat py) {
+    static void postSkew__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat kx, jfloat ky, jfloat px, jfloat py) {
         SkMatrix* obj = reinterpret_cast<SkMatrix*>(objHandle);
-        SkScalar kx_ = SkFloatToScalar(kx);
-        SkScalar ky_ = SkFloatToScalar(ky);
-        SkScalar px_ = SkFloatToScalar(px);
-        SkScalar py_ = SkFloatToScalar(py);
-        return obj->postSkew(kx_, ky_, px_, py_) ? JNI_TRUE : JNI_FALSE;
+        obj->postSkew(kx, ky, px, py);
     }
 
-    static jboolean postSkew__FF(JNIEnv* env, jobject clazz, jlong matrixHandle, jfloat kx, jfloat ky) {
+    static void postSkew__FF(JNIEnv* env, jobject clazz, jlong matrixHandle, jfloat kx, jfloat ky) {
         SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixHandle);
-        SkScalar kx_ = SkFloatToScalar(kx);
-        SkScalar ky_ = SkFloatToScalar(ky);
-        return matrix->postSkew(kx_, ky_) ? JNI_TRUE : JNI_FALSE;
+        matrix->postSkew(kx, ky);
     }
 
-    static jboolean postConcat(JNIEnv* env, jobject clazz, jlong matrixHandle, jlong otherHandle) {
+    static void postConcat(JNIEnv* env, jobject clazz, jlong matrixHandle, jlong otherHandle) {
         SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixHandle);
         SkMatrix* other = reinterpret_cast<SkMatrix*>(otherHandle);
-        return matrix->postConcat(*other) ? JNI_TRUE : JNI_FALSE;
+        matrix->postConcat(*other);
     }
 
     static jboolean setRectToRect(JNIEnv* env, jobject clazz, jlong matrixHandle, jobject src, jobject dst, jint stfHandle) {
@@ -272,18 +212,11 @@
         float* dst = autoDst.ptr() + dstIndex;
         bool result;
 
-#ifdef SK_SCALAR_IS_FIXED        
-        SkPoint srcPt[4], dstPt[4];
-        for (int i = 0; i < ptCount; i++) {
-            int x = i << 1;
-            int y = x + 1;
-            srcPt[i].set(SkFloatToScalar(src[x]), SkFloatToScalar(src[y]));
-            dstPt[i].set(SkFloatToScalar(dst[x]), SkFloatToScalar(dst[y]));
-        }
-        result = matrix->setPolyToPoly(srcPt, dstPt, ptCount);
-#else
+#ifdef SK_SCALAR_IS_FLOAT
         result = matrix->setPolyToPoly((const SkPoint*)src, (const SkPoint*)dst,
                                      ptCount);
+#else
+        SkASSERT(false);
 #endif
         return result ? JNI_TRUE : JNI_FALSE;
     }
@@ -304,36 +237,15 @@
         AutoJavaFloatArray autoDst(env, dst, dstIndex + (ptCount << 1), kRW_JNIAccess);
         float* srcArray = autoSrc.ptr() + srcIndex;
         float* dstArray = autoDst.ptr() + dstIndex;
-        
-#ifdef SK_SCALAR_IS_FIXED        
-        // we allocate twice the count, 1 set for src, 1 for dst
-        SkAutoSTMalloc<32, SkPoint> storage(ptCount * 2);
-        SkPoint* pts = storage.get();
-        SkPoint* srcPt = pts;
-        SkPoint* dstPt = pts + ptCount;
-        
-        int i;
-        for (i = 0; i < ptCount; i++) {
-            srcPt[i].set(SkFloatToScalar(srcArray[i << 1]),
-                         SkFloatToScalar(srcArray[(i << 1) + 1]));
-        }
-        
-        if (isPts)
-            matrix->mapPoints(dstPt, srcPt, ptCount);
-        else
-            matrix->mapVectors(dstPt, srcPt, ptCount);
-        
-        for (i = 0; i < ptCount; i++) {
-            dstArray[i << 1]  = SkScalarToFloat(dstPt[i].fX);
-            dstArray[(i << 1) + 1]  = SkScalarToFloat(dstPt[i].fY);
-        }
-#else
+#ifdef SK_SCALAR_IS_FLOAT
         if (isPts)
             matrix->mapPoints((SkPoint*)dstArray, (const SkPoint*)srcArray,
                               ptCount);
         else
             matrix->mapVectors((SkVector*)dstArray, (const SkVector*)srcArray,
                                ptCount);
+#else
+        SkASSERT(false);
 #endif
     }
 
@@ -349,25 +261,19 @@
     static jfloat mapRadius(JNIEnv* env, jobject clazz, jlong matrixHandle, jfloat radius) {
         SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixHandle);
         float result;
-        result = SkScalarToFloat(matrix->mapRadius(SkFloatToScalar(radius)));
+        result = SkScalarToFloat(matrix->mapRadius(radius));
         return static_cast<jfloat>(result);
     }
     static void getValues(JNIEnv* env, jobject clazz, jlong matrixHandle, jfloatArray values) {
         SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixHandle);
         AutoJavaFloatArray autoValues(env, values, 9, kRW_JNIAccess);
         float* dst = autoValues.ptr();
-
-#ifdef SK_SCALAR_IS_FIXED
-        for (int i = 0; i < 6; i++) {
-            dst[i] = SkFixedToFloat(matrix->get(i));
-        }
-        for (int j = 6; j < 9; j++) {
-            dst[j] = SkFractToFloat(matrix->get(j));
-        }
-#else
+#ifdef SK_SCALAR_IS_FLOAT
         for (int i = 0; i < 9; i++) {
             dst[i] = matrix->get(i);
         }
+#else
+        SkASSERT(false);
 #endif
     }
 
@@ -376,17 +282,12 @@
         AutoJavaFloatArray autoValues(env, values, 9, kRO_JNIAccess);
         const float* src = autoValues.ptr();
 
-#ifdef SK_SCALAR_IS_FIXED
-        for (int i = 0; i < 6; i++) {
-            matrix->set(i, SkFloatToFixed(src[i]));
-        }
-        for (int j = 6; j < 9; j++) {
-            matrix->set(j, SkFloatToFract(src[j]));
-        }
-#else
+#ifdef SK_SCALAR_IS_FLOAT
         for (int i = 0; i < 9; i++) {
             matrix->set(i, src[i]);
         }
+#else
+        SkASSERT(false);
 #endif
     }
 
@@ -413,23 +314,23 @@
     {"native_setSinCos","(JFF)V", (void*) SkMatrixGlue::setSinCos__FF},
     {"native_setSkew","(JFFFF)V", (void*) SkMatrixGlue::setSkew__FFFF},
     {"native_setSkew","(JFF)V", (void*) SkMatrixGlue::setSkew__FF},
-    {"native_setConcat","(JJJ)Z", (void*) SkMatrixGlue::setConcat},
-    {"native_preTranslate","(JFF)Z", (void*) SkMatrixGlue::preTranslate},
-    {"native_preScale","(JFFFF)Z", (void*) SkMatrixGlue::preScale__FFFF},
-    {"native_preScale","(JFF)Z", (void*) SkMatrixGlue::preScale__FF},
-    {"native_preRotate","(JFFF)Z", (void*) SkMatrixGlue::preRotate__FFF},
-    {"native_preRotate","(JF)Z", (void*) SkMatrixGlue::preRotate__F},
-    {"native_preSkew","(JFFFF)Z", (void*) SkMatrixGlue::preSkew__FFFF},
-    {"native_preSkew","(JFF)Z", (void*) SkMatrixGlue::preSkew__FF},
-    {"native_preConcat","(JJ)Z", (void*) SkMatrixGlue::preConcat},
-    {"native_postTranslate","(JFF)Z", (void*) SkMatrixGlue::postTranslate},
-    {"native_postScale","(JFFFF)Z", (void*) SkMatrixGlue::postScale__FFFF},
-    {"native_postScale","(JFF)Z", (void*) SkMatrixGlue::postScale__FF},
-    {"native_postRotate","(JFFF)Z", (void*) SkMatrixGlue::postRotate__FFF},
-    {"native_postRotate","(JF)Z", (void*) SkMatrixGlue::postRotate__F},
-    {"native_postSkew","(JFFFF)Z", (void*) SkMatrixGlue::postSkew__FFFF},
-    {"native_postSkew","(JFF)Z", (void*) SkMatrixGlue::postSkew__FF},
-    {"native_postConcat","(JJ)Z", (void*) SkMatrixGlue::postConcat},
+    {"native_setConcat","(JJJ)V", (void*) SkMatrixGlue::setConcat},
+    {"native_preTranslate","(JFF)V", (void*) SkMatrixGlue::preTranslate},
+    {"native_preScale","(JFFFF)V", (void*) SkMatrixGlue::preScale__FFFF},
+    {"native_preScale","(JFF)V", (void*) SkMatrixGlue::preScale__FF},
+    {"native_preRotate","(JFFF)V", (void*) SkMatrixGlue::preRotate__FFF},
+    {"native_preRotate","(JF)V", (void*) SkMatrixGlue::preRotate__F},
+    {"native_preSkew","(JFFFF)V", (void*) SkMatrixGlue::preSkew__FFFF},
+    {"native_preSkew","(JFF)V", (void*) SkMatrixGlue::preSkew__FF},
+    {"native_preConcat","(JJ)V", (void*) SkMatrixGlue::preConcat},
+    {"native_postTranslate","(JFF)V", (void*) SkMatrixGlue::postTranslate},
+    {"native_postScale","(JFFFF)V", (void*) SkMatrixGlue::postScale__FFFF},
+    {"native_postScale","(JFF)V", (void*) SkMatrixGlue::postScale__FF},
+    {"native_postRotate","(JFFF)V", (void*) SkMatrixGlue::postRotate__FFF},
+    {"native_postRotate","(JF)V", (void*) SkMatrixGlue::postRotate__F},
+    {"native_postSkew","(JFFFF)V", (void*) SkMatrixGlue::postSkew__FFFF},
+    {"native_postSkew","(JFF)V", (void*) SkMatrixGlue::postSkew__FF},
+    {"native_postConcat","(JJ)V", (void*) SkMatrixGlue::postConcat},
     {"native_setRectToRect","(JLandroid/graphics/RectF;Landroid/graphics/RectF;I)Z", (void*) SkMatrixGlue::setRectToRect},
     {"native_setPolyToPoly","(J[FI[FII)Z", (void*) SkMatrixGlue::setPolyToPoly},
     {"native_invert","(JJ)Z", (void*) SkMatrixGlue::invert},
diff --git a/core/jni/android/graphics/Movie.cpp b/core/jni/android/graphics/Movie.cpp
index 461f723..5f9a9b7 100644
--- a/core/jni/android/graphics/Movie.cpp
+++ b/core/jni/android/graphics/Movie.cpp
@@ -74,12 +74,10 @@
 
     SkMovie* m = J2Movie(env, movie);
     SkCanvas* c = GraphicsJNI::getNativeCanvas(env, canvas);
-    SkScalar sx = SkFloatToScalar(fx);
-    SkScalar sy = SkFloatToScalar(fy);
     const SkBitmap& b = m->bitmap();
     const SkPaint* p = jpaint ? GraphicsJNI::getNativePaint(env, jpaint) : NULL;
 
-    c->drawBitmap(b, sx, sy, p);
+    c->drawBitmap(b, fx, fy, p);
 }
 
 static jobject movie_decodeAsset(JNIEnv* env, jobject clazz, jlong native_asset) {
diff --git a/core/jni/android/graphics/NinePatch.cpp b/core/jni/android/graphics/NinePatch.cpp
index 871e24d..855d267 100644
--- a/core/jni/android/graphics/NinePatch.cpp
+++ b/core/jni/android/graphics/NinePatch.cpp
@@ -97,7 +97,7 @@
         } else {
             canvas->save();
 
-            SkScalar scale = SkFloatToScalar(destDensity / (float)srcDensity);
+            SkScalar scale = destDensity / (float)srcDensity;
             canvas->translate(bounds.fLeft, bounds.fTop);
             canvas->scale(scale, scale);
 
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index 51990d5..f77a389 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -206,7 +206,7 @@
 
     static void setStrokeWidth(JNIEnv* env, jobject paint, jfloat width) {
         NPE_CHECK_RETURN_VOID(env, paint);
-        GraphicsJNI::getNativePaint(env, paint)->setStrokeWidth(SkFloatToScalar(width));
+        GraphicsJNI::getNativePaint(env, paint)->setStrokeWidth(width);
     }
 
     static jfloat getStrokeMiter(JNIEnv* env, jobject paint) {
@@ -216,7 +216,7 @@
 
     static void setStrokeMiter(JNIEnv* env, jobject paint, jfloat miter) {
         NPE_CHECK_RETURN_VOID(env, paint);
-        GraphicsJNI::getNativePaint(env, paint)->setStrokeMiter(SkFloatToScalar(miter));
+        GraphicsJNI::getNativePaint(env, paint)->setStrokeMiter(miter);
     }
 
     static jint getStrokeCap(JNIEnv* env, jobject clazz, jlong objHandle) {
@@ -364,7 +364,7 @@
 
     static void setTextSize(JNIEnv* env, jobject paint, jfloat textSize) {
         NPE_CHECK_RETURN_VOID(env, paint);
-        GraphicsJNI::getNativePaint(env, paint)->setTextSize(SkFloatToScalar(textSize));
+        GraphicsJNI::getNativePaint(env, paint)->setTextSize(textSize);
     }
 
     static jfloat getTextScaleX(JNIEnv* env, jobject paint) {
@@ -374,7 +374,7 @@
 
     static void setTextScaleX(JNIEnv* env, jobject paint, jfloat scaleX) {
         NPE_CHECK_RETURN_VOID(env, paint);
-        GraphicsJNI::getNativePaint(env, paint)->setTextScaleX(SkFloatToScalar(scaleX));
+        GraphicsJNI::getNativePaint(env, paint)->setTextScaleX(scaleX);
     }
 
     static jfloat getTextSkewX(JNIEnv* env, jobject paint) {
@@ -384,7 +384,7 @@
 
     static void setTextSkewX(JNIEnv* env, jobject paint, jfloat skewX) {
         NPE_CHECK_RETURN_VOID(env, paint);
-        GraphicsJNI::getNativePaint(env, paint)->setTextSkewX(SkFloatToScalar(skewX));
+        GraphicsJNI::getNativePaint(env, paint)->setTextSkewX(skewX);
     }
 
     static jfloat ascent(JNIEnv* env, jobject paint) {
@@ -422,16 +422,16 @@
         SkPaint::FontMetrics metrics;
 
         GraphicsJNI::getNativePaint(env, paint)->getFontMetrics(&metrics);
-        int ascent = SkScalarRound(metrics.fAscent);
-        int descent = SkScalarRound(metrics.fDescent);
-        int leading = SkScalarRound(metrics.fLeading);
+        int ascent = SkScalarRoundToInt(metrics.fAscent);
+        int descent = SkScalarRoundToInt(metrics.fDescent);
+        int leading = SkScalarRoundToInt(metrics.fLeading);
 
         if (metricsObj) {
             SkASSERT(env->IsInstanceOf(metricsObj, gFontMetricsInt_class));
-            env->SetIntField(metricsObj, gFontMetricsInt_fieldID.top, SkScalarFloor(metrics.fTop));
+            env->SetIntField(metricsObj, gFontMetricsInt_fieldID.top, SkScalarFloorToInt(metrics.fTop));
             env->SetIntField(metricsObj, gFontMetricsInt_fieldID.ascent, ascent);
             env->SetIntField(metricsObj, gFontMetricsInt_fieldID.descent, descent);
-            env->SetIntField(metricsObj, gFontMetricsInt_fieldID.bottom, SkScalarCeil(metrics.fBottom));
+            env->SetIntField(metricsObj, gFontMetricsInt_fieldID.bottom, SkScalarCeilToInt(metrics.fBottom));
             env->SetIntField(metricsObj, gFontMetricsInt_fieldID.leading, leading);
         }
         return descent - ascent + leading;
@@ -747,10 +747,7 @@
             paint->setLooper(NULL);
         }
         else {
-            paint->setLooper(new SkBlurDrawLooper(SkFloatToScalar(radius),
-                                                  SkFloatToScalar(dx),
-                                                  SkFloatToScalar(dy),
-                                                  (SkColor)color))->unref();
+            paint->setLooper(new SkBlurDrawLooper(radius, dx, dy, (SkColor)color))->unref();
         }
     }
 
@@ -764,7 +761,7 @@
         }
         SkScalar     measured;
         size_t       bytes = paint.breakText(value->getGlyphs(), value->getGlyphsCount() << 1,
-                                   SkFloatToScalar(maxWidth), &measured, tbd);
+                maxWidth, &measured, tbd);
         SkASSERT((bytes & 1) == 0);
 
         if (jmeasured && env->GetArrayLength(jmeasured) > 0) {
diff --git a/core/jni/android/graphics/Path.cpp b/core/jni/android/graphics/Path.cpp
index e580d36..1ad1a8a 100644
--- a/core/jni/android/graphics/Path.cpp
+++ b/core/jni/android/graphics/Path.cpp
@@ -93,18 +93,18 @@
         return obj->isEmpty();
     }
  
-    static jboolean isRect(JNIEnv* env, jobject clazz, jlong objHandle, jobject rect) {
-        SkRect rect_;
+    static jboolean isRect(JNIEnv* env, jobject clazz, jlong objHandle, jobject jrect) {
+        SkRect rect;
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        jboolean result = obj->isRect(&rect_);
-        GraphicsJNI::rect_to_jrectf(rect_, env, rect);
+        jboolean result = obj->isRect(&rect);
+        GraphicsJNI::rect_to_jrectf(rect, env, jrect);
         return result;
     }
  
-    static void computeBounds(JNIEnv* env, jobject clazz, jlong objHandle, jobject bounds) {
+    static void computeBounds(JNIEnv* env, jobject clazz, jlong objHandle, jobject jbounds) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        const SkRect& bounds_ = obj->getBounds();
-        GraphicsJNI::rect_to_jrectf(bounds_, env, bounds);
+        const SkRect& bounds = obj->getBounds();
+        GraphicsJNI::rect_to_jrectf(bounds, env, jbounds);
     }
  
     static void incReserve(JNIEnv* env, jobject clazz, jlong objHandle, jint extraPtCount) {
@@ -114,79 +114,49 @@
  
     static void moveTo__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat x, jfloat y) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar x_ = SkFloatToScalar(x);
-        SkScalar y_ = SkFloatToScalar(y);
-        obj->moveTo(x_, y_);
+        obj->moveTo(x, y);
     }
  
     static void rMoveTo(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->rMoveTo(dx_, dy_);
+        obj->rMoveTo(dx, dy);
     }
  
     static void lineTo__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat x, jfloat y) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar x_ = SkFloatToScalar(x);
-        SkScalar y_ = SkFloatToScalar(y);
-        obj->lineTo(x_, y_);
+        obj->lineTo(x, y);
     }
  
     static void rLineTo(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->rLineTo(dx_, dy_);
+        obj->rLineTo(dx, dy);
     }
  
     static void quadTo__FFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat x1, jfloat y1, jfloat x2, jfloat y2) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar x1_ = SkFloatToScalar(x1);
-        SkScalar y1_ = SkFloatToScalar(y1);
-        SkScalar x2_ = SkFloatToScalar(x2);
-        SkScalar y2_ = SkFloatToScalar(y2);
-        obj->quadTo(x1_, y1_, x2_, y2_);
+        obj->quadTo(x1, y1, x2, y2);
     }
  
     static void rQuadTo(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx1, jfloat dy1, jfloat dx2, jfloat dy2) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar dx1_ = SkFloatToScalar(dx1);
-        SkScalar dy1_ = SkFloatToScalar(dy1);
-        SkScalar dx2_ = SkFloatToScalar(dx2);
-        SkScalar dy2_ = SkFloatToScalar(dy2);
-        obj->rQuadTo(dx1_, dy1_, dx2_, dy2_);
+        obj->rQuadTo(dx1, dy1, dx2, dy2);
     }
  
     static void cubicTo__FFFFFF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat x1, jfloat y1, jfloat x2, jfloat y2, jfloat x3, jfloat y3) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar x1_ = SkFloatToScalar(x1);
-        SkScalar y1_ = SkFloatToScalar(y1);
-        SkScalar x2_ = SkFloatToScalar(x2);
-        SkScalar y2_ = SkFloatToScalar(y2);
-        SkScalar x3_ = SkFloatToScalar(x3);
-        SkScalar y3_ = SkFloatToScalar(y3);
-        obj->cubicTo(x1_, y1_, x2_, y2_, x3_, y3_);
+        obj->cubicTo(x1, y1, x2, y2, x3, y3);
     }
  
     static void rCubicTo(JNIEnv* env, jobject clazz, jlong objHandle, jfloat x1, jfloat y1, jfloat x2, jfloat y2, jfloat x3, jfloat y3) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar x1_ = SkFloatToScalar(x1);
-        SkScalar y1_ = SkFloatToScalar(y1);
-        SkScalar x2_ = SkFloatToScalar(x2);
-        SkScalar y2_ = SkFloatToScalar(y2);
-        SkScalar x3_ = SkFloatToScalar(x3);
-        SkScalar y3_ = SkFloatToScalar(y3);
-        obj->rCubicTo(x1_, y1_, x2_, y2_, x3_, y3_);
+        obj->rCubicTo(x1, y1, x2, y2, x3, y3);
     }
  
     static void arcTo(JNIEnv* env, jobject clazz, jlong objHandle, jobject oval, jfloat startAngle, jfloat sweepAngle, jboolean forceMoveTo) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkRect oval_;
         GraphicsJNI::jrectf_to_rect(env, oval, &oval_);
-        SkScalar startAngle_ = SkFloatToScalar(startAngle);
-        SkScalar sweepAngle_ = SkFloatToScalar(sweepAngle);
-        obj->arcTo(oval_, startAngle_, sweepAngle_, forceMoveTo);
+        obj->arcTo(oval_, startAngle, sweepAngle, forceMoveTo);
     }
  
     static void close(JNIEnv* env, jobject clazz, jlong objHandle) {
@@ -194,22 +164,18 @@
         obj->close();
     }
  
-    static void addRect__RectFI(JNIEnv* env, jobject clazz, jlong objHandle, jobject rect, jint dirHandle) {
-        SkRect rect_;
+    static void addRect__RectFI(JNIEnv* env, jobject clazz, jlong objHandle, jobject jrect, jint dirHandle) {
+        SkRect rect;
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath::Direction dir = static_cast<SkPath::Direction>(dirHandle);
-        GraphicsJNI::jrectf_to_rect(env, rect, &rect_);
-        obj->addRect(rect_, dir);
+        GraphicsJNI::jrectf_to_rect(env, jrect, &rect);
+        obj->addRect(rect, dir);
     }
  
     static void addRect__FFFFI(JNIEnv* env, jobject clazz, jlong objHandle, jfloat left, jfloat top, jfloat right, jfloat bottom, jint dirHandle) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath::Direction dir = static_cast<SkPath::Direction>(dirHandle);
-        SkScalar left_ = SkFloatToScalar(left);
-        SkScalar top_ = SkFloatToScalar(top);
-        SkScalar right_ = SkFloatToScalar(right);
-        SkScalar bottom_ = SkFloatToScalar(bottom);
-        obj->addRect(left_, top_, right_, bottom_, dir);
+        obj->addRect(left, top, right, bottom, dir);
     }
  
     static void addOval(JNIEnv* env, jobject clazz, jlong objHandle, jobject oval, jint dirHandle) {
@@ -223,54 +189,44 @@
     static void addCircle(JNIEnv* env, jobject clazz, jlong objHandle, jfloat x, jfloat y, jfloat radius, jint dirHandle) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath::Direction dir = static_cast<SkPath::Direction>(dirHandle);
-        SkScalar x_ = SkFloatToScalar(x);
-        SkScalar y_ = SkFloatToScalar(y);
-        SkScalar radius_ = SkFloatToScalar(radius);
-        obj->addCircle(x_, y_, radius_, dir);
+        obj->addCircle(x, y, radius, dir);
     }
  
     static void addArc(JNIEnv* env, jobject clazz, jlong objHandle, jobject oval, jfloat startAngle, jfloat sweepAngle) {
         SkRect oval_;
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         GraphicsJNI::jrectf_to_rect(env, oval, &oval_);
-        SkScalar startAngle_ = SkFloatToScalar(startAngle);
-        SkScalar sweepAngle_ = SkFloatToScalar(sweepAngle);
-        obj->addArc(oval_, startAngle_, sweepAngle_);
+        obj->addArc(oval_, startAngle, sweepAngle);
     }
  
-    static void addRoundRectXY(JNIEnv* env, jobject clazz, jlong objHandle, jobject rect,
+    static void addRoundRectXY(JNIEnv* env, jobject clazz, jlong objHandle, jobject jrect,
             jfloat rx, jfloat ry, jint dirHandle) {
-        SkRect rect_;
+        SkRect rect;
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath::Direction dir = static_cast<SkPath::Direction>(dirHandle);
-        GraphicsJNI::jrectf_to_rect(env, rect, &rect_);
-        SkScalar rx_ = SkFloatToScalar(rx);
-        SkScalar ry_ = SkFloatToScalar(ry);
-        obj->addRoundRect(rect_, rx_, ry_, dir);
+        GraphicsJNI::jrectf_to_rect(env, jrect, &rect);
+        obj->addRoundRect(rect, rx, ry, dir);
     }
     
-    static void addRoundRect8(JNIEnv* env, jobject, jlong objHandle, jobject rect,
+    static void addRoundRect8(JNIEnv* env, jobject, jlong objHandle, jobject jrect,
             jfloatArray array, jint dirHandle) {
-        SkRect rect_;
+        SkRect rect;
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath::Direction dir = static_cast<SkPath::Direction>(dirHandle);
-        GraphicsJNI::jrectf_to_rect(env, rect, &rect_);
+        GraphicsJNI::jrectf_to_rect(env, jrect, &rect);
         AutoJavaFloatArray  afa(env, array, 8);
+#ifdef SK_SCALAR_IS_FLOAT
         const float* src = afa.ptr();
-        SkScalar dst[8];
-        
-        for (int i = 0; i < 8; i++) {
-            dst[i] = SkFloatToScalar(src[i]);
-        }
-        obj->addRoundRect(rect_, dst, dir);
+#else
+        #error Need to convert float array to SkScalar array before calling the following function.
+#endif
+        obj->addRoundRect(rect, src, dir);
     }
     
     static void addPath__PathFF(JNIEnv* env, jobject clazz, jlong objHandle, jlong srcHandle, jfloat dx, jfloat dy) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath* src = reinterpret_cast<SkPath*>(srcHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->addPath(*src, dx_, dy_);
+        obj->addPath(*src, dx, dy);
     }
  
     static void addPath__Path(JNIEnv* env, jobject clazz, jlong objHandle, jlong srcHandle) {
@@ -289,23 +245,17 @@
     static void offset__FFPath(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy, jlong dstHandle) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
         SkPath* dst = reinterpret_cast<SkPath*>(dstHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->offset(dx_, dy_, dst);
+        obj->offset(dx, dy, dst);
     }
  
     static void offset__FF(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->offset(dx_, dy_);
+        obj->offset(dx, dy);
     }
 
     static void setLastPoint(JNIEnv* env, jobject clazz, jlong objHandle, jfloat dx, jfloat dy) {
         SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
-        SkScalar dx_ = SkFloatToScalar(dx);
-        SkScalar dy_ = SkFloatToScalar(dy);
-        obj->setLastPt(dx_, dy_);
+        obj->setLastPt(dx, dy);
     }
  
     static void transform__MatrixPath(JNIEnv* env, jobject clazz, jlong objHandle, jlong matrixHandle, jlong dstHandle) {
diff --git a/core/jni/android/graphics/PathEffect.cpp b/core/jni/android/graphics/PathEffect.cpp
index 2803758..28d881d 100644
--- a/core/jni/android/graphics/PathEffect.cpp
+++ b/core/jni/android/graphics/PathEffect.cpp
@@ -20,7 +20,7 @@
                                      jlong outerHandle, jlong innerHandle) {
         SkPathEffect* outer = reinterpret_cast<SkPathEffect*>(outerHandle);
         SkPathEffect* inner = reinterpret_cast<SkPathEffect*>(innerHandle);
-        SkPathEffect* effect = new SkComposePathEffect(outer, inner);
+        SkPathEffect* effect = SkComposePathEffect::Create(outer, inner);
         return reinterpret_cast<jlong>(effect);
     }
 
@@ -28,22 +28,20 @@
                                  jlong firstHandle, jlong secondHandle) {
         SkPathEffect* first = reinterpret_cast<SkPathEffect*>(firstHandle);
         SkPathEffect* second = reinterpret_cast<SkPathEffect*>(secondHandle);
-        SkPathEffect* effect = new SkSumPathEffect(first, second);
+        SkPathEffect* effect = SkSumPathEffect::Create(first, second);
         return reinterpret_cast<jlong>(effect);
     }
 
     static jlong Dash_constructor(JNIEnv* env, jobject,
                                       jfloatArray intervalArray, jfloat phase) {
         AutoJavaFloatArray autoInterval(env, intervalArray);
-        int     count = autoInterval.length() & ~1;  // even number
-        float*  values = autoInterval.ptr();
-
-        SkAutoSTMalloc<32, SkScalar>    storage(count);
-        SkScalar*                       intervals = storage.get();
-        for (int i = 0; i < count; i++) {
-            intervals[i] = SkFloatToScalar(values[i]);
-        }
-        SkPathEffect* effect = new SkDashPathEffect(intervals, count, SkFloatToScalar(phase));
+        int         count = autoInterval.length() & ~1;  // even number
+#ifdef SK_SCALAR_IS_FLOAT
+        SkScalar*   intervals = autoInterval.ptr();
+#else
+        #error Need to convert float array to SkScalar array before calling the following function.
+#endif
+        SkPathEffect* effect = SkDashPathEffect::Create(intervals, count, phase);
         return reinterpret_cast<jlong>(effect);
     }
 
@@ -51,20 +49,19 @@
                   jlong shapeHandle, jfloat advance, jfloat phase, jint style) {
         const SkPath* shape = reinterpret_cast<SkPath*>(shapeHandle);
         SkASSERT(shape != NULL);
-        SkPathEffect* effect = new SkPath1DPathEffect(*shape, SkFloatToScalar(advance),
-                     SkFloatToScalar(phase), (SkPath1DPathEffect::Style)style);
+        SkPathEffect* effect = SkPath1DPathEffect::Create(*shape, advance, phase,
+                (SkPath1DPathEffect::Style)style);
         return reinterpret_cast<jlong>(effect);
     }
 
     static jlong Corner_constructor(JNIEnv* env, jobject, jfloat radius){
-        SkPathEffect* effect = new SkCornerPathEffect(SkFloatToScalar(radius));
+        SkPathEffect* effect = SkCornerPathEffect::Create(radius);
         return reinterpret_cast<jlong>(effect);
     }
 
     static jlong Discrete_constructor(JNIEnv* env, jobject,
                                       jfloat length, jfloat deviation) {
-        SkPathEffect* effect = new SkDiscretePathEffect(SkFloatToScalar(length),
-                                        SkFloatToScalar(deviation));
+        SkPathEffect* effect = SkDiscretePathEffect::Create(length, deviation);
         return reinterpret_cast<jlong>(effect);
     }
 
diff --git a/core/jni/android/graphics/PathMeasure.cpp b/core/jni/android/graphics/PathMeasure.cpp
index 8478a02..13f68a9 100644
--- a/core/jni/android/graphics/PathMeasure.cpp
+++ b/core/jni/android/graphics/PathMeasure.cpp
@@ -96,7 +96,7 @@
         SkScalar*   posPtr = pos ? tmpPos : NULL;
         SkScalar*   tanPtr = tan ? tmpTan : NULL;
         
-        if (!pair->fMeasure.getPosTan(SkFloatToScalar(dist), (SkPoint*)posPtr, (SkVector*)tanPtr)) {
+        if (!pair->fMeasure.getPosTan(dist, (SkPoint*)posPtr, (SkVector*)tanPtr)) {
             return JNI_FALSE;
         }
     
@@ -113,7 +113,7 @@
                           jlong matrixHandle, jint flags) {
         PathMeasurePair* pair = reinterpret_cast<PathMeasurePair*>(pairHandle);
         SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixHandle);
-        bool result = pair->fMeasure.getMatrix(SkFloatToScalar(dist), matrix, (SkPathMeasure::MatrixFlags)flags);
+        bool result = pair->fMeasure.getMatrix(dist, matrix, (SkPathMeasure::MatrixFlags)flags);
         return result ? JNI_TRUE : JNI_FALSE;
     }
 
@@ -121,7 +121,7 @@
                                jfloat stopF, jlong dstHandle, jboolean startWithMoveTo) {
         PathMeasurePair* pair = reinterpret_cast<PathMeasurePair*>(pairHandle);
         SkPath* dst = reinterpret_cast<SkPath*>(dstHandle);
-        bool result = pair->fMeasure.getSegment(SkFloatToScalar(startF), SkFloatToScalar(stopF), dst, startWithMoveTo);
+        bool result = pair->fMeasure.getSegment(startF, stopF, dst, startWithMoveTo);
         return result ? JNI_TRUE : JNI_FALSE;
     }
 
diff --git a/core/jni/android/graphics/Shader.cpp b/core/jni/android/graphics/Shader.cpp
index 1fe6358..c5e6053 100644
--- a/core/jni/android/graphics/Shader.cpp
+++ b/core/jni/android/graphics/Shader.cpp
@@ -39,12 +39,11 @@
 static jint Color_HSVToColor(JNIEnv* env, jobject, jint alpha, jfloatArray hsvArray)
 {
     AutoJavaFloatArray  autoHSV(env, hsvArray, 3);
-    float*      values = autoHSV.ptr();;
-    SkScalar    hsv[3];
-
-    for (int i = 0; i < 3; i++) {
-        hsv[i] = SkFloatToScalar(values[i]);
-    }
+#ifdef SK_SCALAR_IS_FLOAT
+    SkScalar*   hsv = autoHSV.ptr();
+#else
+    #error Need to convert float array to SkScalar array before calling the following function.
+#endif
 
     return static_cast<jint>(SkHSVToColor(alpha, hsv));
 }
@@ -120,28 +119,22 @@
                                     jintArray colorArray, jfloatArray posArray, jint tileMode)
 {
     SkPoint pts[2];
-    pts[0].set(SkFloatToScalar(x0), SkFloatToScalar(y0));
-    pts[1].set(SkFloatToScalar(x1), SkFloatToScalar(y1));
+    pts[0].set(x0, y0);
+    pts[1].set(x1, y1);
 
     size_t count = env->GetArrayLength(colorArray);
     const jint* colorValues = env->GetIntArrayElements(colorArray, NULL);
 
-    SkAutoSTMalloc<8, SkScalar> storage(posArray ? count : 0);
-    SkScalar* pos = NULL;
-
-    if (posArray) {
-        AutoJavaFloatArray autoPos(env, posArray, count);
-        const float* posValues = autoPos.ptr();
-        pos = (SkScalar*)storage.get();
-        for (size_t i = 0; i < count; i++) {
-            pos[i] = SkFloatToScalar(posValues[i]);
-        }
-    }
+    AutoJavaFloatArray autoPos(env, posArray, count);
+#ifdef SK_SCALAR_IS_FLOAT
+    SkScalar* pos = autoPos.ptr();
+#else
+    #error Need to convert float array to SkScalar array before calling the following function.
+#endif
 
     SkShader* shader = SkGradientShader::CreateLinear(pts,
-                                reinterpret_cast<const SkColor*>(colorValues),
-                                pos, count,
-                                static_cast<SkShader::TileMode>(tileMode));
+            reinterpret_cast<const SkColor*>(colorValues), pos, count,
+            static_cast<SkShader::TileMode>(tileMode));
 
     env->ReleaseIntArrayElements(colorArray, const_cast<jint*>(colorValues), JNI_ABORT);
     ThrowIAE_IfNull(env, shader);
@@ -252,8 +245,8 @@
                                     jint color0, jint color1, jint tileMode)
 {
     SkPoint pts[2];
-    pts[0].set(SkFloatToScalar(x0), SkFloatToScalar(y0));
-    pts[1].set(SkFloatToScalar(x1), SkFloatToScalar(y1));
+    pts[0].set(x0, y0);
+    pts[1].set(x1, y1);
 
     SkColor colors[2];
     colors[0] = color0;
@@ -270,27 +263,21 @@
 static jlong RadialGradient_create1(JNIEnv* env, jobject, jfloat x, jfloat y, jfloat radius,
         jintArray colorArray, jfloatArray posArray, jint tileMode) {
     SkPoint center;
-    center.set(SkFloatToScalar(x), SkFloatToScalar(y));
+    center.set(x, y);
 
     size_t      count = env->GetArrayLength(colorArray);
     const jint* colorValues = env->GetIntArrayElements(colorArray, NULL);
 
-    SkAutoSTMalloc<8, SkScalar> storage(posArray ? count : 0);
-    SkScalar*                   pos = NULL;
+    AutoJavaFloatArray autoPos(env, posArray, count);
+#ifdef SK_SCALAR_IS_FLOAT
+    SkScalar* pos = autoPos.ptr();
+#else
+    #error Need to convert float array to SkScalar array before calling the following function.
+#endif
 
-    if (posArray) {
-        AutoJavaFloatArray autoPos(env, posArray, count);
-        const float* posValues = autoPos.ptr();
-        pos = (SkScalar*)storage.get();
-        for (size_t i = 0; i < count; i++)
-            pos[i] = SkFloatToScalar(posValues[i]);
-    }
-
-    SkShader* shader = SkGradientShader::CreateRadial(center,
-                                SkFloatToScalar(radius),
-                                reinterpret_cast<const SkColor*>(colorValues),
-                                pos, count,
-                                static_cast<SkShader::TileMode>(tileMode));
+    SkShader* shader = SkGradientShader::CreateRadial(center, radius,
+            reinterpret_cast<const SkColor*>(colorValues), pos, count,
+            static_cast<SkShader::TileMode>(tileMode));
     env->ReleaseIntArrayElements(colorArray, const_cast<jint*>(colorValues),
                                  JNI_ABORT);
 
@@ -301,14 +288,14 @@
 static jlong RadialGradient_create2(JNIEnv* env, jobject, jfloat x, jfloat y, jfloat radius,
         jint color0, jint color1, jint tileMode) {
     SkPoint center;
-    center.set(SkFloatToScalar(x), SkFloatToScalar(y));
+    center.set(x, y);
 
     SkColor colors[2];
     colors[0] = color0;
     colors[1] = color1;
 
-    SkShader* s = SkGradientShader::CreateRadial(center, SkFloatToScalar(radius), colors, NULL,
-                                          2, (SkShader::TileMode)tileMode);
+    SkShader* s = SkGradientShader::CreateRadial(center, radius, colors, NULL, 2,
+            (SkShader::TileMode)tileMode);
     ThrowIAE_IfNull(env, s);
     return reinterpret_cast<jlong>(s);
 }
@@ -381,22 +368,15 @@
     size_t      count = env->GetArrayLength(jcolors);
     const jint* colors = env->GetIntArrayElements(jcolors, NULL);
 
-    SkAutoSTMalloc<8, SkScalar> storage(jpositions ? count : 0);
-    SkScalar*                   pos = NULL;
+    AutoJavaFloatArray autoPos(env, jpositions, count);
+#ifdef SK_SCALAR_IS_FLOAT
+    SkScalar* pos = autoPos.ptr();
+#else
+    #error Need to convert float array to SkScalar array before calling the following function.
+#endif
 
-    if (NULL != jpositions) {
-        AutoJavaFloatArray autoPos(env, jpositions, count);
-        const float* posValues = autoPos.ptr();
-        pos = (SkScalar*)storage.get();
-        for (size_t i = 0; i < count; i++) {
-            pos[i] = SkFloatToScalar(posValues[i]);
-        }
-    }
-
-    SkShader* shader = SkGradientShader::CreateSweep(SkFloatToScalar(x),
-                                     SkFloatToScalar(y),
-                                     reinterpret_cast<const SkColor*>(colors),
-                                     pos, count);
+    SkShader* shader = SkGradientShader::CreateSweep(x, y,
+            reinterpret_cast<const SkColor*>(colors), pos, count);
     env->ReleaseIntArrayElements(jcolors, const_cast<jint*>(colors),
                                  JNI_ABORT);
     ThrowIAE_IfNull(env, shader);
@@ -408,8 +388,7 @@
     SkColor colors[2];
     colors[0] = color0;
     colors[1] = color1;
-    SkShader* s = SkGradientShader::CreateSweep(SkFloatToScalar(x), SkFloatToScalar(y),
-                                         colors, NULL, 2);
+    SkShader* s = SkGradientShader::CreateSweep(x, y, colors, NULL, 2);
     ThrowIAE_IfNull(env, s);
     return reinterpret_cast<jlong>(s);
 }
diff --git a/core/jni/android/graphics/TextLayout.cpp b/core/jni/android/graphics/TextLayout.cpp
index 34dc3e8..d0b6f7c 100644
--- a/core/jni/android/graphics/TextLayout.cpp
+++ b/core/jni/android/graphics/TextLayout.cpp
@@ -58,10 +58,8 @@
     if (value == NULL) {
         return ;
     }
-    SkScalar x_ = SkFloatToScalar(x);
-    SkScalar y_ = SkFloatToScalar(y);
     // Beware: this needs Glyph encoding (already done on the Paint constructor)
-    paint->getTextPath(value->getGlyphs(), value->getGlyphsCount() * 2, x_, y_, path);
+    paint->getTextPath(value->getGlyphs(), value->getGlyphsCount() * 2, x, y, path);
 }
 
 void TextLayout::getTextRunAdvances(SkPaint* paint, const jchar* chars, jint start,
@@ -90,9 +88,6 @@
                                 int bidiFlags, jfloat hOffset, jfloat vOffset,
                                 SkPath* path, SkCanvas* canvas) {
 
-    SkScalar h_ = SkFloatToScalar(hOffset);
-    SkScalar v_ = SkFloatToScalar(vOffset);
-
     sp<TextLayoutValue> value = TextLayoutEngine::getInstance().getValue(paint,
             text, 0, count, count, bidiFlags);
     if (value == NULL) {
@@ -100,7 +95,8 @@
     }
 
     // Beware: this needs Glyph encoding (already done on the Paint constructor)
-    canvas->drawTextOnPathHV(value->getGlyphs(), value->getGlyphsCount() * 2, *path, h_, v_, *paint);
+    canvas->drawTextOnPathHV(value->getGlyphs(), value->getGlyphsCount() * 2, *path,
+            hOffset, vOffset, *paint);
 }
 
 }
diff --git a/core/jni/android/graphics/TextLayoutCache.cpp b/core/jni/android/graphics/TextLayoutCache.cpp
index 144ac39..9279758 100644
--- a/core/jni/android/graphics/TextLayoutCache.cpp
+++ b/core/jni/android/graphics/TextLayoutCache.cpp
@@ -70,7 +70,7 @@
     size_t totalSizeToDelete = text.getSize() + desc->getSize();
     mSize -= totalSizeToDelete;
     if (mDebugEnabled) {
-        ALOGD("Cache value %p deleted, size = %d", desc.get(), totalSizeToDelete);
+        ALOGD("Cache value %p deleted, size = %zu", desc.get(), totalSizeToDelete);
     }
 }
 
@@ -130,7 +130,7 @@
                     bool removedOne = mCache.removeOldest();
                     LOG_ALWAYS_FATAL_IF(!removedOne, "The cache is non-empty but we "
                             "failed to remove the oldest entry.  "
-                            "mSize = %u, size = %u, mMaxSize = %u, mCache.size() = %u",
+                            "mSize = %u, size = %zu, mMaxSize = %u, mCache.size() = %zu",
                             mSize, size, mMaxSize, mCache.size());
                 }
             }
@@ -149,7 +149,7 @@
                 nsecs_t totalTime = systemTime(SYSTEM_TIME_MONOTONIC) - startTime;
                 ALOGD("CACHE MISS: Added entry %p "
                         "with start = %d, count = %d, contextCount = %d, "
-                        "entry size %d bytes, remaining space %d bytes"
+                        "entry size %zu bytes, remaining space %d bytes"
                         " - Compute time %0.6f ms - Put time %0.6f ms - Text = '%s'",
                         value.get(), start, count, contextCount, size, mMaxSize - mSize,
                         value->getElapsedTime() * 0.000001f,
@@ -160,7 +160,7 @@
             if (mDebugEnabled) {
                 ALOGD("CACHE MISS: Calculated but not storing entry because it is too big "
                         "with start = %d, count = %d, contextCount = %d, "
-                        "entry size %d bytes, remaining space %d bytes"
+                        "entry size %zu bytes, remaining space %d bytes"
                         " - Compute time %0.6f ms - Text = '%s'",
                         start, count, contextCount, size, mMaxSize - mSize,
                         value->getElapsedTime() * 0.000001f,
@@ -205,7 +205,7 @@
     ALOGD("------------------------------------------------");
     ALOGD("pid       : %d", getpid());
     ALOGD("running   : %.0f seconds", timeRunningInSec);
-    ALOGD("entries   : %d", cacheSize);
+    ALOGD("entries   : %zu", cacheSize);
     ALOGD("max size  : %d bytes", mMaxSize);
     ALOGD("used      : %d bytes according to mSize", mSize);
     ALOGD("remaining : %d bytes or %2.2f percent", mMaxSize - mSize, remainingPercent);
@@ -492,7 +492,7 @@
     (((ucs) & 0xfc00) == 0xdc00)
 
 #ifndef HB_SurrogateToUcs4
-#define HB_SurrogateToUcs4_(high, low) \
+#define HB_SurrogateToUcs4(high, low) \
     (((hb_codepoint_t)(high))<<10) + (low) - 0x35fdc00;
 #endif
 
@@ -784,7 +784,7 @@
     if (typeface) {
         currentStyle = typeface->style();
     }
-    typeface = SkCreateTypefaceForScriptNG(script, currentStyle);
+    typeface = SkCreateTypefaceForScript(script, currentStyle);
 #if DEBUG_GLYPHS
     ALOGD("Using Harfbuzz Script %c%c%c%c, Style %d", HB_UNTAG(script), currentStyle);
 #endif
diff --git a/core/jni/android/graphics/Xfermode.cpp b/core/jni/android/graphics/Xfermode.cpp
index eedceb7..6bf6f8a 100644
--- a/core/jni/android/graphics/Xfermode.cpp
+++ b/core/jni/android/graphics/Xfermode.cpp
@@ -36,12 +36,12 @@
                                 jint tolerance, jint modeHandle)
     {
         SkAvoidXfermode::Mode mode = static_cast<SkAvoidXfermode::Mode>(modeHandle);
-        return reinterpret_cast<jlong>(new SkAvoidXfermode(opColor, tolerance, mode));
+        return reinterpret_cast<jlong>(SkAvoidXfermode::Create(opColor, tolerance, mode));
     }
 
     static jlong pixelxor_create(JNIEnv* env, jobject, jint opColor)
     {
-        return reinterpret_cast<jlong>(new SkPixelXorXfermode(opColor));
+        return reinterpret_cast<jlong>(SkPixelXorXfermode::Create(opColor));
     }
 };
 
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index 58b61ba..307293f 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -230,7 +230,7 @@
         ssize_t offset;
         size_t size;
         sp<IMemoryHeap> heap = dataPtr->getMemory(&offset, &size);
-        ALOGV("copyAndPost: off=%ld, size=%d", offset, size);
+        ALOGV("copyAndPost: off=%zd, size=%zu", offset, size);
         uint8_t *heapBase = (uint8_t*)heap->base();
 
         if (heapBase != NULL) {
diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp
index 24e0b0a..7a4728d 100644
--- a/core/jni/android_hardware_SensorManager.cpp
+++ b/core/jni/android_hardware_SensorManager.cpp
@@ -49,6 +49,8 @@
     jfieldID    minDelay;
     jfieldID    fifoReservedEventCount;
     jfieldID    fifoMaxEventCount;
+    jfieldID    stringType;
+    jfieldID    requiredPermission;
 } gSensorOffsets;
 
 
@@ -73,6 +75,9 @@
     sensorOffsets.fifoReservedEventCount =
             _env->GetFieldID(sensorClass, "mFifoReservedEventCount",  "I");
     sensorOffsets.fifoMaxEventCount = _env->GetFieldID(sensorClass, "mFifoMaxEventCount",  "I");
+    sensorOffsets.stringType = _env->GetFieldID(sensorClass, "mStringType", "Ljava/lang/String;");
+    sensorOffsets.requiredPermission = _env->GetFieldID(sensorClass, "mRequiredPermission",
+                                                        "Ljava/lang/String;");
 }
 
 static jint
@@ -89,6 +94,8 @@
     const SensorOffsets& sensorOffsets(gSensorOffsets);
     jstring name = env->NewStringUTF(list->getName().string());
     jstring vendor = env->NewStringUTF(list->getVendor().string());
+    jstring stringType = env->NewStringUTF(list->getStringType().string());
+    jstring requiredPermission = env->NewStringUTF(list->getRequiredPermission().string());
     env->SetObjectField(sensor, sensorOffsets.name,      name);
     env->SetObjectField(sensor, sensorOffsets.vendor,    vendor);
     env->SetIntField(sensor, sensorOffsets.version,      list->getVersion());
@@ -100,7 +107,11 @@
     env->SetIntField(sensor, sensorOffsets.minDelay,     list->getMinDelay());
     env->SetIntField(sensor, sensorOffsets.fifoReservedEventCount,
                      list->getFifoReservedEventCount());
-    env->SetIntField(sensor, sensorOffsets.fifoMaxEventCount, list->getFifoMaxEventCount());
+    env->SetIntField(sensor, sensorOffsets.fifoMaxEventCount,
+                     list->getFifoMaxEventCount());
+    env->SetObjectField(sensor, sensorOffsets.stringType, stringType);
+    env->SetObjectField(sensor, sensorOffsets.requiredPermission,
+                        requiredPermission);
     next++;
     return size_t(next) < count ? next : 0;
 }
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index 0132b5f..d8faaf3 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -166,7 +166,7 @@
         ALOGE("Error creating AudioRecord: channel mask %#x is not valid.", channelMask);
         return (jint) AUDIORECORD_ERROR_SETUP_INVALIDCHANNELMASK;
     }
-    uint32_t nbChannels = popcount(channelMask);
+    uint32_t channelCount = popcount(channelMask);
 
     // compare the format against the Java constants
     audio_format_t format = audioFormatToNative(audioFormat);
@@ -181,7 +181,7 @@
          ALOGE("Error creating AudioRecord: frameCount is 0.");
         return (jint) AUDIORECORD_ERROR_SETUP_ZEROFRAMECOUNT;
     }
-    size_t frameSize = nbChannels * bytesPerSample;
+    size_t frameSize = channelCount * bytesPerSample;
     size_t frameCount = buffSizeInBytes / frameSize;
 
     if ((uint32_t(source) >= AUDIO_SOURCE_CNT) && (uint32_t(source) != AUDIO_SOURCE_HOTWORD)) {
@@ -220,7 +220,7 @@
     lpCallbackData->audioRecord_ref = env->NewGlobalRef(weak_this);
     lpCallbackData->busy = false;
 
-    lpRecorder->set((audio_source_t) source,
+    const status_t status = lpRecorder->set((audio_source_t) source,
         sampleRateInHertz,
         format,        // word length, PCM
         channelMask,
@@ -231,7 +231,6 @@
         true,          // threadCanCallJava
         sessionId);
 
-    const status_t status = lpRecorder->initCheck();
     if (status != NO_ERROR) {
         ALOGE("Error creating AudioRecord instance: initialization check failed with status %d.",
                 status);
@@ -312,7 +311,7 @@
     if (lpRecorder == NULL) {
         return;
     }
-    ALOGV("About to delete lpRecorder: %" PRIxPTR "\n", lpRecorder.get());
+    ALOGV("About to delete lpRecorder: %p", lpRecorder.get());
     lpRecorder->stop();
 
     audiorecord_callback_cookie *lpCookie = (audiorecord_callback_cookie *)env->GetLongField(
@@ -325,7 +324,7 @@
     // delete the callback information
     if (lpCookie) {
         Mutex::Autolock l(sLock);
-        ALOGV("deleting lpCookie: %" PRIxPTR "\n", lpCookie);
+        ALOGV("deleting lpCookie: %p", lpCookie);
         while (lpCookie->busy) {
             if (lpCookie->cond.waitRelative(sLock,
                                             milliseconds(CALLBACK_COND_WAIT_TIMEOUT_MS)) !=
@@ -501,17 +500,17 @@
 // returns 0 if the parameter combination is not supported.
 // return -1 if there was an error querying the buffer size.
 static jint android_media_AudioRecord_get_min_buff_size(JNIEnv *env,  jobject thiz,
-    jint sampleRateInHertz, jint nbChannels, jint audioFormat) {
+    jint sampleRateInHertz, jint channelCount, jint audioFormat) {
 
     ALOGV(">> android_media_AudioRecord_get_min_buff_size(%d, %d, %d)",
-          sampleRateInHertz, nbChannels, audioFormat);
+          sampleRateInHertz, channelCount, audioFormat);
 
     size_t frameCount = 0;
     audio_format_t format = audioFormatToNative(audioFormat);
     status_t result = AudioRecord::getMinFrameCount(&frameCount,
             sampleRateInHertz,
             format,
-            audio_channel_in_mask_from_count(nbChannels));
+            audio_channel_in_mask_from_count(channelCount));
 
     if (result == BAD_VALUE) {
         return 0;
@@ -519,7 +518,7 @@
     if (result != NO_ERROR) {
         return -1;
     }
-    return frameCount * nbChannels * audio_bytes_per_sample(format);
+    return frameCount * channelCount * audio_bytes_per_sample(format);
 }
 
 
diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp
index 3a5b566..162d0c4 100644
--- a/core/jni/android_media_AudioTrack.cpp
+++ b/core/jni/android_media_AudioTrack.cpp
@@ -26,6 +26,7 @@
 #include <utils/Log.h>
 #include <media/AudioSystem.h>
 #include <media/AudioTrack.h>
+#include <audio_utils/primitives.h>
 
 #include <binder/MemoryHeapBase.h>
 #include <binder/MemoryBase.h>
@@ -203,25 +204,30 @@
     uint32_t afSampleRate;
     size_t afFrameCount;
 
-    if (AudioSystem::getOutputFrameCount(&afFrameCount, (audio_stream_type_t) streamType) != NO_ERROR) {
-        ALOGE("Error creating AudioTrack: Could not get AudioSystem frame count.");
+    status_t status = AudioSystem::getOutputFrameCount(&afFrameCount,
+            (audio_stream_type_t) streamType);
+    if (status != NO_ERROR) {
+        ALOGE("Error %d creating AudioTrack: Could not get AudioSystem frame count "
+              "for stream type %d.", status, streamType);
         return (jint) AUDIOTRACK_ERROR_SETUP_AUDIOSYSTEM;
     }
-    if (AudioSystem::getOutputSamplingRate(&afSampleRate, (audio_stream_type_t) streamType) != NO_ERROR) {
-        ALOGE("Error creating AudioTrack: Could not get AudioSystem sampling rate.");
+    status = AudioSystem::getOutputSamplingRate(&afSampleRate, (audio_stream_type_t) streamType);
+    if (status != NO_ERROR) {
+        ALOGE("Error %d creating AudioTrack: Could not get AudioSystem sampling rate "
+              "for stream type %d.", status, streamType);
         return (jint) AUDIOTRACK_ERROR_SETUP_AUDIOSYSTEM;
     }
 
     // Java channel masks don't map directly to the native definition, but it's a simple shift
     // to skip the two deprecated channel configurations "default" and "mono".
-    uint32_t nativeChannelMask = ((uint32_t)javaChannelMask) >> 2;
+    audio_channel_mask_t nativeChannelMask = ((uint32_t)javaChannelMask) >> 2;
 
     if (!audio_is_output_channel(nativeChannelMask)) {
         ALOGE("Error creating AudioTrack: invalid channel mask %#x.", javaChannelMask);
         return (jint) AUDIOTRACK_ERROR_SETUP_INVALIDCHANNELMASK;
     }
 
-    int nbChannels = popcount(nativeChannelMask);
+    uint32_t channelCount = popcount(nativeChannelMask);
 
     // check the stream type
     audio_stream_type_t atStreamType;
@@ -237,7 +243,7 @@
         atStreamType = (audio_stream_type_t) streamType;
         break;
     default:
-        ALOGE("Error creating AudioTrack: unknown stream type.");
+        ALOGE("Error creating AudioTrack: unknown stream type %d.", streamType);
         return (jint) AUDIOTRACK_ERROR_SETUP_INVALIDSTREAMTYPE;
     }
 
@@ -245,8 +251,7 @@
     // This function was called from Java, so we compare the format against the Java constants
     audio_format_t format = audioFormatToNative(audioFormat);
     if (format == AUDIO_FORMAT_INVALID) {
-
-        ALOGE("Error creating AudioTrack: unsupported audio format.");
+        ALOGE("Error creating AudioTrack: unsupported audio format %d.", audioFormat);
         return (jint) AUDIOTRACK_ERROR_SETUP_INVALIDFORMAT;
     }
 
@@ -265,7 +270,7 @@
 
     // compute the frame count
     const size_t bytesPerSample = audio_bytes_per_sample(format);
-    size_t frameCount = buffSizeInBytes / (nbChannels * bytesPerSample);
+    size_t frameCount = buffSizeInBytes / (channelCount * bytesPerSample);
 
     jclass clazz = env->GetObjectClass(thiz);
     if (clazz == NULL) {
@@ -303,7 +308,7 @@
     switch (memoryMode) {
     case MODE_STREAM:
 
-        lpTrack->set(
+        status = lpTrack->set(
             atStreamType,// stream type
             sampleRateInHertz,
             format,// word length, PCM
@@ -325,7 +330,7 @@
             goto native_init_failure;
         }
 
-        lpTrack->set(
+        status = lpTrack->set(
             atStreamType,// stream type
             sampleRateInHertz,
             format,// word length, PCM
@@ -344,8 +349,8 @@
         goto native_init_failure;
     }
 
-    if (lpTrack->initCheck() != NO_ERROR) {
-        ALOGE("Error initializing AudioTrack");
+    if (status != NO_ERROR) {
+        ALOGE("Error %d initializing AudioTrack", status);
         goto native_init_failure;
     }
 
@@ -546,10 +551,8 @@
             }
             int count = sizeInBytes;
             int16_t *dst = (int16_t *)track->sharedBuffer()->pointer();
-            const int8_t *src = (const int8_t *)(data + offsetInBytes);
-            while (count--) {
-                *dst++ = (int16_t)(*src++^0x80) << 8;
-            }
+            const uint8_t *src = (const uint8_t *)(data + offsetInBytes);
+            memcpy_to_i16_from_u8(dst, src, count);
             // even though we wrote 2*sizeInBytes, we only report sizeInBytes as written to hide
             // the 8bit mixer restriction from the user of this function
             written = sizeInBytes;
@@ -853,9 +856,10 @@
         break;
     }
 
-    if (AudioSystem::getOutputSamplingRate(&afSamplingRate, nativeStreamType) != NO_ERROR) {
-        ALOGE("AudioSystem::getOutputSamplingRate() for stream type %d failed in AudioTrack JNI",
-            nativeStreamType);
+    status_t status = AudioSystem::getOutputSamplingRate(&afSamplingRate, nativeStreamType);
+    if (status != NO_ERROR) {
+        ALOGE("Error %d in AudioSystem::getOutputSamplingRate() for stream type %d "
+              "in AudioTrack JNI", status, nativeStreamType);
         return DEFAULT_OUTPUT_SAMPLE_RATE;
     } else {
         return afSamplingRate;
@@ -867,7 +871,7 @@
 // returns the minimum required size for the successful creation of a streaming AudioTrack
 // returns -1 if there was an error querying the hardware.
 static jint android_media_AudioTrack_get_min_buff_size(JNIEnv *env,  jobject thiz,
-    jint sampleRateInHertz, jint nbChannels, jint audioFormat) {
+    jint sampleRateInHertz, jint channelCount, jint audioFormat) {
 
     size_t frameCount;
     const status_t status = AudioTrack::getMinFrameCount(&frameCount, AUDIO_STREAM_DEFAULT,
@@ -879,21 +883,26 @@
     }
     const audio_format_t format = audioFormatToNative(audioFormat);
     const size_t bytesPerSample = audio_bytes_per_sample(format);
-    return frameCount * nbChannels * bytesPerSample;
+    return frameCount * channelCount * bytesPerSample;
 }
 
 // ----------------------------------------------------------------------------
-static void
+static jint
 android_media_AudioTrack_setAuxEffectSendLevel(JNIEnv *env, jobject thiz, jfloat level )
 {
     sp<AudioTrack> lpTrack = getAudioTrack(env, thiz);
     if (lpTrack == NULL ) {
         jniThrowException(env, "java/lang/IllegalStateException",
             "Unable to retrieve AudioTrack pointer for setAuxEffectSendLevel()");
-        return;
+        return -1;
     }
 
-    lpTrack->setAuxEffectSendLevel(level);
+    status_t status = lpTrack->setAuxEffectSendLevel(level);
+    if (status != NO_ERROR) {
+        ALOGE("AudioTrack::setAuxEffectSendLevel() for level %g failed with status %d",
+                level, status);
+    }
+    return (jint) status;
 }
 
 // ----------------------------------------------------------------------------
@@ -949,7 +958,7 @@
     {"native_get_min_buff_size",
                              "(III)I",   (void *)android_media_AudioTrack_get_min_buff_size},
     {"native_setAuxEffectSendLevel",
-                             "(F)V",     (void *)android_media_AudioTrack_setAuxEffectSendLevel},
+                             "(F)I",     (void *)android_media_AudioTrack_setAuxEffectSendLevel},
     {"native_attachAuxEffect",
                              "(I)I",     (void *)android_media_AudioTrack_attachAuxEffect},
 };
diff --git a/core/jni/android_net_LocalSocketImpl.cpp b/core/jni/android_net_LocalSocketImpl.cpp
index 9f79f74..98f4bed 100644
--- a/core/jni/android_net_LocalSocketImpl.cpp
+++ b/core/jni/android_net_LocalSocketImpl.cpp
@@ -111,7 +111,7 @@
 
 /* private native void listen_native(int fd, int backlog) throws IOException; */
 static void
-socket_listen (JNIEnv *env, jobject object, jobject fileDescriptor, int backlog)
+socket_listen (JNIEnv *env, jobject object, jobject fileDescriptor, jint backlog)
 {
     int ret;
     int fd;
@@ -231,7 +231,7 @@
 }
 
 static jint
-socket_getOption(JNIEnv *env, jobject object, jobject fileDescriptor, int optID)
+socket_getOption(JNIEnv *env, jobject object, jobject fileDescriptor, jint optID)
 {
     int ret, value;
     int opt, level;
@@ -279,7 +279,7 @@
 }
 
 static void socket_setOption(
-        JNIEnv *env, jobject object, jobject fileDescriptor, int optID,
+        JNIEnv *env, jobject object, jobject fileDescriptor, jint optID,
         jint boolValue, jint intValue) {
     int ret;
     int optname;
diff --git a/core/jni/android_nio_utils.cpp b/core/jni/android_nio_utils.cpp
index 7cbbe12..59d6e41 100644
--- a/core/jni/android_nio_utils.cpp
+++ b/core/jni/android_nio_utils.cpp
@@ -37,7 +37,7 @@
                                          gNioJNI.getBasePointerID, buffer);
     if (pointer != 0L) {
         *array = NULL;
-        return (void *) (jint) pointer;
+        return reinterpret_cast<void *>(pointer);
     }
 
     *array = (jarray) _env->CallStaticObjectMethod(gNioJNI.nioAccessClass,
diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp
index a041693..d4873d6 100644
--- a/core/jni/android_os_Debug.cpp
+++ b/core/jni/android_os_Debug.cpp
@@ -800,7 +800,7 @@
     fprintf(fp, "Total memory: %zu\n", totalMemory);
     fprintf(fp, "Allocation records: %zd\n", recordCount);
     if (backtraceSize != BACKTRACE_SIZE) {
-        fprintf(fp, "WARNING: mismatched backtrace sizes (%d vs. %d)\n",
+        fprintf(fp, "WARNING: mismatched backtrace sizes (%zu vs. %d)\n",
             backtraceSize, BACKTRACE_SIZE);
     }
     fprintf(fp, "\n");
@@ -823,7 +823,11 @@
             if (backtrace[bt] == 0) {
                 break;
             } else {
+#ifdef __LP64__
+                fprintf(fp, " %016x", backtrace[bt]);
+#else
                 fprintf(fp, " %08x", backtrace[bt]);
+#endif
             }
         }
         fprintf(fp, "\n");
diff --git a/core/jni/android_server_NetworkManagementSocketTagger.cpp b/core/jni/android_server_NetworkManagementSocketTagger.cpp
index 12beff7..7e12b1e 100644
--- a/core/jni/android_server_NetworkManagementSocketTagger.cpp
+++ b/core/jni/android_server_NetworkManagementSocketTagger.cpp
@@ -47,8 +47,8 @@
   return (jint)res;
 }
 
-static int QTagUid_untagSocketFd(JNIEnv* env, jclass,
-                                 jobject fileDescriptor) {
+static jint QTagUid_untagSocketFd(JNIEnv* env, jclass,
+                                  jobject fileDescriptor) {
   int userFd = jniGetFDFromFileDescriptor(env, fileDescriptor);
 
   if (env->ExceptionOccurred() != NULL) {
diff --git a/core/jni/android_text_AndroidBidi.cpp b/core/jni/android_text_AndroidBidi.cpp
index d50a69f..6f7ee49 100644
--- a/core/jni/android_text_AndroidBidi.cpp
+++ b/core/jni/android_text_AndroidBidi.cpp
@@ -26,7 +26,7 @@
 namespace android {
 
 static jint runBidi(JNIEnv* env, jobject obj, jint dir, jcharArray chsArray,
-                    jbyteArray infoArray, int n, jboolean haveInfo)
+                    jbyteArray infoArray, jint n, jboolean haveInfo)
 {
     // Parameters are checked on java side
     // Failures from GetXXXArrayElements indicate a serious out-of-memory condition
diff --git a/core/jni/android_text_AndroidCharacter.cpp b/core/jni/android_text_AndroidCharacter.cpp
index 8b85a7b7..94bd40f 100644
--- a/core/jni/android_text_AndroidCharacter.cpp
+++ b/core/jni/android_text_AndroidCharacter.cpp
@@ -51,7 +51,8 @@
 
 namespace android {
 
-static void getDirectionalities(JNIEnv* env, jobject obj, jcharArray srcArray, jbyteArray destArray, int count)
+static void getDirectionalities(JNIEnv* env, jobject obj, jcharArray srcArray,
+                                jbyteArray destArray, jint count)
 {
     ScopedCharArrayRO src(env, srcArray);
     if (src.get() == NULL) {
@@ -102,7 +103,7 @@
 }
 
 static void getEastAsianWidths(JNIEnv* env, jobject obj, jcharArray srcArray,
-                               int start, int count, jbyteArray destArray)
+                               jint start, jint count, jbyteArray destArray)
 {
     ScopedCharArrayRO src(env, srcArray);
     if (src.get() == NULL) {
@@ -144,20 +145,20 @@
     }
 }
 
-static jboolean mirror(JNIEnv* env, jobject obj, jcharArray charArray, int start, int count)
+static jboolean mirror(JNIEnv* env, jobject obj, jcharArray charArray, jint start, jint count)
 {
     ScopedCharArrayRW data(env, charArray);
     if (data.get() == NULL) {
-        return false;
+        return JNI_FALSE;
     }
 
     if (start < 0 || start > start + count
             || env->GetArrayLength(charArray) < start + count) {
         jniThrowException(env, "java/lang/ArrayIndexOutOfBoundsException", NULL);
-        return false;
+        return JNI_FALSE;
     }
 
-    bool ret = false;
+    jboolean ret = JNI_FALSE;
     for (int i = start; i < start + count; i++) {
         // XXX this thinks it knows that surrogates are never mirrored
 
@@ -166,7 +167,7 @@
 
         if (c1 != c2) {
             data[i] = c2;
-            ret = true;
+            ret = JNI_TRUE;
         }
     }
     return ret;
diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp
index aa2c5f39..28a8a5d 100644
--- a/core/jni/android_text_format_Time.cpp
+++ b/core/jni/android_text_format_Time.cpp
@@ -117,7 +117,7 @@
     time2java(env, This, t);
     RELEASE_TIMEZONE(This, t)
 
-    return result;
+    return static_cast<jlong>(result);
 }
 
 static void android_text_format_Time_switchTimezone(JNIEnv* env, jobject This,
@@ -155,7 +155,7 @@
     RELEASE_TIMEZONE(aObject, a)
     RELEASE_TIMEZONE(bObject, b)
 
-    return result;
+    return static_cast<jint>(result);
 }
 
 static jstring android_text_format_Time_format2445(JNIEnv* env, jobject This)
@@ -346,7 +346,7 @@
 
     RELEASE_TIMEZONE(This, t)
 
-    return result;
+    return static_cast<jlong>(result);
 }
 
 static void android_text_format_Time_set(JNIEnv* env, jobject This, jlong millis)
@@ -400,10 +400,10 @@
     if (len < 8) {
         jniThrowException(env, "android/util/TimeFormatException",
                           "String too short -- expected at least 8 characters.");
-        return false;
+        return JNI_FALSE;
     }
 
-    jboolean inUtc = false;
+    jboolean inUtc = JNI_FALSE;
 
     ScopedStringChars s(env, strObj);
 
@@ -414,49 +414,49 @@
     n += get_char(env, s, 1, 100, &thrown);
     n += get_char(env, s, 2, 10, &thrown);
     n += get_char(env, s, 3, 1, &thrown);
-    if (thrown) return false;
+    if (thrown) return JNI_FALSE;
     env->SetIntField(This, g_yearField, n);
 
     // month
     n = get_char(env, s, 4, 10, &thrown);
     n += get_char(env, s, 5, 1, &thrown);
     n--;
-    if (thrown) return false;
+    if (thrown) return JNI_FALSE;
     env->SetIntField(This, g_monField, n);
 
     // day of month
     n = get_char(env, s, 6, 10, &thrown);
     n += get_char(env, s, 7, 1, &thrown);
-    if (thrown) return false;
+    if (thrown) return JNI_FALSE;
     env->SetIntField(This, g_mdayField, n);
 
     if (len > 8) {
         // T
-        if (!check_char(env, s, 8, 'T')) return false;
+        if (!check_char(env, s, 8, 'T')) return JNI_FALSE;
         env->SetBooleanField(This, g_allDayField, JNI_FALSE);
 
         // hour
         n = get_char(env, s, 9, 10, &thrown);
         n += get_char(env, s, 10, 1, &thrown);
-        if (thrown) return false;
+        if (thrown) return JNI_FALSE;
         env->SetIntField(This, g_hourField, n);
 
         // min
         n = get_char(env, s, 11, 10, &thrown);
         n += get_char(env, s, 12, 1, &thrown);
-        if (thrown) return false;
+        if (thrown) return JNI_FALSE;
         env->SetIntField(This, g_minField, n);
 
         // sec
         n = get_char(env, s, 13, 10, &thrown);
         n += get_char(env, s, 14, 1, &thrown);
-        if (thrown) return false;
+        if (thrown) return JNI_FALSE;
         env->SetIntField(This, g_secField, n);
 
         if (len > 15) {
             // Z
-            if (!check_char(env, s, 15, 'Z')) return false;
-            inUtc = true;
+            if (!check_char(env, s, 15, 'Z')) return JNI_FALSE;
+            inUtc = JNI_TRUE;
         }
     } else {
         env->SetBooleanField(This, g_allDayField, JNI_TRUE);
@@ -481,10 +481,10 @@
     if (len < 10) {
         jniThrowException(env, "android/util/TimeFormatException",
                           "String too short --- expected at least 10 characters.");
-        return false;
+        return JNI_FALSE;
     }
 
-    jboolean inUtc = false;
+    jboolean inUtc = JNI_FALSE;
 
     ScopedStringChars s(env, strObj);
 
@@ -495,57 +495,57 @@
     n += get_char(env, s, 1, 100, &thrown);
     n += get_char(env, s, 2, 10, &thrown);
     n += get_char(env, s, 3, 1, &thrown);
-    if (thrown) return false;
+    if (thrown) return JNI_FALSE;
     env->SetIntField(This, g_yearField, n);
     
     // -
-    if (!check_char(env, s, 4, '-')) return false;
+    if (!check_char(env, s, 4, '-')) return JNI_FALSE;
     
     // month
     n = get_char(env, s, 5, 10, &thrown);
     n += get_char(env, s, 6, 1, &thrown);
     --n;
-    if (thrown) return false;
+    if (thrown) return JNI_FALSE;
     env->SetIntField(This, g_monField, n);
 
     // -
-    if (!check_char(env, s, 7, '-')) return false;
+    if (!check_char(env, s, 7, '-')) return JNI_FALSE;
 
     // day
     n = get_char(env, s, 8, 10, &thrown);
     n += get_char(env, s, 9, 1, &thrown);
-    if (thrown) return false;
+    if (thrown) return JNI_FALSE;
     env->SetIntField(This, g_mdayField, n);
 
     if (len >= 19) {
         // T
-        if (!check_char(env, s, 10, 'T')) return false;
+        if (!check_char(env, s, 10, 'T')) return JNI_FALSE;
 
         env->SetBooleanField(This, g_allDayField, JNI_FALSE);
         // hour
         n = get_char(env, s, 11, 10, &thrown);
         n += get_char(env, s, 12, 1, &thrown);
-        if (thrown) return false;
+        if (thrown) return JNI_FALSE;
         int hour = n;
         // env->SetIntField(This, g_hourField, n);
 
         // :
-        if (!check_char(env, s, 13, ':')) return false;
+        if (!check_char(env, s, 13, ':')) return JNI_FALSE;
 
         // minute
         n = get_char(env, s, 14, 10, &thrown);
         n += get_char(env, s, 15, 1, &thrown);
-        if (thrown) return false;
+        if (thrown) return JNI_FALSE;
         int minute = n;
         // env->SetIntField(This, g_minField, n);
 
         // :
-        if (!check_char(env, s, 16, ':')) return false;
+        if (!check_char(env, s, 16, ':')) return JNI_FALSE;
 
         // second
         n = get_char(env, s, 17, 10, &thrown);
         n += get_char(env, s, 18, 1, &thrown);
-        if (thrown) return false;
+        if (thrown) return JNI_FALSE;
         env->SetIntField(This, g_secField, n);
 
         // skip the '.XYZ' -- we don't care about subsecond precision.
@@ -579,32 +579,32 @@
                 jniThrowExceptionFmt(env, "android/util/TimeFormatException",
                                      "Unexpected character 0x%02x at position %d.  Expected + or -",
                                      c, tz_index);
-                return false;
+                return JNI_FALSE;
             }
-            inUtc = true;
+            inUtc = JNI_TRUE;
 
             if (offset != 0) {
                 if (len < tz_index + 6) {
                     jniThrowExceptionFmt(env, "android/util/TimeFormatException",
                                          "Unexpected length; should be %d characters",
                                          tz_index + 6);
-                    return false;
+                    return JNI_FALSE;
                 }
 
                 // hour
                 n = get_char(env, s, tz_index + 1, 10, &thrown);
                 n += get_char(env, s, tz_index + 2, 1, &thrown);
-                if (thrown) return false;
+                if (thrown) return JNI_FALSE;
                 n *= offset;
                 hour += n;
 
                 // :
-                if (!check_char(env, s, tz_index + 3, ':')) return false;
+                if (!check_char(env, s, tz_index + 3, ':')) return JNI_FALSE;
             
                 // minute
                 n = get_char(env, s, tz_index + 4, 10, &thrown);
                 n += get_char(env, s, tz_index + 5, 1, &thrown);
-                if (thrown) return false;
+                if (thrown) return JNI_FALSE;
                 n *= offset;
                 minute += n;
             }
diff --git a/core/jni/android_util_EventLog.cpp b/core/jni/android_util_EventLog.cpp
index 2593420..8a0eaa2 100644
--- a/core/jni/android_util_EventLog.cpp
+++ b/core/jni/android_util_EventLog.cpp
@@ -177,13 +177,13 @@
             break;
         }
         if (ret < 0) {
-            if (errno == EINTR) {
+            if (ret == -EINTR) {
                 continue;
             }
-            if (errno == EINVAL) {
+            if (ret == -EINVAL) {
                 jniThrowException(env, "java/io/IOException", "Event too short");
-            } else if (errno != EAGAIN) {
-                jniThrowIOException(env, errno);  // Will throw on return
+            } else if (ret != -EAGAIN) {
+                jniThrowIOException(env, -ret);  // Will throw on return
             }
             break;
         }
diff --git a/core/jni/android_util_Log.cpp b/core/jni/android_util_Log.cpp
index 536a582..93dcbef 100644
--- a/core/jni/android_util_Log.cpp
+++ b/core/jni/android_util_Log.cpp
@@ -85,7 +85,7 @@
     jboolean result = false;
     if ((strlen(chars)+sizeof(LOG_NAMESPACE)) > PROPERTY_KEY_MAX) {
         char buf2[200];
-        snprintf(buf2, sizeof(buf2), "Log tag \"%s\" exceeds limit of %d characters\n",
+        snprintf(buf2, sizeof(buf2), "Log tag \"%s\" exceeds limit of %zu characters\n",
                 chars, PROPERTY_KEY_MAX - sizeof(LOG_NAMESPACE));
 
         jniThrowException(env, "java/lang/IllegalArgumentException", buf2);
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index cbed99f..a4efed7 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -19,8 +19,8 @@
 
 #include <utils/Log.h>
 #include <binder/IPCThreadState.h>
-#include <binder/ProcessState.h>
 #include <binder/IServiceManager.h>
+#include <cutils/process_name.h>
 #include <cutils/sched_policy.h>
 #include <utils/String8.h>
 #include <utils/Vector.h>
@@ -385,7 +385,9 @@
     }
 
     if (name8.size() > 0) {
-        ProcessState::self()->setArgV0(name8.string());
+        const char* procName = name8.string();
+        set_process_name(procName);
+        AndroidRuntime::getRuntime()->setArgv0(procName);
     }
 }
 
diff --git a/core/jni/android_view_GLRenderer.cpp b/core/jni/android_view_GLRenderer.cpp
index e45c1b9..d0269a3 100644
--- a/core/jni/android_view_GLRenderer.cpp
+++ b/core/jni/android_view_GLRenderer.cpp
@@ -26,6 +26,8 @@
 
 #include <utils/Timers.h>
 
+#include <private/hwui/DrawGlInfo.h>
+
 #include <Caches.h>
 #include <Extensions.h>
 #include <LayerRenderer.h>
@@ -140,19 +142,20 @@
     LayerRenderer::destroyLayer(layer);
 }
 
-static void android_view_GLRenderer_setDisplayListData(JNIEnv* env, jobject clazz,
-        jlong displayListPtr, jlong newDataPtr) {
-    using namespace android::uirenderer;
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    DisplayListData* newData = reinterpret_cast<DisplayListData*>(newDataPtr);
-    displayList->setData(newData);
-}
-
-static void android_view_GLRenderer_updateRenderNodeProperties(JNIEnv* env, jobject clazz,
+static void android_view_GLRenderer_prepareTree(JNIEnv* env, jobject clazz,
         jlong renderNodePtr) {
     using namespace android::uirenderer;
     RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
-    renderNode->updateProperties();
+    TreeInfo ignoredInfo;
+    renderNode->prepareTree(ignoredInfo);
+}
+
+static void android_view_GLRenderer_invokeFunctor(JNIEnv* env, jobject clazz,
+        jlong functorPtr, jboolean hasContext) {
+    using namespace android::uirenderer;
+    Functor* functor = reinterpret_cast<Functor*>(functorPtr);
+    DrawGlInfo::Mode mode = hasContext ? DrawGlInfo::kModeProcess : DrawGlInfo::kModeProcessNoContext;
+    (*functor)(mode, NULL);
 }
 
 #endif // USE_OPENGL_RENDERER
@@ -185,8 +188,8 @@
 
     { "getSystemTime",         "()J",   (void*) android_view_GLRenderer_getSystemTime },
     { "nDestroyLayer",         "(J)V",  (void*) android_view_GLRenderer_destroyLayer },
-    { "nSetDisplayListData",  "(JJ)V", (void*) android_view_GLRenderer_setDisplayListData },
-    { "nUpdateRenderNodeProperties", "(J)V", (void*) android_view_GLRenderer_updateRenderNodeProperties },
+    { "nPrepareTree", "(J)V", (void*) android_view_GLRenderer_prepareTree },
+    { "nInvokeFunctor",        "(JZ)V", (void*) android_view_GLRenderer_invokeFunctor },
 #endif
 
     { "setupShadersDiskCache", "(Ljava/lang/String;)V",
diff --git a/core/jni/android_view_HardwareLayer.cpp b/core/jni/android_view_HardwareLayer.cpp
index 4bf5f78..b2f17de 100644
--- a/core/jni/android_view_HardwareLayer.cpp
+++ b/core/jni/android_view_HardwareLayer.cpp
@@ -127,7 +127,8 @@
 static jboolean android_view_HardwareLayer_flushChanges(JNIEnv* env, jobject clazz,
         jlong layerUpdaterPtr) {
     DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr);
-    return layer->apply();
+    TreeInfo ignoredInfo;
+    return layer->apply(ignoredInfo);
 }
 
 static jlong android_view_HardwareLayer_getLayer(JNIEnv* env, jobject clazz,
diff --git a/core/jni/android_view_RenderNode.cpp b/core/jni/android_view_RenderNode.cpp
index 3e359d4..8dacfeb 100644
--- a/core/jni/android_view_RenderNode.cpp
+++ b/core/jni/android_view_RenderNode.cpp
@@ -41,347 +41,389 @@
 // DisplayList view properties
 // ----------------------------------------------------------------------------
 
-static void android_view_RenderNode_setDisplayListName(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jstring name) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
+static void android_view_RenderNode_output(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->output();
+}
+
+static jlong android_view_RenderNode_create(JNIEnv* env, jobject clazz, jstring name) {
+    RenderNode* renderNode = new RenderNode();
+    renderNode->incStrong(0);
     if (name != NULL) {
         const char* textArray = env->GetStringUTFChars(name, NULL);
-        displayList->setName(textArray);
+        renderNode->setName(textArray);
         env->ReleaseStringUTFChars(name, textArray);
     }
+    return reinterpret_cast<jlong>(renderNode);
 }
 
-static void android_view_RenderNode_output(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->output();
+static void android_view_RenderNode_destroyRenderNode(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->decStrong(0);
 }
 
-static jlong android_view_RenderNode_create(JNIEnv* env, jobject clazz) {
-    RenderNode* displayList = new RenderNode();
-    return reinterpret_cast<jlong>(displayList);
-}
-
-static void android_view_RenderNode_destroyDisplayList(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    RenderNode::destroyDisplayListDeferred(displayList);
+static void android_view_RenderNode_setDisplayListData(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr, jlong newDataPtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    DisplayListData* newData = reinterpret_cast<DisplayListData*>(newDataPtr);
+    renderNode->setStagingDisplayList(newData);
 }
 
 // ----------------------------------------------------------------------------
-// RenderProperties
+// RenderProperties - setters
 // ----------------------------------------------------------------------------
 
 static void android_view_RenderNode_setCaching(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jboolean caching) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setCaching(caching);
+        jobject clazz, jlong renderNodePtr, jboolean caching) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setCaching(caching);
 }
 
 static void android_view_RenderNode_setStaticMatrix(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jlong matrixPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
+        jobject clazz, jlong renderNodePtr, jlong matrixPtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
     SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
-    displayList->mutateStagingProperties().setStaticMatrix(matrix);
+    renderNode->mutateStagingProperties().setStaticMatrix(matrix);
 }
 
 static void android_view_RenderNode_setAnimationMatrix(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jlong matrixPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
+        jobject clazz, jlong renderNodePtr, jlong matrixPtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
     SkMatrix* matrix = reinterpret_cast<SkMatrix*>(matrixPtr);
-    displayList->mutateStagingProperties().setAnimationMatrix(matrix);
+    renderNode->mutateStagingProperties().setAnimationMatrix(matrix);
 }
 
 static void android_view_RenderNode_setClipToBounds(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jboolean clipToBounds) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setClipToBounds(clipToBounds);
+        jobject clazz, jlong renderNodePtr, jboolean clipToBounds) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setClipToBounds(clipToBounds);
 }
 
 static void android_view_RenderNode_setProjectBackwards(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jboolean shouldProject) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setProjectBackwards(shouldProject);
+        jobject clazz, jlong renderNodePtr, jboolean shouldProject) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setProjectBackwards(shouldProject);
 }
 
 static void android_view_RenderNode_setProjectionReceiver(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jboolean shouldRecieve) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setProjectionReceiver(shouldRecieve);
+        jobject clazz, jlong renderNodePtr, jboolean shouldRecieve) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setProjectionReceiver(shouldRecieve);
 }
 
 static void android_view_RenderNode_setOutlineRoundRect(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jint left, jint top,
+        jobject clazz, jlong renderNodePtr, jint left, jint top,
         jint right, jint bottom, jfloat radius) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().mutableOutline().setRoundRect(left, top, right, bottom, radius);
-    displayList->mutateStagingProperties().updateClipPath();
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().mutableOutline().setRoundRect(left, top, right, bottom, radius);
+    renderNode->mutateStagingProperties().updateClipPath();
 }
 
 static void android_view_RenderNode_setOutlineConvexPath(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jlong outlinePathPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
+        jobject clazz, jlong renderNodePtr, jlong outlinePathPtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
     SkPath* outlinePath = reinterpret_cast<SkPath*>(outlinePathPtr);
-    displayList->mutateStagingProperties().mutableOutline().setConvexPath(outlinePath);
-    displayList->mutateStagingProperties().updateClipPath();
+    renderNode->mutateStagingProperties().mutableOutline().setConvexPath(outlinePath);
+    renderNode->mutateStagingProperties().updateClipPath();
 }
 
 static void android_view_RenderNode_setOutlineEmpty(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().mutableOutline().setEmpty();
-    displayList->mutateStagingProperties().updateClipPath();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().mutableOutline().setEmpty();
+    renderNode->mutateStagingProperties().updateClipPath();
 }
 
 static void android_view_RenderNode_setClipToOutline(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jboolean clipToOutline) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().mutableOutline().setShouldClip(clipToOutline);
-    displayList->mutateStagingProperties().updateClipPath();
+        jobject clazz, jlong renderNodePtr, jboolean clipToOutline) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().mutableOutline().setShouldClip(clipToOutline);
+    renderNode->mutateStagingProperties().updateClipPath();
 }
 
 static void android_view_RenderNode_setRevealClip(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, jboolean shouldClip, jboolean inverseClip,
+        jobject clazz, jlong renderNodePtr, jboolean shouldClip, jboolean inverseClip,
         jfloat x, jfloat y, jfloat radius) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().mutableRevealClip().set(
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().mutableRevealClip().set(
             shouldClip, inverseClip, x, y, radius);
-    displayList->mutateStagingProperties().updateClipPath();
+    renderNode->mutateStagingProperties().updateClipPath();
 }
 
 static void android_view_RenderNode_setAlpha(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float alpha) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setAlpha(alpha);
+        jobject clazz, jlong renderNodePtr, float alpha) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setAlpha(alpha);
 }
 
 static void android_view_RenderNode_setHasOverlappingRendering(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, bool hasOverlappingRendering) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setHasOverlappingRendering(hasOverlappingRendering);
+        jobject clazz, jlong renderNodePtr, bool hasOverlappingRendering) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setHasOverlappingRendering(hasOverlappingRendering);
 }
 
 static void android_view_RenderNode_setTranslationX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float tx) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setTranslationX(tx);
+        jobject clazz, jlong renderNodePtr, float tx) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setTranslationX(tx);
 }
 
 static void android_view_RenderNode_setTranslationY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float ty) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setTranslationY(ty);
+        jobject clazz, jlong renderNodePtr, float ty) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setTranslationY(ty);
 }
 
 static void android_view_RenderNode_setTranslationZ(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float tz) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setTranslationZ(tz);
+        jobject clazz, jlong renderNodePtr, float tz) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setTranslationZ(tz);
 }
 
 static void android_view_RenderNode_setRotation(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float rotation) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setRotation(rotation);
+        jobject clazz, jlong renderNodePtr, float rotation) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setRotation(rotation);
 }
 
 static void android_view_RenderNode_setRotationX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float rx) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setRotationX(rx);
+        jobject clazz, jlong renderNodePtr, float rx) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setRotationX(rx);
 }
 
 static void android_view_RenderNode_setRotationY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float ry) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setRotationY(ry);
+        jobject clazz, jlong renderNodePtr, float ry) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setRotationY(ry);
 }
 
 static void android_view_RenderNode_setScaleX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float sx) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setScaleX(sx);
+        jobject clazz, jlong renderNodePtr, float sx) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setScaleX(sx);
 }
 
 static void android_view_RenderNode_setScaleY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float sy) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setScaleY(sy);
-}
-
-static void android_view_RenderNode_setTransformationInfo(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float alpha,
-        float translationX, float translationY, float translationZ,
-        float rotation, float rotationX, float rotationY, float scaleX, float scaleY) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setAlpha(alpha);
-    displayList->mutateStagingProperties().setTranslationX(translationX);
-    displayList->mutateStagingProperties().setTranslationY(translationY);
-    displayList->mutateStagingProperties().setTranslationZ(translationZ);
-    displayList->mutateStagingProperties().setRotation(rotation);
-    displayList->mutateStagingProperties().setRotationX(rotationX);
-    displayList->mutateStagingProperties().setRotationY(rotationY);
-    displayList->mutateStagingProperties().setScaleX(scaleX);
-    displayList->mutateStagingProperties().setScaleY(scaleY);
+        jobject clazz, jlong renderNodePtr, float sy) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setScaleY(sy);
 }
 
 static void android_view_RenderNode_setPivotX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float px) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setPivotX(px);
+        jobject clazz, jlong renderNodePtr, float px) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setPivotX(px);
 }
 
 static void android_view_RenderNode_setPivotY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float py) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setPivotY(py);
+        jobject clazz, jlong renderNodePtr, float py) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setPivotY(py);
 }
 
 static void android_view_RenderNode_setCameraDistance(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float distance) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setCameraDistance(distance);
+        jobject clazz, jlong renderNodePtr, float distance) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setCameraDistance(distance);
 }
 
 static void android_view_RenderNode_setLeft(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, int left) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setLeft(left);
+        jobject clazz, jlong renderNodePtr, int left) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setLeft(left);
 }
 
 static void android_view_RenderNode_setTop(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, int top) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setTop(top);
+        jobject clazz, jlong renderNodePtr, int top) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setTop(top);
 }
 
 static void android_view_RenderNode_setRight(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, int right) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setRight(right);
+        jobject clazz, jlong renderNodePtr, int right) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setRight(right);
 }
 
 static void android_view_RenderNode_setBottom(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, int bottom) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setBottom(bottom);
+        jobject clazz, jlong renderNodePtr, int bottom) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setBottom(bottom);
 }
 
 static void android_view_RenderNode_setLeftTopRightBottom(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, int left, int top,
+        jobject clazz, jlong renderNodePtr, int left, int top,
         int right, int bottom) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().setLeftTopRightBottom(left, top, right, bottom);
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().setLeftTopRightBottom(left, top, right, bottom);
 }
 
 static void android_view_RenderNode_offsetLeftAndRight(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float offset) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().offsetLeftRight(offset);
+        jobject clazz, jlong renderNodePtr, float offset) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().offsetLeftRight(offset);
 }
 
 static void android_view_RenderNode_offsetTopAndBottom(JNIEnv* env,
-        jobject clazz, jlong displayListPtr, float offset) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().offsetTopBottom(offset);
+        jobject clazz, jlong renderNodePtr, float offset) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().offsetTopBottom(offset);
 }
 
+// ----------------------------------------------------------------------------
+// RenderProperties - getters
+// ----------------------------------------------------------------------------
+
 static jboolean android_view_RenderNode_hasOverlappingRendering(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().hasOverlappingRendering();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().hasOverlappingRendering();
 }
 
 static jfloat android_view_RenderNode_getAlpha(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getAlpha();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getAlpha();
 }
 
 static jfloat android_view_RenderNode_getLeft(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getLeft();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getLeft();
 }
 
 static jfloat android_view_RenderNode_getTop(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getTop();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getTop();
 }
 
 static jfloat android_view_RenderNode_getRight(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getRight();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getRight();
 }
 
 static jfloat android_view_RenderNode_getBottom(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getBottom();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getBottom();
 }
 
 static jfloat android_view_RenderNode_getCameraDistance(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getCameraDistance();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getCameraDistance();
 }
 
 static jfloat android_view_RenderNode_getScaleX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getScaleX();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getScaleX();
 }
 
 static jfloat android_view_RenderNode_getScaleY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getScaleY();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getScaleY();
 }
 
 static jfloat android_view_RenderNode_getTranslationX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getTranslationX();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getTranslationX();
 }
 
 static jfloat android_view_RenderNode_getTranslationY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getTranslationY();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getTranslationY();
+}
+
+static jfloat android_view_RenderNode_getTranslationZ(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getTranslationZ();
 }
 
 static jfloat android_view_RenderNode_getRotation(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getRotation();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getRotation();
 }
 
 static jfloat android_view_RenderNode_getRotationX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getRotationX();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getRotationX();
 }
 
 static jfloat android_view_RenderNode_getRotationY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    return displayList->stagingProperties().getRotationY();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().getRotationY();
+}
+
+static jboolean android_view_RenderNode_isPivotExplicitlySet(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    return renderNode->stagingProperties().isPivotExplicitlySet();
+}
+
+static jboolean android_view_RenderNode_hasIdentityMatrix(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().updateMatrix();
+    return !renderNode->stagingProperties().hasTransformMatrix();
+}
+
+// ----------------------------------------------------------------------------
+// RenderProperties - computed getters
+// ----------------------------------------------------------------------------
+
+static void android_view_RenderNode_getTransformMatrix(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr, jlong outMatrixPtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    SkMatrix* outMatrix = reinterpret_cast<SkMatrix*>(outMatrixPtr);
+
+    renderNode->mutateStagingProperties().updateMatrix();
+    const SkMatrix* transformMatrix = renderNode->stagingProperties().getTransformMatrix();
+
+    if (transformMatrix) {
+        *outMatrix = *transformMatrix;
+    } else {
+        outMatrix->setIdentity();
+    }
+}
+
+static void android_view_RenderNode_getInverseTransformMatrix(JNIEnv* env,
+        jobject clazz, jlong renderNodePtr, jlong outMatrixPtr) {
+    // load transform matrix
+    android_view_RenderNode_getTransformMatrix(env, clazz, renderNodePtr, outMatrixPtr);
+    SkMatrix* outMatrix = reinterpret_cast<SkMatrix*>(outMatrixPtr);
+
+    // return it inverted
+    if (!outMatrix->invert(outMatrix)) {
+        // failed to load inverse, pass back identity
+        outMatrix->setIdentity();
+    }
 }
 
 static jfloat android_view_RenderNode_getPivotX(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().updateMatrix();
-    return displayList->stagingProperties().getPivotX();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().updateMatrix();
+    return renderNode->stagingProperties().getPivotX();
 }
 
 static jfloat android_view_RenderNode_getPivotY(JNIEnv* env,
-        jobject clazz, jlong displayListPtr) {
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    displayList->mutateStagingProperties().updateMatrix();
-    return displayList->stagingProperties().getPivotY();
+        jobject clazz, jlong renderNodePtr) {
+    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
+    renderNode->mutateStagingProperties().updateMatrix();
+    return renderNode->stagingProperties().getPivotY();
 }
 
 #endif // USE_OPENGL_RENDERER
@@ -394,10 +436,9 @@
 
 static JNINativeMethod gMethods[] = {
 #ifdef USE_OPENGL_RENDERER
-    { "nCreate",               "()J",    (void*) android_view_RenderNode_create },
-    { "nDestroyDisplayList",   "(J)V",   (void*) android_view_RenderNode_destroyDisplayList },
-    { "nSetDisplayListName",   "(JLjava/lang/String;)V",
-            (void*) android_view_RenderNode_setDisplayListName },
+    { "nCreate",               "(Ljava/lang/String;)J",    (void*) android_view_RenderNode_create },
+    { "nDestroyRenderNode",   "(J)V",   (void*) android_view_RenderNode_destroyRenderNode },
+    { "nSetDisplayListData",   "(JJ)V", (void*) android_view_RenderNode_setDisplayListData },
     { "nOutput",               "(J)V",  (void*) android_view_RenderNode_output },
 
     { "nSetCaching",           "(JZ)V",  (void*) android_view_RenderNode_setCaching },
@@ -424,8 +465,6 @@
     { "nSetRotationY",         "(JF)V",  (void*) android_view_RenderNode_setRotationY },
     { "nSetScaleX",            "(JF)V",  (void*) android_view_RenderNode_setScaleX },
     { "nSetScaleY",            "(JF)V",  (void*) android_view_RenderNode_setScaleY },
-    { "nSetTransformationInfo","(JFFFFFFFFF)V",
-            (void*) android_view_RenderNode_setTransformationInfo },
     { "nSetPivotX",            "(JF)V",  (void*) android_view_RenderNode_setPivotX },
     { "nSetPivotY",            "(JF)V",  (void*) android_view_RenderNode_setPivotY },
     { "nSetCameraDistance",    "(JF)V",  (void*) android_view_RenderNode_setCameraDistance },
@@ -448,11 +487,18 @@
     { "nGetScaleY",               "(J)F",  (void*) android_view_RenderNode_getScaleY },
     { "nGetTranslationX",         "(J)F",  (void*) android_view_RenderNode_getTranslationX },
     { "nGetTranslationY",         "(J)F",  (void*) android_view_RenderNode_getTranslationY },
+    { "nGetTranslationZ",         "(J)F",  (void*) android_view_RenderNode_getTranslationZ },
     { "nGetRotation",             "(J)F",  (void*) android_view_RenderNode_getRotation },
     { "nGetRotationX",            "(J)F",  (void*) android_view_RenderNode_getRotationX },
     { "nGetRotationY",            "(J)F",  (void*) android_view_RenderNode_getRotationY },
-    { "nGetPivotX",               "(J)F",  (void*) android_view_RenderNode_getPivotX },
-    { "nGetPivotY",               "(J)F",  (void*) android_view_RenderNode_getPivotY },
+    { "nIsPivotExplicitlySet",    "(J)Z",  (void*) android_view_RenderNode_isPivotExplicitlySet },
+    { "nHasIdentityMatrix",       "(J)Z",  (void*) android_view_RenderNode_hasIdentityMatrix },
+
+    { "nGetTransformMatrix",       "(JJ)V", (void*) android_view_RenderNode_getTransformMatrix },
+    { "nGetInverseTransformMatrix","(JJ)V", (void*) android_view_RenderNode_getInverseTransformMatrix },
+
+    { "nGetPivotX",                "(J)F",  (void*) android_view_RenderNode_getPivotX },
+    { "nGetPivotY",                "(J)F",  (void*) android_view_RenderNode_getPivotY },
 #endif
 };
 
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index c5ab284..8141a00 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -34,6 +34,7 @@
 #include <gui/SurfaceComposerClient.h>
 
 #include <ui/DisplayInfo.h>
+#include <ui/FrameStats.h>
 #include <ui/Rect.h>
 #include <ui/Region.h>
 
@@ -58,36 +59,21 @@
     jfieldID secure;
 } gPhysicalDisplayInfoClassInfo;
 
+// Implements SkMallocPixelRef::ReleaseProc, to delete the screenshot on unref.
+void DeleteScreenshot(void* addr, void* context) {
+    SkASSERT(addr == ((ScreenshotClient*) context)->getPixels());
+    delete ((ScreenshotClient*) context);
+}
 
-class ScreenshotPixelRef : public SkPixelRef {
-public:
-    ScreenshotPixelRef(const SkImageInfo& info, ScreenshotClient* screenshot) :
-      SkPixelRef(info),
-      mScreenshot(screenshot) {
-        setImmutable();
-    }
+static struct {
+    nsecs_t UNDEFINED_TIME_NANO;
+    jmethodID init;
+} gWindowContentFrameStatsClassInfo;
 
-    virtual ~ScreenshotPixelRef() {
-        delete mScreenshot;
-    }
-
-protected:
-    // overrides from SkPixelRef
-    virtual void* onLockPixels(SkColorTable** ct) {
-        *ct = NULL;
-        return (void*)mScreenshot->getPixels();
-    }
-
-    virtual void onUnlockPixels() {
-    }
-
-    SK_DECLARE_UNFLATTENABLE_OBJECT()
-private:
-    ScreenshotClient* mScreenshot;
-
-    typedef SkPixelRef INHERITED;
-};
-
+static struct {
+    nsecs_t UNDEFINED_TIME_NANO;
+    jmethodID init;
+} gWindowAnimationFrameStatsClassInfo;
 
 // ----------------------------------------------------------------------------
 
@@ -167,20 +153,19 @@
         }
     }
 
-    // takes ownership of ScreenshotClient
-    ScreenshotPixelRef* pixels = new ScreenshotPixelRef(screenshotInfo, screenshot);
     const ssize_t rowBytes =
             screenshot->getStride() * android::bytesPerPixel(screenshot->getFormat());
 
     SkBitmap* bitmap = new SkBitmap();
     bitmap->setConfig(screenshotInfo, (size_t)rowBytes);
     if (screenshotInfo.fWidth > 0 && screenshotInfo.fHeight > 0) {
+        // takes ownership of ScreenshotClient
+        SkMallocPixelRef* pixels = SkMallocPixelRef::NewWithProc(screenshotInfo,
+                (size_t) rowBytes, NULL, (void*) screenshot->getPixels(), &DeleteScreenshot,
+                (void*) screenshot);
+        pixels->setImmutable();
         bitmap->setPixelRef(pixels)->unref();
         bitmap->lockPixels();
-    } else {
-        // be safe with an empty bitmap.
-        delete pixels;
-        bitmap->setPixels(NULL);
     }
 
     return GraphicsJNI::createBitmap(env, bitmap,
@@ -397,6 +382,151 @@
     SurfaceComposerClient::unblankDisplay(token);
 }
 
+static jboolean nativeClearContentFrameStats(JNIEnv* env, jclass clazz, jlong nativeObject) {
+    SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
+    status_t err = ctrl->clearLayerFrameStats();
+
+    if (err < 0 && err != NO_INIT) {
+        doThrowIAE(env);
+    }
+
+    // The other end is not ready, just report we failed.
+    if (err == NO_INIT) {
+        return JNI_FALSE;
+    }
+
+    return JNI_TRUE;
+}
+
+static jboolean nativeGetContentFrameStats(JNIEnv* env, jclass clazz, jlong nativeObject,
+    jobject outStats) {
+    FrameStats stats;
+
+    SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
+    status_t err = ctrl->getLayerFrameStats(&stats);
+    if (err < 0 && err != NO_INIT) {
+        doThrowIAE(env);
+    }
+
+    // The other end is not ready, fine just return empty stats.
+    if (err == NO_INIT) {
+        return JNI_FALSE;
+    }
+
+    jlong refreshPeriodNano = static_cast<jlong>(stats.refreshPeriodNano);
+    size_t frameCount = stats.desiredPresentTimesNano.size();
+
+    jlongArray postedTimesNanoDst = env->NewLongArray(frameCount);
+    if (postedTimesNanoDst == NULL) {
+        return JNI_FALSE;
+    }
+
+    jlongArray presentedTimesNanoDst = env->NewLongArray(frameCount);
+    if (presentedTimesNanoDst == NULL) {
+        return JNI_FALSE;
+    }
+
+    jlongArray readyTimesNanoDst = env->NewLongArray(frameCount);
+    if (readyTimesNanoDst == NULL) {
+        return JNI_FALSE;
+    }
+
+    nsecs_t postedTimesNanoSrc[frameCount];
+    nsecs_t presentedTimesNanoSrc[frameCount];
+    nsecs_t readyTimesNanoSrc[frameCount];
+
+    for (size_t i = 0; i < frameCount; i++) {
+        nsecs_t postedTimeNano = stats.desiredPresentTimesNano[i];
+        if (postedTimeNano == INT64_MAX) {
+            postedTimeNano = gWindowContentFrameStatsClassInfo.UNDEFINED_TIME_NANO;
+        }
+        postedTimesNanoSrc[i] = postedTimeNano;
+
+        nsecs_t presentedTimeNano = stats.actualPresentTimesNano[i];
+        if (presentedTimeNano == INT64_MAX) {
+            presentedTimeNano = gWindowContentFrameStatsClassInfo.UNDEFINED_TIME_NANO;
+        }
+        presentedTimesNanoSrc[i] = presentedTimeNano;
+
+        nsecs_t readyTimeNano = stats.frameReadyTimesNano[i];
+        if (readyTimeNano == INT64_MAX) {
+            readyTimeNano = gWindowContentFrameStatsClassInfo.UNDEFINED_TIME_NANO;
+        }
+        readyTimesNanoSrc[i] = readyTimeNano;
+    }
+
+    env->SetLongArrayRegion(postedTimesNanoDst, 0, frameCount, postedTimesNanoSrc);
+    env->SetLongArrayRegion(presentedTimesNanoDst, 0, frameCount, presentedTimesNanoSrc);
+    env->SetLongArrayRegion(readyTimesNanoDst, 0, frameCount, readyTimesNanoSrc);
+
+    env->CallVoidMethod(outStats, gWindowContentFrameStatsClassInfo.init, refreshPeriodNano,
+            postedTimesNanoDst, presentedTimesNanoDst, readyTimesNanoDst);
+
+    if (env->ExceptionCheck()) {
+        return JNI_FALSE;
+    }
+
+    return JNI_TRUE;
+}
+
+static jboolean nativeClearAnimationFrameStats(JNIEnv* env, jclass clazz) {
+    status_t err = SurfaceComposerClient::clearAnimationFrameStats();
+
+    if (err < 0 && err != NO_INIT) {
+        doThrowIAE(env);
+    }
+
+    // The other end is not ready, just report we failed.
+    if (err == NO_INIT) {
+        return JNI_FALSE;
+    }
+
+    return JNI_TRUE;
+}
+
+static jboolean nativeGetAnimationFrameStats(JNIEnv* env, jclass clazz, jobject outStats) {
+    FrameStats stats;
+
+    status_t err = SurfaceComposerClient::getAnimationFrameStats(&stats);
+    if (err < 0 && err != NO_INIT) {
+        doThrowIAE(env);
+    }
+
+    // The other end is not ready, fine just return empty stats.
+    if (err == NO_INIT) {
+        return JNI_FALSE;
+    }
+
+    jlong refreshPeriodNano = static_cast<jlong>(stats.refreshPeriodNano);
+    size_t frameCount = stats.desiredPresentTimesNano.size();
+
+    jlongArray presentedTimesNanoDst = env->NewLongArray(frameCount);
+    if (presentedTimesNanoDst == NULL) {
+        return JNI_FALSE;
+    }
+
+    nsecs_t presentedTimesNanoSrc[frameCount];
+
+    for (size_t i = 0; i < frameCount; i++) {
+        nsecs_t presentedTimeNano = stats.desiredPresentTimesNano[i];
+        if (presentedTimeNano == INT64_MAX) {
+            presentedTimeNano = gWindowContentFrameStatsClassInfo.UNDEFINED_TIME_NANO;
+        }
+        presentedTimesNanoSrc[i] = presentedTimeNano;
+    }
+
+    env->SetLongArrayRegion(presentedTimesNanoDst, 0, frameCount, presentedTimesNanoSrc);
+
+    env->CallVoidMethod(outStats, gWindowAnimationFrameStatsClassInfo.init, refreshPeriodNano,
+            presentedTimesNanoDst);
+
+    if (env->ExceptionCheck()) {
+        return JNI_FALSE;
+    }
+
+    return JNI_TRUE;
+}
+
 // ----------------------------------------------------------------------------
 
 static JNINativeMethod sSurfaceControlMethods[] = {
@@ -452,6 +582,14 @@
             (void*)nativeBlankDisplay },
     {"nativeUnblankDisplay", "(Landroid/os/IBinder;)V",
             (void*)nativeUnblankDisplay },
+    {"nativeClearContentFrameStats", "(J)Z",
+            (void*)nativeClearContentFrameStats },
+    {"nativeGetContentFrameStats", "(JLandroid/view/WindowContentFrameStats;)Z",
+            (void*)nativeGetContentFrameStats },
+    {"nativeClearAnimationFrameStats", "()Z",
+            (void*)nativeClearAnimationFrameStats },
+    {"nativeGetAnimationFrameStats", "(Landroid/view/WindowAnimationFrameStats;)Z",
+            (void*)nativeGetAnimationFrameStats },
 };
 
 int register_android_view_SurfaceControl(JNIEnv* env)
@@ -467,6 +605,19 @@
     gPhysicalDisplayInfoClassInfo.xDpi = env->GetFieldID(clazz, "xDpi", "F");
     gPhysicalDisplayInfoClassInfo.yDpi = env->GetFieldID(clazz, "yDpi", "F");
     gPhysicalDisplayInfoClassInfo.secure = env->GetFieldID(clazz, "secure", "Z");
+
+    jclass frameStatsClazz = env->FindClass("android/view/FrameStats");
+    jfieldID undefined_time_nano_field =  env->GetStaticFieldID(frameStatsClazz, "UNDEFINED_TIME_NANO", "J");
+    nsecs_t undefined_time_nano = env->GetStaticLongField(frameStatsClazz, undefined_time_nano_field);
+
+    jclass contFrameStatsClazz = env->FindClass("android/view/WindowContentFrameStats");
+    gWindowContentFrameStatsClassInfo.init =  env->GetMethodID(contFrameStatsClazz, "init", "(J[J[J[J)V");
+    gWindowContentFrameStatsClassInfo.UNDEFINED_TIME_NANO = undefined_time_nano;
+
+    jclass animFrameStatsClazz = env->FindClass("android/view/WindowAnimationFrameStats");
+    gWindowAnimationFrameStatsClassInfo.init =  env->GetMethodID(animFrameStatsClazz, "init", "(J[J)V");
+    gWindowAnimationFrameStatsClassInfo.UNDEFINED_TIME_NANO = undefined_time_nano;
+
     return err;
 }
 
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index 28cee4b..b5f489d 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -84,7 +84,7 @@
         jlong proxyPtr, jobject jsurface) {
     RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
     sp<ANativeWindow> window = android_view_Surface_getNativeWindow(env, jsurface);
-    return proxy->initialize(window.get());
+    return proxy->initialize(window);
 }
 
 static void android_view_ThreadedRenderer_updateSurface(JNIEnv* env, jobject clazz,
@@ -94,7 +94,17 @@
     if (jsurface) {
         window = android_view_Surface_getNativeWindow(env, jsurface);
     }
-    proxy->updateSurface(window.get());
+    proxy->updateSurface(window);
+}
+
+static void android_view_ThreadedRenderer_pauseSurface(JNIEnv* env, jobject clazz,
+        jlong proxyPtr, jobject jsurface) {
+    RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
+    sp<ANativeWindow> window;
+    if (jsurface) {
+        window = android_view_Surface_getNativeWindow(env, jsurface);
+    }
+    proxy->pauseSurface(window);
 }
 
 static void android_view_ThreadedRenderer_setup(JNIEnv* env, jobject clazz,
@@ -103,14 +113,6 @@
     proxy->setup(width, height);
 }
 
-static void android_view_ThreadedRenderer_setDisplayListData(JNIEnv* env, jobject clazz,
-        jlong proxyPtr, jlong displayListPtr, jlong newDataPtr) {
-    RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
-    RenderNode* displayList = reinterpret_cast<RenderNode*>(displayListPtr);
-    DisplayListData* newData = reinterpret_cast<DisplayListData*>(newDataPtr);
-    proxy->setDisplayListData(displayList, newData);
-}
-
 static void android_view_ThreadedRenderer_drawDisplayList(JNIEnv* env, jobject clazz,
         jlong proxyPtr, jlong displayListPtr, jint dirtyLeft, jint dirtyTop,
         jint dirtyRight, jint dirtyBottom) {
@@ -119,24 +121,17 @@
     proxy->drawDisplayList(displayList, dirtyLeft, dirtyTop, dirtyRight, dirtyBottom);
 }
 
-static void android_view_ThreadedRenderer_destroyCanvas(JNIEnv* env, jobject clazz,
+static void android_view_ThreadedRenderer_destroyCanvasAndSurface(JNIEnv* env, jobject clazz,
         jlong proxyPtr) {
     RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
-    proxy->destroyCanvas();
+    proxy->destroyCanvasAndSurface();
 }
 
-static void android_view_ThreadedRenderer_attachFunctor(JNIEnv* env, jobject clazz,
-        jlong proxyPtr, jlong functorPtr) {
+static void android_view_ThreadedRenderer_invokeFunctor(JNIEnv* env, jobject clazz,
+        jlong proxyPtr, jlong functorPtr, jboolean waitForCompletion) {
     RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
     Functor* functor = reinterpret_cast<Functor*>(functorPtr);
-    proxy->attachFunctor(functor);
-}
-
-static void android_view_ThreadedRenderer_detachFunctor(JNIEnv* env, jobject clazz,
-        jlong proxyPtr, jlong functorPtr) {
-    RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
-    Functor* functor = reinterpret_cast<Functor*>(functorPtr);
-    proxy->detachFunctor(functor);
+    proxy->invokeFunctor(functor, waitForCompletion);
 }
 
 static void android_view_ThreadedRenderer_runWithGlContext(JNIEnv* env, jobject clazz,
@@ -175,6 +170,12 @@
     proxy->destroyLayer(layer);
 }
 
+static void android_view_ThreadedRenderer_fence(JNIEnv* env, jobject clazz,
+        jlong proxyPtr) {
+    RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
+    proxy->fence();
+}
+
 #endif
 
 // ----------------------------------------------------------------------------
@@ -190,17 +191,17 @@
     { "nDeleteProxy", "(J)V", (void*) android_view_ThreadedRenderer_deleteProxy },
     { "nInitialize", "(JLandroid/view/Surface;)Z", (void*) android_view_ThreadedRenderer_initialize },
     { "nUpdateSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_updateSurface },
+    { "nPauseSurface", "(JLandroid/view/Surface;)V", (void*) android_view_ThreadedRenderer_pauseSurface },
     { "nSetup", "(JII)V", (void*) android_view_ThreadedRenderer_setup },
-    { "nSetDisplayListData", "(JJJ)V", (void*) android_view_ThreadedRenderer_setDisplayListData },
     { "nDrawDisplayList", "(JJIIII)V", (void*) android_view_ThreadedRenderer_drawDisplayList },
-    { "nDestroyCanvas", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvas },
-    { "nAttachFunctor", "(JJ)V", (void*) android_view_ThreadedRenderer_attachFunctor },
-    { "nDetachFunctor", "(JJ)V", (void*) android_view_ThreadedRenderer_detachFunctor },
+    { "nDestroyCanvasAndSurface", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvasAndSurface },
+    { "nInvokeFunctor", "(JJZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor },
     { "nRunWithGlContext", "(JLjava/lang/Runnable;)V", (void*) android_view_ThreadedRenderer_runWithGlContext },
     { "nCreateDisplayListLayer", "(JII)J", (void*) android_view_ThreadedRenderer_createDisplayListLayer },
     { "nCreateTextureLayer", "(J)J", (void*) android_view_ThreadedRenderer_createTextureLayer },
     { "nCopyLayerInto", "(JJJ)Z", (void*) android_view_ThreadedRenderer_copyLayerInto },
     { "nDestroyLayer", "(JJ)V", (void*) android_view_ThreadedRenderer_destroyLayer },
+    { "nFence", "(J)V", (void*) android_view_ThreadedRenderer_fence },
 #endif
 };
 
diff --git a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp
index a860918..230658f 100644
--- a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp
+++ b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp
@@ -19,11 +19,12 @@
 
 #include <android_runtime/AndroidRuntime.h>
 
-#include <utils/Log.h>
-#include <androidfw/ZipFileRO.h>
-#include <androidfw/ZipUtils.h>
 #include <ScopedUtfChars.h>
 #include <UniquePtr.h>
+#include <androidfw/ZipFileRO.h>
+#include <androidfw/ZipUtils.h>
+#include <utils/Log.h>
+#include <utils/Vector.h>
 
 #include <zlib.h>
 
@@ -54,17 +55,19 @@
 namespace android {
 
 // These match PackageManager.java install codes
-typedef enum {
+enum install_status_t {
     INSTALL_SUCCEEDED = 1,
     INSTALL_FAILED_INVALID_APK = -2,
     INSTALL_FAILED_INSUFFICIENT_STORAGE = -4,
     INSTALL_FAILED_CONTAINER_ERROR = -18,
     INSTALL_FAILED_INTERNAL_ERROR = -110,
-} install_status_t;
+    INSTALL_FAILED_NO_MATCHING_ABIS = -113,
+    NO_NATIVE_LIBRARIES = -114
+};
 
 typedef install_status_t (*iterFunc)(JNIEnv*, void*, ZipFileRO*, ZipEntryRO, const char*);
 
-// Equivalent to isFilenameSafe
+// Equivalent to android.os.FileUtils.isFilenameSafe
 static bool
 isFilenameSafe(const char* filename)
 {
@@ -268,126 +271,252 @@
     return INSTALL_SUCCEEDED;
 }
 
-static install_status_t
-iterateOverNativeFiles(JNIEnv *env, jstring javaFilePath, jstring javaCpuAbi, jstring javaCpuAbi2,
-        iterFunc callFunc, void* callArg) {
-    ScopedUtfChars filePath(env, javaFilePath);
-    ScopedUtfChars cpuAbi(env, javaCpuAbi);
-    ScopedUtfChars cpuAbi2(env, javaCpuAbi2);
-
-    UniquePtr<ZipFileRO> zipFile(ZipFileRO::open(filePath.c_str()));
-    if (zipFile.get() == NULL) {
-        ALOGI("Couldn't open APK %s\n", filePath.c_str());
-        return INSTALL_FAILED_INVALID_APK;
+/*
+ * An iterator over all shared libraries in a zip file. An entry is
+ * considered to be a shared library if all of the conditions below are
+ * satisfied :
+ *
+ * - The entry is under the lib/ directory.
+ * - The entry name ends with ".so" and the entry name starts with "lib",
+ *   an exception is made for entries whose name is "gdbserver".
+ * - The entry filename is "safe" (as determined by isFilenameSafe).
+ *
+ */
+class NativeLibrariesIterator {
+private:
+    NativeLibrariesIterator(ZipFileRO* zipFile, void* cookie)
+        : mZipFile(zipFile), mCookie(cookie), mLastSlash(NULL) {
+        fileName[0] = '\0';
     }
 
+public:
+    static NativeLibrariesIterator* create(ZipFileRO* zipFile) {
+        void* cookie = NULL;
+        if (!zipFile->startIteration(&cookie)) {
+            return NULL;
+        }
+
+        return new NativeLibrariesIterator(zipFile, cookie);
+    }
+
+    ZipEntryRO next() {
+        ZipEntryRO next = NULL;
+        while ((next = mZipFile->nextEntry(mCookie)) != NULL) {
+            // Make sure this entry has a filename.
+            if (mZipFile->getEntryFileName(next, fileName, sizeof(fileName))) {
+                continue;
+            }
+
+            // Make sure we're in the lib directory of the ZIP.
+            if (strncmp(fileName, APK_LIB, APK_LIB_LEN)) {
+                continue;
+            }
+
+            // Make sure the filename is at least to the minimum library name size.
+            const size_t fileNameLen = strlen(fileName);
+            static const size_t minLength = APK_LIB_LEN + 2 + LIB_PREFIX_LEN + 1 + LIB_SUFFIX_LEN;
+            if (fileNameLen < minLength) {
+                continue;
+            }
+
+            const char* lastSlash = strrchr(fileName, '/');
+            ALOG_ASSERT(lastSlash != NULL, "last slash was null somehow for %s\n", fileName);
+
+            // Exception: If we find the gdbserver binary, return it.
+            if (!strncmp(lastSlash + 1, GDBSERVER, GDBSERVER_LEN)) {
+                break;
+            }
+
+            // Make sure the filename starts with lib and ends with ".so".
+            if (strncmp(fileName + fileNameLen - LIB_SUFFIX_LEN, LIB_SUFFIX, LIB_SUFFIX_LEN)
+                || strncmp(lastSlash, LIB_PREFIX, LIB_PREFIX_LEN)) {
+                continue;
+            }
+
+            // Make sure the filename is safe.
+            if (!isFilenameSafe(lastSlash + 1)) {
+                continue;
+            }
+
+            mLastSlash = lastSlash;
+            break;
+        }
+
+        return next;
+    }
+
+    inline const char* currentEntry() const {
+        return fileName;
+    }
+
+    inline const char* lastSlash() const {
+        return mLastSlash;
+    }
+
+    virtual ~NativeLibrariesIterator() {
+        mZipFile->endIteration(mCookie);
+    }
+private:
+
     char fileName[PATH_MAX];
-    bool hasPrimaryAbi = false;
+    ZipFileRO* const mZipFile;
+    void* mCookie;
+    const char* mLastSlash;
+};
 
-    void* cookie = NULL;
-    if (!zipFile->startIteration(&cookie)) {
-        ALOGI("Couldn't iterate over APK%s\n", filePath.c_str());
+static install_status_t
+iterateOverNativeFiles(JNIEnv *env, jlong apkHandle, jstring javaCpuAbi,
+                       iterFunc callFunc, void* callArg) {
+    ZipFileRO* zipFile = reinterpret_cast<ZipFileRO*>(apkHandle);
+    if (zipFile == NULL) {
         return INSTALL_FAILED_INVALID_APK;
     }
 
+    UniquePtr<NativeLibrariesIterator> it(NativeLibrariesIterator::create(zipFile));
+    if (it.get() == NULL) {
+        return INSTALL_FAILED_INVALID_APK;
+    }
+
+    const ScopedUtfChars cpuAbi(env, javaCpuAbi);
+    if (cpuAbi.c_str() == NULL) {
+        // This would've thrown, so this return code isn't observable by
+        // Java.
+        return INSTALL_FAILED_INVALID_APK;
+    }
     ZipEntryRO entry = NULL;
-    while ((entry = zipFile->nextEntry(cookie)) != NULL) {
-        // Make sure this entry has a filename.
-        if (zipFile->getEntryFileName(entry, fileName, sizeof(fileName))) {
-            continue;
-        }
-
-        // Make sure we're in the lib directory of the ZIP.
-        if (strncmp(fileName, APK_LIB, APK_LIB_LEN)) {
-            continue;
-        }
-
-        // Make sure the filename is at least to the minimum library name size.
-        const size_t fileNameLen = strlen(fileName);
-        static const size_t minLength = APK_LIB_LEN + 2 + LIB_PREFIX_LEN + 1 + LIB_SUFFIX_LEN;
-        if (fileNameLen < minLength) {
-            continue;
-        }
-
-        const char* lastSlash = strrchr(fileName, '/');
-        ALOG_ASSERT(lastSlash != NULL, "last slash was null somehow for %s\n", fileName);
+    while ((entry = it->next()) != NULL) {
+        const char* fileName = it->currentEntry();
+        const char* lastSlash = it->lastSlash();
 
         // Check to make sure the CPU ABI of this file is one we support.
         const char* cpuAbiOffset = fileName + APK_LIB_LEN;
         const size_t cpuAbiRegionSize = lastSlash - cpuAbiOffset;
 
-        ALOGV("Comparing ABIs %s and %s versus %s\n", cpuAbi.c_str(), cpuAbi2.c_str(), cpuAbiOffset);
-        if (cpuAbi.size() == cpuAbiRegionSize
-                && *(cpuAbiOffset + cpuAbi.size()) == '/'
-                && !strncmp(cpuAbiOffset, cpuAbi.c_str(), cpuAbiRegionSize)) {
-            ALOGV("Using primary ABI %s\n", cpuAbi.c_str());
-            hasPrimaryAbi = true;
-        } else if (cpuAbi2.size() == cpuAbiRegionSize
-                && *(cpuAbiOffset + cpuAbi2.size()) == '/'
-                && !strncmp(cpuAbiOffset, cpuAbi2.c_str(), cpuAbiRegionSize)) {
-
-            /*
-             * If this library matches both the primary and secondary ABIs,
-             * only use the primary ABI.
-             */
-            if (hasPrimaryAbi) {
-                ALOGV("Already saw primary ABI, skipping secondary ABI %s\n", cpuAbi2.c_str());
-                continue;
-            } else {
-                ALOGV("Using secondary ABI %s\n", cpuAbi2.c_str());
-            }
-        } else {
-            ALOGV("abi didn't match anything: %s (end at %zd)\n", cpuAbiOffset, cpuAbiRegionSize);
-            continue;
-        }
-
-        // If this is a .so file, check to see if we need to copy it.
-        if ((!strncmp(fileName + fileNameLen - LIB_SUFFIX_LEN, LIB_SUFFIX, LIB_SUFFIX_LEN)
-                    && !strncmp(lastSlash, LIB_PREFIX, LIB_PREFIX_LEN)
-                    && isFilenameSafe(lastSlash + 1))
-                || !strncmp(lastSlash + 1, GDBSERVER, GDBSERVER_LEN)) {
-
-            install_status_t ret = callFunc(env, callArg, zipFile.get(), entry, lastSlash + 1);
+        if (cpuAbi.size() == cpuAbiRegionSize && !strncmp(cpuAbiOffset, cpuAbi.c_str(), cpuAbiRegionSize)) {
+            install_status_t ret = callFunc(env, callArg, zipFile, entry, lastSlash + 1);
 
             if (ret != INSTALL_SUCCEEDED) {
                 ALOGV("Failure for entry %s", lastSlash + 1);
-                zipFile->endIteration(cookie);
                 return ret;
             }
         }
     }
 
-    zipFile->endIteration(cookie);
-
     return INSTALL_SUCCEEDED;
 }
 
+
+static int findSupportedAbi(JNIEnv *env, jlong apkHandle, jobjectArray supportedAbisArray) {
+    const int numAbis = env->GetArrayLength(supportedAbisArray);
+    Vector<ScopedUtfChars*> supportedAbis;
+
+    for (int i = 0; i < numAbis; ++i) {
+        supportedAbis.add(new ScopedUtfChars(env,
+            (jstring) env->GetObjectArrayElement(supportedAbisArray, i)));
+    }
+
+    ZipFileRO* zipFile = reinterpret_cast<ZipFileRO*>(apkHandle);
+    if (zipFile == NULL) {
+        return INSTALL_FAILED_INVALID_APK;
+    }
+
+    UniquePtr<NativeLibrariesIterator> it(NativeLibrariesIterator::create(zipFile));
+    if (it.get() == NULL) {
+        return INSTALL_FAILED_INVALID_APK;
+    }
+
+    ZipEntryRO entry = NULL;
+    char fileName[PATH_MAX];
+    int status = NO_NATIVE_LIBRARIES;
+    while ((entry = it->next()) != NULL) {
+        // We're currently in the lib/ directory of the APK, so it does have some native
+        // code. We should return INSTALL_FAILED_NO_MATCHING_ABIS if none of the
+        // libraries match.
+        if (status == NO_NATIVE_LIBRARIES) {
+            status = INSTALL_FAILED_NO_MATCHING_ABIS;
+        }
+
+        const char* fileName = it->currentEntry();
+        const char* lastSlash = it->lastSlash();
+
+        // Check to see if this CPU ABI matches what we are looking for.
+        const char* abiOffset = fileName + APK_LIB_LEN;
+        const size_t abiSize = lastSlash - abiOffset;
+        for (int i = 0; i < numAbis; i++) {
+            const ScopedUtfChars* abi = supportedAbis[i];
+            if (abi->size() == abiSize && !strncmp(abiOffset, abi->c_str(), abiSize)) {
+                // The entry that comes in first (i.e. with a lower index) has the higher priority.
+                if (((i < status) && (status >= 0)) || (status < 0) ) {
+                    status = i;
+                }
+            }
+        }
+    }
+
+    for (int i = 0; i < numAbis; ++i) {
+        delete supportedAbis[i];
+    }
+
+    return status;
+}
+
 static jint
 com_android_internal_content_NativeLibraryHelper_copyNativeBinaries(JNIEnv *env, jclass clazz,
-        jstring javaFilePath, jstring javaNativeLibPath, jstring javaCpuAbi, jstring javaCpuAbi2)
+        jlong apkHandle, jstring javaNativeLibPath, jstring javaCpuAbi)
 {
-    return (jint) iterateOverNativeFiles(env, javaFilePath, javaCpuAbi, javaCpuAbi2,
+    return (jint) iterateOverNativeFiles(env, apkHandle, javaCpuAbi,
             copyFileIfChanged, &javaNativeLibPath);
 }
 
 static jlong
 com_android_internal_content_NativeLibraryHelper_sumNativeBinaries(JNIEnv *env, jclass clazz,
-        jstring javaFilePath, jstring javaCpuAbi, jstring javaCpuAbi2)
+        jlong apkHandle, jstring javaCpuAbi)
 {
     size_t totalSize = 0;
 
-    iterateOverNativeFiles(env, javaFilePath, javaCpuAbi, javaCpuAbi2, sumFiles, &totalSize);
+    iterateOverNativeFiles(env, apkHandle, javaCpuAbi, sumFiles, &totalSize);
 
     return totalSize;
 }
 
+static jint
+com_android_internal_content_NativeLibraryHelper_findSupportedAbi(JNIEnv *env, jclass clazz,
+        jlong apkHandle, jobjectArray javaCpuAbisToSearch)
+{
+    return (jint) findSupportedAbi(env, apkHandle, javaCpuAbisToSearch);
+}
+
+static jlong
+com_android_internal_content_NativeLibraryHelper_openApk(JNIEnv *env, jclass, jstring apkPath)
+{
+    ScopedUtfChars filePath(env, apkPath);
+    ZipFileRO* zipFile = ZipFileRO::open(filePath.c_str());
+
+    return reinterpret_cast<jlong>(zipFile);
+}
+
+static void
+com_android_internal_content_NativeLibraryHelper_close(JNIEnv *env, jclass, jlong apkHandle)
+{
+    delete reinterpret_cast<ZipFileRO*>(apkHandle);
+}
+
 static JNINativeMethod gMethods[] = {
+    {"nativeOpenApk",
+            "(Ljava/lang/String;)J",
+            (void *)com_android_internal_content_NativeLibraryHelper_openApk},
+    {"nativeClose",
+            "(J)V",
+            (void *)com_android_internal_content_NativeLibraryHelper_close},
     {"nativeCopyNativeBinaries",
-            "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I",
+            "(JLjava/lang/String;Ljava/lang/String;)I",
             (void *)com_android_internal_content_NativeLibraryHelper_copyNativeBinaries},
     {"nativeSumNativeBinaries",
-            "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)J",
+            "(JLjava/lang/String;)J",
             (void *)com_android_internal_content_NativeLibraryHelper_sumNativeBinaries},
+    {"nativeFindSupportedAbi",
+            "(J[Ljava/lang/String;)I",
+            (void *)com_android_internal_content_NativeLibraryHelper_findSupportedAbi},
 };
 
 
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
new file mode 100644
index 0000000..a61fa87
--- /dev/null
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -0,0 +1,608 @@
+/*
+ * Copyright (C) 2008 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 "android_runtime/AndroidRuntime.h"
+
+// sys/mount.h has to come before linux/fs.h due to redefinition of MS_RDONLY, MS_BIND, etc
+#include <sys/mount.h>
+#include <linux/fs.h>
+
+#include <grp.h>
+#include <paths.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <sys/resource.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+#include "cutils/fs.h"
+#include "cutils/multiuser.h"
+#include "cutils/sched_policy.h"
+#include "utils/String8.h"
+#include "JNIHelp.h"
+#include "ScopedLocalRef.h"
+#include "ScopedPrimitiveArray.h"
+#include "ScopedUtfChars.h"
+
+#if defined(HAVE_PRCTL)
+#include <sys/prctl.h>
+#endif
+
+#include <selinux/android.h>
+
+#if defined(__linux__)
+#include <sys/personality.h>
+#include <sys/utsname.h>
+#if defined(HAVE_ANDROID_OS)
+#include <sys/capability.h>
+#endif
+#endif
+
+namespace {
+
+using android::String8;
+
+static pid_t gSystemServerPid = 0;
+
+static const char kZygoteClassName[] = "com/android/internal/os/Zygote";
+static jclass gZygoteClass;
+static jmethodID gCallPostForkChildHooks;
+
+// Must match values in com.android.internal.os.Zygote.
+enum MountExternalKind {
+  MOUNT_EXTERNAL_NONE = 0,
+  MOUNT_EXTERNAL_SINGLEUSER = 1,
+  MOUNT_EXTERNAL_MULTIUSER = 2,
+  MOUNT_EXTERNAL_MULTIUSER_ALL = 3,
+};
+
+static void RuntimeAbort(JNIEnv* env) {
+  env->FatalError("RuntimeAbort");
+}
+
+// This signal handler is for zygote mode, since the zygote must reap its children
+static void SigChldHandler(int /*signal_number*/) {
+  pid_t pid;
+  int status;
+
+  while ((pid = waitpid(-1, &status, WNOHANG)) > 0) {
+     // Log process-death status that we care about.  In general it is
+     // not safe to call LOG(...) from a signal handler because of
+     // possible reentrancy.  However, we know a priori that the
+     // current implementation of LOG() is safe to call from a SIGCHLD
+     // handler in the zygote process.  If the LOG() implementation
+     // changes its locking strategy or its use of syscalls within the
+     // lazy-init critical section, its use here may become unsafe.
+    if (WIFEXITED(status)) {
+      if (WEXITSTATUS(status)) {
+        ALOGI("Process %d exited cleanly (%d)", pid, WEXITSTATUS(status));
+      } else if (false) {
+        ALOGI("Process %d exited cleanly (%d)", pid, WEXITSTATUS(status));
+      }
+    } else if (WIFSIGNALED(status)) {
+      if (WTERMSIG(status) != SIGKILL) {
+        ALOGI("Process %d exited cleanly (%d)", pid, WTERMSIG(status));
+      } else if (false) {
+        ALOGI("Process %d exited cleanly (%d)", pid, WTERMSIG(status));
+      }
+#ifdef WCOREDUMP
+      if (WCOREDUMP(status)) {
+        ALOGI("Process %d dumped core.", pid);
+      }
+#endif /* ifdef WCOREDUMP */
+    }
+
+    // If the just-crashed process is the system_server, bring down zygote
+    // so that it is restarted by init and system server will be restarted
+    // from there.
+    if (pid == gSystemServerPid) {
+      ALOGE("Exit zygote because system server (%d) has terminated");
+      kill(getpid(), SIGKILL);
+    }
+  }
+
+  if (pid < 0) {
+    ALOGW("Zygote SIGCHLD error in waitpid: %d", errno);
+  }
+}
+
+// Configures the SIGCHLD handler for the zygote process. This is configured
+// very late, because earlier in the runtime we may fork() and exec()
+// other processes, and we want to waitpid() for those rather than
+// have them be harvested immediately.
+//
+// This ends up being called repeatedly before each fork(), but there's
+// no real harm in that.
+static void SetSigChldHandler() {
+  struct sigaction sa;
+  memset(&sa, 0, sizeof(sa));
+  sa.sa_handler = SigChldHandler;
+
+  int err = sigaction(SIGCHLD, &sa, NULL);
+  if (err < 0) {
+    ALOGW("Error setting SIGCHLD handler: %d", errno);
+  }
+}
+
+// Sets the SIGCHLD handler back to default behavior in zygote children.
+static void UnsetSigChldHandler() {
+  struct sigaction sa;
+  memset(&sa, 0, sizeof(sa));
+  sa.sa_handler = SIG_DFL;
+
+  int err = sigaction(SIGCHLD, &sa, NULL);
+  if (err < 0) {
+    ALOGW("Error unsetting SIGCHLD handler: %d", errno);
+  }
+}
+
+// Calls POSIX setgroups() using the int[] object as an argument.
+// A NULL argument is tolerated.
+static void SetGids(JNIEnv* env, jintArray javaGids) {
+  if (javaGids == NULL) {
+    return;
+  }
+
+  ScopedIntArrayRO gids(env, javaGids);
+  if (gids.get() == NULL) {
+      RuntimeAbort(env);
+  }
+  int rc = setgroups(gids.size(), reinterpret_cast<const gid_t*>(&gids[0]));
+  if (rc == -1) {
+    ALOGE("setgroups failed");
+    RuntimeAbort(env);
+  }
+}
+
+// Sets the resource limits via setrlimit(2) for the values in the
+// two-dimensional array of integers that's passed in. The second dimension
+// contains a tuple of length 3: (resource, rlim_cur, rlim_max). NULL is
+// treated as an empty array.
+static void SetRLimits(JNIEnv* env, jobjectArray javaRlimits) {
+  if (javaRlimits == NULL) {
+    return;
+  }
+
+  rlimit rlim;
+  memset(&rlim, 0, sizeof(rlim));
+
+  for (int i = 0; i < env->GetArrayLength(javaRlimits); ++i) {
+    ScopedLocalRef<jobject> javaRlimitObject(env, env->GetObjectArrayElement(javaRlimits, i));
+    ScopedIntArrayRO javaRlimit(env, reinterpret_cast<jintArray>(javaRlimitObject.get()));
+    if (javaRlimit.size() != 3) {
+      ALOGE("rlimits array must have a second dimension of size 3");
+      RuntimeAbort(env);
+    }
+
+    rlim.rlim_cur = javaRlimit[1];
+    rlim.rlim_max = javaRlimit[2];
+
+    int rc = setrlimit(javaRlimit[0], &rlim);
+    if (rc == -1) {
+      ALOGE("setrlimit(%d, {%d, %d}) failed", javaRlimit[0], rlim.rlim_cur, rlim.rlim_max);
+      RuntimeAbort(env);
+    }
+  }
+}
+
+#if defined(HAVE_ANDROID_OS)
+
+// The debug malloc library needs to know whether it's the zygote or a child.
+extern "C" int gMallocLeakZygoteChild;
+
+static void EnableKeepCapabilities(JNIEnv* env) {
+  int rc = prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
+  if (rc == -1) {
+    ALOGE("prctl(PR_SET_KEEPCAPS) failed");
+    RuntimeAbort(env);
+  }
+}
+
+static void DropCapabilitiesBoundingSet(JNIEnv* env) {
+  for (int i = 0; prctl(PR_CAPBSET_READ, i, 0, 0, 0) >= 0; i++) {
+    int rc = prctl(PR_CAPBSET_DROP, i, 0, 0, 0);
+    if (rc == -1) {
+      if (errno == EINVAL) {
+        ALOGE("prctl(PR_CAPBSET_DROP) failed with EINVAL. Please verify "
+              "your kernel is compiled with file capabilities support");
+      } else {
+        ALOGE("prctl(PR_CAPBSET_DROP) failed");
+        RuntimeAbort(env);
+      }
+    }
+  }
+}
+
+static void SetCapabilities(JNIEnv* env, int64_t permitted, int64_t effective) {
+  __user_cap_header_struct capheader;
+  memset(&capheader, 0, sizeof(capheader));
+  capheader.version = _LINUX_CAPABILITY_VERSION_3;
+  capheader.pid = 0;
+
+  __user_cap_data_struct capdata[2];
+  memset(&capdata, 0, sizeof(capdata));
+  capdata[0].effective = effective;
+  capdata[1].effective = effective >> 32;
+  capdata[0].permitted = permitted;
+  capdata[1].permitted = permitted >> 32;
+
+  if (capset(&capheader, &capdata[0]) == -1) {
+    ALOGE("capset(%lld, %lld) failed", permitted, effective);
+    RuntimeAbort(env);
+  }
+}
+
+static void SetSchedulerPolicy(JNIEnv* env) {
+  errno = -set_sched_policy(0, SP_DEFAULT);
+  if (errno != 0) {
+    ALOGE("set_sched_policy(0, SP_DEFAULT) failed");
+    RuntimeAbort(env);
+  }
+}
+
+#else
+
+static int gMallocLeakZygoteChild = 0;
+
+static void EnableKeepCapabilities(JNIEnv*) {}
+static void DropCapabilitiesBoundingSet(JNIEnv*) {}
+static void SetCapabilities(JNIEnv*, int64_t, int64_t) {}
+static void SetSchedulerPolicy(JNIEnv*) {}
+
+#endif
+
+// Create a private mount namespace and bind mount appropriate emulated
+// storage for the given user.
+static bool MountEmulatedStorage(uid_t uid, jint mount_mode) {
+  if (mount_mode == MOUNT_EXTERNAL_NONE) {
+    return true;
+  }
+
+  // See storage config details at http://source.android.com/tech/storage/
+  userid_t user_id = multiuser_get_user_id(uid);
+
+  // Create a second private mount namespace for our process
+  if (unshare(CLONE_NEWNS) == -1) {
+      ALOGW("Failed to unshare(): %d", errno);
+      return false;
+  }
+
+  // Create bind mounts to expose external storage
+  if (mount_mode == MOUNT_EXTERNAL_MULTIUSER || mount_mode == MOUNT_EXTERNAL_MULTIUSER_ALL) {
+    // These paths must already be created by init.rc
+    const char* source = getenv("EMULATED_STORAGE_SOURCE");
+    const char* target = getenv("EMULATED_STORAGE_TARGET");
+    const char* legacy = getenv("EXTERNAL_STORAGE");
+    if (source == NULL || target == NULL || legacy == NULL) {
+      ALOGW("Storage environment undefined; unable to provide external storage");
+      return false;
+    }
+
+    // Prepare source paths
+
+    // /mnt/shell/emulated/0
+    const String8 source_user(String8::format("%s/%d", source, user_id));
+    // /storage/emulated/0
+    const String8 target_user(String8::format("%s/%d", target, user_id));
+
+    if (fs_prepare_dir(source_user.string(), 0000, 0, 0) == -1
+        || fs_prepare_dir(target_user.string(), 0000, 0, 0) == -1) {
+      return false;
+    }
+
+    if (mount_mode == MOUNT_EXTERNAL_MULTIUSER_ALL) {
+      // Mount entire external storage tree for all users
+      if (TEMP_FAILURE_RETRY(mount(source, target, NULL, MS_BIND, NULL)) == -1) {
+        ALOGW("Failed to mount %s to %s :%d", source, target, errno);
+        return false;
+      }
+    } else {
+      // Only mount user-specific external storage
+      if (TEMP_FAILURE_RETRY(
+              mount(source_user.string(), target_user.string(), NULL, MS_BIND, NULL)) == -1) {
+        ALOGW("Failed to mount %s to %s: %d", source_user.string(), target_user.string(), errno);
+        return false;
+      }
+    }
+
+    if (fs_prepare_dir(legacy, 0000, 0, 0) == -1) {
+        return false;
+    }
+
+    // Finally, mount user-specific path into place for legacy users
+    if (TEMP_FAILURE_RETRY(
+            mount(target_user.string(), legacy, NULL, MS_BIND | MS_REC, NULL)) == -1) {
+      ALOGW("Failed to mount %s to %s: %d", target_user.string(), legacy, errno);
+      return false;
+    }
+  } else {
+    ALOGW("Mount mode %d unsupported", mount_mode);
+    return false;
+  }
+
+  return true;
+}
+
+#if defined(__linux__)
+static bool NeedsNoRandomizeWorkaround() {
+#if !defined(__arm__)
+    return false;
+#else
+    int major;
+    int minor;
+    struct utsname uts;
+    if (uname(&uts) == -1) {
+        return false;
+    }
+
+    if (sscanf(uts.release, "%d.%d", &major, &minor) != 2) {
+        return false;
+    }
+
+    // Kernels before 3.4.* need the workaround.
+    return (major < 3) || ((major == 3) && (minor < 4));
+#endif
+}
+#endif
+
+// Utility to close down the Zygote socket file descriptors while
+// the child is still running as root with Zygote's privileges.  Each
+// descriptor (if any) is closed via dup2(), replacing it with a valid
+// (open) descriptor to /dev/null.
+
+static void DetachDescriptors(JNIEnv* env, jintArray fdsToClose) {
+  if (!fdsToClose) {
+    return;
+  }
+  jsize count = env->GetArrayLength(fdsToClose);
+  jint *ar = env->GetIntArrayElements(fdsToClose, 0);
+  if (!ar) {
+      ALOGE("Bad fd array");
+      RuntimeAbort(env);
+  }
+  jsize i;
+  int devnull;
+  for (i = 0; i < count; i++) {
+    devnull = open("/dev/null", O_RDWR);
+    if (devnull < 0) {
+      ALOGE("Failed to open /dev/null");
+      RuntimeAbort(env);
+      continue;
+    }
+    ALOGV("Switching descriptor %d to /dev/null: %d", ar[i], errno);
+    if (dup2(devnull, ar[i]) < 0) {
+      ALOGE("Failed dup2() on descriptor %d", ar[i]);
+      RuntimeAbort(env);
+    }
+    close(devnull);
+  }
+}
+
+void SetThreadName(const char* thread_name) {
+  bool hasAt = false;
+  bool hasDot = false;
+  const char* s = thread_name;
+  while (*s) {
+    if (*s == '.') {
+      hasDot = true;
+    } else if (*s == '@') {
+      hasAt = true;
+    }
+    s++;
+  }
+  const int len = s - thread_name;
+  if (len < 15 || hasAt || !hasDot) {
+    s = thread_name;
+  } else {
+    s = thread_name + len - 15;
+  }
+  // pthread_setname_np fails rather than truncating long strings.
+  char buf[16];       // MAX_TASK_COMM_LEN=16 is hard-coded into bionic
+  strlcpy(buf, s, sizeof(buf)-1);
+  errno = pthread_setname_np(pthread_self(), buf);
+  if (errno != 0) {
+    ALOGW("Unable to set the name of current thread to '%s'", buf);
+  }
+}
+
+// Utility routine to fork zygote and specialize the child process.
+static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray javaGids,
+                                     jint debug_flags, jobjectArray javaRlimits,
+                                     jlong permittedCapabilities, jlong effectiveCapabilities,
+                                     jint mount_external,
+                                     jstring java_se_info, jstring java_se_name,
+                                     bool is_system_server, jintArray fdsToClose) {
+  SetSigChldHandler();
+
+  pid_t pid = fork();
+
+  if (pid == 0) {
+    // The child process.
+    gMallocLeakZygoteChild = 1;
+
+    // Clean up any descriptors which must be closed immediately
+    DetachDescriptors(env, fdsToClose);
+
+    // Keep capabilities across UID change, unless we're staying root.
+    if (uid != 0) {
+      EnableKeepCapabilities(env);
+    }
+
+    DropCapabilitiesBoundingSet(env);
+
+    if (!MountEmulatedStorage(uid, mount_external)) {
+      ALOGW("Failed to mount emulated storage: %d", errno);
+      if (errno == ENOTCONN || errno == EROFS) {
+        // When device is actively encrypting, we get ENOTCONN here
+        // since FUSE was mounted before the framework restarted.
+        // When encrypted device is booting, we get EROFS since
+        // FUSE hasn't been created yet by init.
+        // In either case, continue without external storage.
+      } else {
+        ALOGE("Cannot continue without emulated storage");
+        RuntimeAbort(env);
+      }
+    }
+
+    SetGids(env, javaGids);
+
+    SetRLimits(env, javaRlimits);
+
+    int rc = setresgid(gid, gid, gid);
+    if (rc == -1) {
+      ALOGE("setresgid(%d) failed", gid);
+      RuntimeAbort(env);
+    }
+
+    rc = setresuid(uid, uid, uid);
+    if (rc == -1) {
+      ALOGE("setresuid(%d) failed", uid);
+      RuntimeAbort(env);
+    }
+
+#if defined(__linux__)
+    if (NeedsNoRandomizeWorkaround()) {
+        // Work around ARM kernel ASLR lossage (http://b/5817320).
+        int old_personality = personality(0xffffffff);
+        int new_personality = personality(old_personality | ADDR_NO_RANDOMIZE);
+        if (new_personality == -1) {
+            ALOGW("personality(%d) failed", new_personality);
+        }
+    }
+#endif
+
+    SetCapabilities(env, permittedCapabilities, effectiveCapabilities);
+
+    SetSchedulerPolicy(env);
+
+#if defined(HAVE_ANDROID_OS)
+    {  // NOLINT(whitespace/braces)
+      const char* se_info_c_str = NULL;
+      ScopedUtfChars* se_info = NULL;
+      if (java_se_info != NULL) {
+          se_info = new ScopedUtfChars(env, java_se_info);
+          se_info_c_str = se_info->c_str();
+          if (se_info_c_str == NULL) {
+            ALOGE("se_info_c_str == NULL");
+            RuntimeAbort(env);
+          }
+      }
+      const char* se_name_c_str = NULL;
+      ScopedUtfChars* se_name = NULL;
+      if (java_se_name != NULL) {
+          se_name = new ScopedUtfChars(env, java_se_name);
+          se_name_c_str = se_name->c_str();
+          if (se_name_c_str == NULL) {
+            ALOGE("se_name_c_str == NULL");
+            RuntimeAbort(env);
+          }
+      }
+      rc = selinux_android_setcontext(uid, is_system_server, se_info_c_str, se_name_c_str);
+      if (rc == -1) {
+        ALOGE("selinux_android_setcontext(%d, %d, \"%s\", \"%s\") failed", uid,
+              is_system_server, se_info_c_str, se_name_c_str);
+        RuntimeAbort(env);
+      }
+
+      // Make it easier to debug audit logs by setting the main thread's name to the
+      // nice name rather than "app_process".
+      if (se_info_c_str == NULL && is_system_server) {
+        se_name_c_str = "system_server";
+      }
+      if (se_info_c_str != NULL) {
+        SetThreadName(se_name_c_str);
+      }
+
+      delete se_info;
+      delete se_name;
+    }
+#else
+    UNUSED(is_system_server);
+    UNUSED(java_se_info);
+    UNUSED(java_se_name);
+#endif
+
+    UnsetSigChldHandler();
+
+    env->CallStaticVoidMethod(gZygoteClass, gCallPostForkChildHooks, debug_flags);
+    if (env->ExceptionCheck()) {
+      ALOGE("Error calling post fork hooks.");
+      RuntimeAbort(env);
+    }
+  } else if (pid > 0) {
+    // the parent process
+  }
+  return pid;
+}
+}  // anonymous namespace
+
+namespace android {
+
+static jint com_android_internal_os_Zygote_nativeForkAndSpecialize(
+        JNIEnv* env, jclass, jint uid, jint gid, jintArray gids,
+        jint debug_flags, jobjectArray rlimits,
+        jint mount_external, jstring se_info, jstring se_name,
+        jintArray fdsToClose) {
+    return ForkAndSpecializeCommon(env, uid, gid, gids, debug_flags,
+            rlimits, 0, 0, mount_external, se_info, se_name, false, fdsToClose);
+}
+
+static jint com_android_internal_os_Zygote_nativeForkSystemServer(
+        JNIEnv* env, jclass, uid_t uid, gid_t gid, jintArray gids,
+        jint debug_flags, jobjectArray rlimits, jlong permittedCapabilities,
+        jlong effectiveCapabilities) {
+  pid_t pid = ForkAndSpecializeCommon(env, uid, gid, gids,
+                                      debug_flags, rlimits,
+                                      permittedCapabilities, effectiveCapabilities,
+                                      MOUNT_EXTERNAL_NONE, NULL, NULL, true, NULL);
+  if (pid > 0) {
+      // The zygote process checks whether the child process has died or not.
+      ALOGI("System server process %d has been created", pid);
+      gSystemServerPid = pid;
+      // There is a slight window that the system server process has crashed
+      // but it went unnoticed because we haven't published its pid yet. So
+      // we recheck here just to make sure that all is well.
+      int status;
+      if (waitpid(pid, &status, WNOHANG) == pid) {
+          ALOGE("System server process %d has died. Restarting Zygote!", pid);
+          RuntimeAbort(env);
+      }
+  }
+  return pid;
+}
+
+static JNINativeMethod gMethods[] = {
+    { "nativeForkAndSpecialize", "(II[II[[IILjava/lang/String;Ljava/lang/String;[I)I",
+      (void *) com_android_internal_os_Zygote_nativeForkAndSpecialize },
+    { "nativeForkSystemServer", "(II[II[[IJJ)I",
+      (void *) com_android_internal_os_Zygote_nativeForkSystemServer }
+};
+
+int register_com_android_internal_os_Zygote(JNIEnv* env) {
+  gZygoteClass = (jclass) env->NewGlobalRef(env->FindClass(kZygoteClassName));
+  if (gZygoteClass == NULL) {
+    RuntimeAbort(env);
+  }
+  gCallPostForkChildHooks = env->GetStaticMethodID(gZygoteClass, "callPostForkChildHooks", "(I)V");
+
+  return AndroidRuntime::registerNativeMethods(env, "com/android/internal/os/Zygote",
+      gMethods, NELEM(gMethods));
+}
+}  // namespace android
+
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 2168bd1..b2709af 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -483,6 +483,13 @@
         android:label="@string/permlab_writeProfile"
         android:description="@string/permdesc_writeProfile" />
 
+    <!-- Allows an application to access data from sensors that the user uses to
+         measure what is happening inside his/her body, such as heart rate. -->
+    <permission android:name="android.permission.BODY_SENSORS"
+        android:permissionGroup="android.permission-group.PERSONAL_INFO"
+        android:label="@string/permlab_bodySensors"
+        android:description="@string/permdesc_bodySensors" />
+
     <!-- =============================================================== -->
     <!-- Permissions for accessing the device calendar                   -->
     <!-- =============================================================== -->
@@ -1921,6 +1928,18 @@
         android:description="@string/permdesc_filter_events"
         android:protectionLevel="signature" />
 
+    <!-- @hide Allows an application to retrieve the window token from the accessibility manager. -->
+    <permission android:name="android.permission.RETRIEVE_WINDOW_TOKEN"
+        android:label="@string/permlab_retrieveWindowToken"
+        android:description="@string/permdesc_retrieveWindowToken"
+        android:protectionLevel="signature" />
+
+    <!-- @hide Allows an application to collect frame statistics -->
+    <permission android:name="android.permission.FRAME_STATS"
+         android:label="@string/permlab_frameStats"
+         android:description="@string/permdesc_frameStats"
+         android:protectionLevel="signature" />
+
     <!-- @hide Allows an application to temporary enable accessibility on the device. -->
     <permission android:name="android.permission.TEMPORARY_ENABLE_ACCESSIBILITY"
         android:label="@string/permlab_temporary_enable_accessibility"
@@ -2036,6 +2055,13 @@
         android:description="@string/permdesc_bindRemoteDisplay"
         android:protectionLevel="signature" />
 
+    <!-- Must be required by a {@link android.tv.TvInputService}
+         to ensure that only the system can bind to it. -->
+    <permission android:name="android.permission.BIND_TV_INPUT"
+        android:label="@string/permlab_bindTvInput"
+        android:description="@string/permdesc_bindTvInput"
+        android:protectionLevel="signature|system" />
+
     <!-- Must be required by device administration receiver, to ensure that only the
          system can interact with it. -->
     <permission android:name="android.permission.BIND_DEVICE_ADMIN"
@@ -2547,6 +2573,21 @@
         android:label="@string/permlab_control_keyguard"
         android:description="@string/permdesc_control_keyguard" />
 
+    <!-- Allows an application to listen to trust changes.  Only allowed for system processes.
+        @hide -->
+    <permission android:name="android.permission.TRUST_LISTENER"
+                android:protectionLevel="signature"
+                android:label="@string/permlab_trust_listener"
+                android:description="@string/permdesc_trust_listener" />
+
+    <!-- Must be required by an {@link
+         android.service.trust.TrustAgentService},
+         to ensure that only the system can bind to it. -->
+    <permission android:name="android.permission.BIND_TRUST_AGENT_SERVICE"
+                android:protectionLevel="signature"
+                android:label="@string/permlab_bind_trust_agent_service"
+                android:description="@string/permdesc_bind_trust_agent_service" />
+
     <!-- Must be required by an {@link
          android.service.notification.NotificationListenerService},
          to ensure that only the system can bind to it. -->
@@ -2570,6 +2611,13 @@
         android:description="@string/permdesc_accessNetworkConditions"
         android:protectionLevel="signature|system" />
 
+    <!-- Allows an application to provision and access DRM certificates
+         @hide This is not a third-party API (intended for system apps). -->
+    <permission android:name="android.permission.ACCESS_DRM_CERTIFICATES"
+        android:label="@string/permlab_accessDrmCertificates"
+        android:description="@string/permdesc_accessDrmCertificates"
+        android:protectionLevel="signature|system" />
+
     <!-- The system process is explicitly the only one allowed to launch the
          confirmation UI for full backup/restore -->
     <uses-permission android:name="android.permission.CONFIRM_FULL_BACKUP"/>
diff --git a/core/res/res/drawable-hdpi/ab_share_pack_qntm_alpha.9.png b/core/res/res/drawable-hdpi/ab_share_pack_qntm_alpha.9.png
new file mode 100644
index 0000000..b07da0c
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ab_share_pack_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ab_solid_shadow_qntm.9.png b/core/res/res/drawable-hdpi/ab_solid_shadow_qntm.9.png
deleted file mode 100644
index 717ec1a..0000000
--- a/core/res/res/drawable-hdpi/ab_solid_shadow_qntm.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ab_solid_shadow_qntm_alpha.9.png b/core/res/res/drawable-hdpi/ab_solid_shadow_qntm_alpha.9.png
new file mode 100644
index 0000000..e49ad54
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ab_solid_shadow_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ab_transparent_qntm_alpha.9.png b/core/res/res/drawable-hdpi/ab_transparent_qntm_alpha.9.png
deleted file mode 100644
index 5fa4ec4..0000000
--- a/core/res/res/drawable-hdpi/ab_transparent_qntm_alpha.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_cab_done_qntm_alpha.9.png b/core/res/res/drawable-hdpi/btn_cab_done_qntm_alpha.9.png
new file mode 100644
index 0000000..992a8ff
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_cab_done_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_rating_star_off_qntm_alpha.png
new file mode 100644
index 0000000..51a895d
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_rating_star_on_qntm_alpha.png
new file mode 100644
index 0000000..2f59488
--- /dev/null
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_alarm.png b/core/res/res/drawable-hdpi/ic_audio_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_alarm.png
rename to core/res/res/drawable-hdpi/ic_audio_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_alarm_mute.png b/core/res/res/drawable-hdpi/ic_audio_alarm_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_alarm_mute.png
rename to core/res/res/drawable-hdpi/ic_audio_alarm_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_bt.png b/core/res/res/drawable-hdpi/ic_audio_bt_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_bt.png
rename to core/res/res/drawable-hdpi/ic_audio_bt_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_bt_mute.png b/core/res/res/drawable-hdpi/ic_audio_bt_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_bt_mute.png
rename to core/res/res/drawable-hdpi/ic_audio_bt_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_notification_am.png b/core/res/res/drawable-hdpi/ic_audio_notification_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_notification_am.png
rename to core/res/res/drawable-hdpi/ic_audio_notification_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_notification_mute_am.png b/core/res/res/drawable-hdpi/ic_audio_notification_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_notification_mute_am.png
rename to core/res/res/drawable-hdpi/ic_audio_notification_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_phone_am.png b/core/res/res/drawable-hdpi/ic_audio_phone_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_phone_am.png
rename to core/res/res/drawable-hdpi/ic_audio_phone_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_am.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_ring_notif_am.png
rename to core/res/res/drawable-hdpi/ic_audio_ring_notif_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am.png
rename to core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am.png
rename to core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_vol_am.png b/core/res/res/drawable-hdpi/ic_audio_vol_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_vol_am.png
rename to core/res/res/drawable-hdpi/ic_audio_vol_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_vol_mute_am.png b/core/res/res/drawable-hdpi/ic_audio_vol_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_audio_vol_mute_am.png
rename to core/res/res/drawable-hdpi/ic_audio_vol_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_clear_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_clear_qntm_alpha.png
new file mode 100644
index 0000000..3813563
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_clear_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_commit_search_api_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_commit_search_api_qntm_alpha.png
new file mode 100644
index 0000000..47263ea
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_commit_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_corp_badge.png b/core/res/res/drawable-hdpi/ic_corp_badge.png
new file mode 100644
index 0000000..f647375
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_corp_badge.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_go_search_api_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_go_search_api_qntm_alpha.png
new file mode 100644
index 0000000..aa23c59
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_go_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_airplane_mode.png b/core/res/res/drawable-hdpi/ic_lock_airplane_mode_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_airplane_mode.png
rename to core/res/res/drawable-hdpi/ic_lock_airplane_mode_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_airplane_mode_off_am.png b/core/res/res/drawable-hdpi/ic_lock_airplane_mode_off_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_airplane_mode_off_am.png
rename to core/res/res/drawable-hdpi/ic_lock_airplane_mode_off_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_bugreport_alpha.png b/core/res/res/drawable-hdpi/ic_lock_bugreport_alpha.png
new file mode 100644
index 0000000..ba5bd01
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_lock_bugreport_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-hdpi/ic_lock_idle_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_idle_alarm.png
rename to core/res/res/drawable-hdpi/ic_lock_idle_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_lock.png b/core/res/res/drawable-hdpi/ic_lock_lock_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_lock.png
rename to core/res/res/drawable-hdpi/ic_lock_lock_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_power_off.png b/core/res/res/drawable-hdpi/ic_lock_power_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_power_off.png
rename to core/res/res/drawable-hdpi/ic_lock_power_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_ringer_off.png b/core/res/res/drawable-hdpi/ic_lock_ringer_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_ringer_off.png
rename to core/res/res/drawable-hdpi/ic_lock_ringer_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_lock_ringer_on.png b/core/res/res/drawable-hdpi/ic_lock_ringer_on_alpha.png
similarity index 100%
rename from core/res/res/drawable-hdpi/ic_lock_ringer_on.png
rename to core/res/res/drawable-hdpi/ic_lock_ringer_on_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_disabled_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_media_route_disabled_qntm_alpha.png
new file mode 100644
index 0000000..e0a2ba1
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_media_route_disabled_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_off_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_media_route_off_qntm_alpha.png
new file mode 100644
index 0000000..d37e8ee
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_media_route_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_0_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_media_route_on_0_qntm_alpha.png
new file mode 100644
index 0000000..0c604d9
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_0_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_1_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_media_route_on_1_qntm_alpha.png
new file mode 100644
index 0000000..2c3f4ff
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_1_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_2_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_media_route_on_2_qntm_alpha.png
new file mode 100644
index 0000000..991c50e
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_2_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_media_route_on_qntm_alpha.png
new file mode 100644
index 0000000..05fb919
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_search_api_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_search_api_qntm_alpha.png
new file mode 100644
index 0000000..cac32b5
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_voice_search_api_qntm_alpha.png b/core/res/res/drawable-hdpi/ic_voice_search_api_qntm_alpha.png
new file mode 100644
index 0000000..25b8935
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_voice_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/scrubber_track_qntm_alpha.9.png b/core/res/res/drawable-hdpi/scrubber_track_qntm_alpha.9.png
new file mode 100644
index 0000000..32ddf7a
--- /dev/null
+++ b/core/res/res/drawable-hdpi/scrubber_track_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/text_select_handle_left_qntm_alpha.png b/core/res/res/drawable-hdpi/text_select_handle_left_qntm_alpha.png
new file mode 100644
index 0000000..598b98c
--- /dev/null
+++ b/core/res/res/drawable-hdpi/text_select_handle_left_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/text_select_handle_middle_qntm_alpha.png b/core/res/res/drawable-hdpi/text_select_handle_middle_qntm_alpha.png
new file mode 100644
index 0000000..df2fdb8
--- /dev/null
+++ b/core/res/res/drawable-hdpi/text_select_handle_middle_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/text_select_handle_right_qntm_alpha.png b/core/res/res/drawable-hdpi/text_select_handle_right_qntm_alpha.png
new file mode 100644
index 0000000..79fe7c5
--- /dev/null
+++ b/core/res/res/drawable-hdpi/text_select_handle_right_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_search_activated_qntm_alpha.9.png b/core/res/res/drawable-hdpi/textfield_search_activated_qntm_alpha.9.png
new file mode 100644
index 0000000..7bcebcd
--- /dev/null
+++ b/core/res/res/drawable-hdpi/textfield_search_activated_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_search_default_qntm_alpha.9.png b/core/res/res/drawable-hdpi/textfield_search_default_qntm_alpha.9.png
new file mode 100644
index 0000000..eb1d945
--- /dev/null
+++ b/core/res/res/drawable-hdpi/textfield_search_default_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_airplane_mode.png b/core/res/res/drawable-ldpi/ic_lock_airplane_mode_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_airplane_mode.png
rename to core/res/res/drawable-ldpi/ic_lock_airplane_mode_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_airplane_mode_off_am.png b/core/res/res/drawable-ldpi/ic_lock_airplane_mode_off_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_airplane_mode_off_am.png
rename to core/res/res/drawable-ldpi/ic_lock_airplane_mode_off_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_idle_alarm.png b/core/res/res/drawable-ldpi/ic_lock_idle_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_idle_alarm.png
rename to core/res/res/drawable-ldpi/ic_lock_idle_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_lock.png b/core/res/res/drawable-ldpi/ic_lock_lock_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_lock.png
rename to core/res/res/drawable-ldpi/ic_lock_lock_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_power_off.png b/core/res/res/drawable-ldpi/ic_lock_power_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_power_off.png
rename to core/res/res/drawable-ldpi/ic_lock_power_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_ringer_off.png b/core/res/res/drawable-ldpi/ic_lock_ringer_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_ringer_off.png
rename to core/res/res/drawable-ldpi/ic_lock_ringer_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/ic_lock_ringer_on.png b/core/res/res/drawable-ldpi/ic_lock_ringer_on_alpha.png
similarity index 100%
rename from core/res/res/drawable-ldpi/ic_lock_ringer_on.png
rename to core/res/res/drawable-ldpi/ic_lock_ringer_on_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ab_share_pack_qntm_alpha.9.png b/core/res/res/drawable-mdpi/ab_share_pack_qntm_alpha.9.png
new file mode 100644
index 0000000..f31730d
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ab_share_pack_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ab_solid_shadow_qntm.9.png b/core/res/res/drawable-mdpi/ab_solid_shadow_qntm.9.png
deleted file mode 100644
index c00c545..0000000
--- a/core/res/res/drawable-mdpi/ab_solid_shadow_qntm.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ab_solid_shadow_qntm_alpha.9.png b/core/res/res/drawable-mdpi/ab_solid_shadow_qntm_alpha.9.png
new file mode 100644
index 0000000..ebdea00
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ab_solid_shadow_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ab_transparent_qntm_alpha.9.png b/core/res/res/drawable-mdpi/ab_transparent_qntm_alpha.9.png
deleted file mode 100644
index 2e42386..0000000
--- a/core/res/res/drawable-mdpi/ab_transparent_qntm_alpha.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_cab_done_qntm_alpha.9.png b/core/res/res/drawable-mdpi/btn_cab_done_qntm_alpha.9.png
new file mode 100644
index 0000000..5903856
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_cab_done_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_rating_star_off_qntm_alpha.png
new file mode 100644
index 0000000..d38aed2
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_rating_star_on_qntm_alpha.png
new file mode 100644
index 0000000..87dade3
--- /dev/null
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_alarm.png b/core/res/res/drawable-mdpi/ic_audio_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_alarm.png
rename to core/res/res/drawable-mdpi/ic_audio_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_alarm_mute.png b/core/res/res/drawable-mdpi/ic_audio_alarm_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_alarm_mute.png
rename to core/res/res/drawable-mdpi/ic_audio_alarm_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_bt.png b/core/res/res/drawable-mdpi/ic_audio_bt_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_bt.png
rename to core/res/res/drawable-mdpi/ic_audio_bt_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_bt_mute.png b/core/res/res/drawable-mdpi/ic_audio_bt_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_bt_mute.png
rename to core/res/res/drawable-mdpi/ic_audio_bt_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_notification_am.png b/core/res/res/drawable-mdpi/ic_audio_notification_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_notification_am.png
rename to core/res/res/drawable-mdpi/ic_audio_notification_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_notification_mute_am.png b/core/res/res/drawable-mdpi/ic_audio_notification_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_notification_mute_am.png
rename to core/res/res/drawable-mdpi/ic_audio_notification_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_phone_am.png b/core/res/res/drawable-mdpi/ic_audio_phone_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_phone_am.png
rename to core/res/res/drawable-mdpi/ic_audio_phone_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_am.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_ring_notif_am.png
rename to core/res/res/drawable-mdpi/ic_audio_ring_notif_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am.png
rename to core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am.png
rename to core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_vol_am.png b/core/res/res/drawable-mdpi/ic_audio_vol_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_vol_am.png
rename to core/res/res/drawable-mdpi/ic_audio_vol_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_vol_mute_am.png b/core/res/res/drawable-mdpi/ic_audio_vol_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_audio_vol_mute_am.png
rename to core/res/res/drawable-mdpi/ic_audio_vol_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_clear_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_clear_qntm_alpha.png
new file mode 100644
index 0000000..d43e4d1
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_clear_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_commit_search_api_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_commit_search_api_qntm_alpha.png
new file mode 100644
index 0000000..42ac8ca
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_commit_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_go_search_api_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_go_search_api_qntm_alpha.png
new file mode 100644
index 0000000..b5f6176
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_go_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_airplane_mode.png b/core/res/res/drawable-mdpi/ic_lock_airplane_mode_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_airplane_mode.png
rename to core/res/res/drawable-mdpi/ic_lock_airplane_mode_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_airplane_mode_off_am.png b/core/res/res/drawable-mdpi/ic_lock_airplane_mode_off_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_airplane_mode_off_am.png
rename to core/res/res/drawable-mdpi/ic_lock_airplane_mode_off_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_bugreport_alpha.png b/core/res/res/drawable-mdpi/ic_lock_bugreport_alpha.png
new file mode 100644
index 0000000..4e2612d
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_lock_bugreport_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-mdpi/ic_lock_idle_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_idle_alarm.png
rename to core/res/res/drawable-mdpi/ic_lock_idle_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_lock.png b/core/res/res/drawable-mdpi/ic_lock_lock_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_lock.png
rename to core/res/res/drawable-mdpi/ic_lock_lock_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_power_off.png b/core/res/res/drawable-mdpi/ic_lock_power_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_power_off.png
rename to core/res/res/drawable-mdpi/ic_lock_power_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_ringer_off.png b/core/res/res/drawable-mdpi/ic_lock_ringer_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_ringer_off.png
rename to core/res/res/drawable-mdpi/ic_lock_ringer_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_ringer_on.png b/core/res/res/drawable-mdpi/ic_lock_ringer_on_alpha.png
similarity index 100%
rename from core/res/res/drawable-mdpi/ic_lock_ringer_on.png
rename to core/res/res/drawable-mdpi/ic_lock_ringer_on_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_disabled_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_media_route_disabled_qntm_alpha.png
new file mode 100644
index 0000000..ec43047
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_media_route_disabled_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_off_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_media_route_off_qntm_alpha.png
new file mode 100644
index 0000000..a652117
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_media_route_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_0_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_media_route_on_0_qntm_alpha.png
new file mode 100644
index 0000000..35d1c56
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_0_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_1_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_media_route_on_1_qntm_alpha.png
new file mode 100644
index 0000000..264188b
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_1_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_2_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_media_route_on_2_qntm_alpha.png
new file mode 100644
index 0000000..06ae665
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_2_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_media_route_on_qntm_alpha.png
new file mode 100644
index 0000000..a69e301
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_search_api_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_search_api_qntm_alpha.png
new file mode 100644
index 0000000..9137fea
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_voice_search_api_qntm_alpha.png b/core/res/res/drawable-mdpi/ic_voice_search_api_qntm_alpha.png
new file mode 100644
index 0000000..3f1eee3
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_voice_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrubber_track_qntm_alpha.9.png b/core/res/res/drawable-mdpi/scrubber_track_qntm_alpha.9.png
new file mode 100644
index 0000000..db9e172
--- /dev/null
+++ b/core/res/res/drawable-mdpi/scrubber_track_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/text_select_handle_left_qntm_alpha.png b/core/res/res/drawable-mdpi/text_select_handle_left_qntm_alpha.png
new file mode 100644
index 0000000..506a186
--- /dev/null
+++ b/core/res/res/drawable-mdpi/text_select_handle_left_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/text_select_handle_middle_qntm_alpha.png b/core/res/res/drawable-mdpi/text_select_handle_middle_qntm_alpha.png
new file mode 100644
index 0000000..e54d32e
--- /dev/null
+++ b/core/res/res/drawable-mdpi/text_select_handle_middle_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/text_select_handle_right_qntm_alpha.png b/core/res/res/drawable-mdpi/text_select_handle_right_qntm_alpha.png
new file mode 100644
index 0000000..fb0e926
--- /dev/null
+++ b/core/res/res/drawable-mdpi/text_select_handle_right_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/textfield_search_activated_qntm_alpha.9.png b/core/res/res/drawable-mdpi/textfield_search_activated_qntm_alpha.9.png
new file mode 100644
index 0000000..ef4ebc0
--- /dev/null
+++ b/core/res/res/drawable-mdpi/textfield_search_activated_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/textfield_search_default_qntm_alpha.9.png b/core/res/res/drawable-mdpi/textfield_search_default_qntm_alpha.9.png
new file mode 100644
index 0000000..9ddbcf5
--- /dev/null
+++ b/core/res/res/drawable-mdpi/textfield_search_default_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ab_share_pack_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/ab_share_pack_qntm_alpha.9.png
new file mode 100644
index 0000000..8337ffe
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ab_share_pack_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ab_solid_shadow_qntm.9.png b/core/res/res/drawable-xhdpi/ab_solid_shadow_qntm.9.png
deleted file mode 100644
index 1443b7f..0000000
--- a/core/res/res/drawable-xhdpi/ab_solid_shadow_qntm.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ab_solid_shadow_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/ab_solid_shadow_qntm_alpha.9.png
new file mode 100644
index 0000000..f51af63
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ab_solid_shadow_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ab_transparent_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/ab_transparent_qntm_alpha.9.png
deleted file mode 100644
index c37ba9e..0000000
--- a/core/res/res/drawable-xhdpi/ab_transparent_qntm_alpha.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_cab_done_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/btn_cab_done_qntm_alpha.9.png
new file mode 100644
index 0000000..d0d0b1e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_cab_done_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_qntm_alpha.png
new file mode 100644
index 0000000..33ec44c
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_qntm_alpha.png
new file mode 100644
index 0000000..0166d70
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_alarm.png b/core/res/res/drawable-xhdpi/ic_audio_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_alarm.png
rename to core/res/res/drawable-xhdpi/ic_audio_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_alarm_mute.png b/core/res/res/drawable-xhdpi/ic_audio_alarm_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_alarm_mute.png
rename to core/res/res/drawable-xhdpi/ic_audio_alarm_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_bt.png b/core/res/res/drawable-xhdpi/ic_audio_bt_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_bt.png
rename to core/res/res/drawable-xhdpi/ic_audio_bt_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_bt_mute.png b/core/res/res/drawable-xhdpi/ic_audio_bt_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_bt_mute.png
rename to core/res/res/drawable-xhdpi/ic_audio_bt_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_notification_am.png b/core/res/res/drawable-xhdpi/ic_audio_notification_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_notification_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_notification_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_notification_mute_am.png b/core/res/res/drawable-xhdpi/ic_audio_notification_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_notification_mute_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_notification_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_phone_am.png b/core/res/res/drawable-xhdpi/ic_audio_phone_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_phone_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_phone_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_am.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_ring_notif_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_ring_notif_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_vol_am.png b/core/res/res/drawable-xhdpi/ic_audio_vol_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_vol_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_vol_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_vol_mute_am.png b/core/res/res/drawable-xhdpi/ic_audio_vol_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_audio_vol_mute_am.png
rename to core/res/res/drawable-xhdpi/ic_audio_vol_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_clear_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_clear_qntm_alpha.png
new file mode 100644
index 0000000..ddacb59
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_clear_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_commit_search_api_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_commit_search_api_qntm_alpha.png
new file mode 100644
index 0000000..c10a1b7
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_commit_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_corp_badge.png b/core/res/res/drawable-xhdpi/ic_corp_badge.png
new file mode 100644
index 0000000..80d848d
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_corp_badge.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_go_search_api_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_go_search_api_qntm_alpha.png
new file mode 100644
index 0000000..bd80981
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_go_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_airplane_mode.png b/core/res/res/drawable-xhdpi/ic_lock_airplane_mode_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_airplane_mode.png
rename to core/res/res/drawable-xhdpi/ic_lock_airplane_mode_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_airplane_mode_off_am.png b/core/res/res/drawable-xhdpi/ic_lock_airplane_mode_off_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_airplane_mode_off_am.png
rename to core/res/res/drawable-xhdpi/ic_lock_airplane_mode_off_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_bugreport_alpha.png b/core/res/res/drawable-xhdpi/ic_lock_bugreport_alpha.png
new file mode 100644
index 0000000..e6ca1ea
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_lock_bugreport_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-xhdpi/ic_lock_idle_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_idle_alarm.png
rename to core/res/res/drawable-xhdpi/ic_lock_idle_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_lock.png b/core/res/res/drawable-xhdpi/ic_lock_lock_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_lock.png
rename to core/res/res/drawable-xhdpi/ic_lock_lock_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_power_off.png b/core/res/res/drawable-xhdpi/ic_lock_power_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_power_off.png
rename to core/res/res/drawable-xhdpi/ic_lock_power_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_ringer_off.png b/core/res/res/drawable-xhdpi/ic_lock_ringer_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_ringer_off.png
rename to core/res/res/drawable-xhdpi/ic_lock_ringer_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_lock_ringer_on.png b/core/res/res/drawable-xhdpi/ic_lock_ringer_on_alpha.png
similarity index 100%
rename from core/res/res/drawable-xhdpi/ic_lock_ringer_on.png
rename to core/res/res/drawable-xhdpi/ic_lock_ringer_on_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_disabled_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_media_route_disabled_qntm_alpha.png
new file mode 100644
index 0000000..a020d64
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_media_route_disabled_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_off_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_media_route_off_qntm_alpha.png
new file mode 100644
index 0000000..e75ffb8
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_media_route_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_0_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_media_route_on_0_qntm_alpha.png
new file mode 100644
index 0000000..1b9fc12
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_0_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_1_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_media_route_on_1_qntm_alpha.png
new file mode 100644
index 0000000..f63d47e
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_1_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_2_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_media_route_on_2_qntm_alpha.png
new file mode 100644
index 0000000..fe005d9
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_2_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_media_route_on_qntm_alpha.png
new file mode 100644
index 0000000..ea86408
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_search_api_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_search_api_qntm_alpha.png
new file mode 100644
index 0000000..513ee8b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_voice_search_api_qntm_alpha.png b/core/res/res/drawable-xhdpi/ic_voice_search_api_qntm_alpha.png
new file mode 100644
index 0000000..c1c23d04
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/ic_voice_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/scrubber_track_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/scrubber_track_qntm_alpha.9.png
new file mode 100644
index 0000000..805cb29
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/scrubber_track_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/text_select_handle_left_qntm_alpha.png b/core/res/res/drawable-xhdpi/text_select_handle_left_qntm_alpha.png
new file mode 100644
index 0000000..38b8e8b
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/text_select_handle_left_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/text_select_handle_middle_qntm_alpha.png b/core/res/res/drawable-xhdpi/text_select_handle_middle_qntm_alpha.png
new file mode 100644
index 0000000..c1ca323
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/text_select_handle_middle_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/text_select_handle_right_qntm_alpha.png b/core/res/res/drawable-xhdpi/text_select_handle_right_qntm_alpha.png
new file mode 100644
index 0000000..d6002a7
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/text_select_handle_right_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/textfield_search_activated_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/textfield_search_activated_qntm_alpha.9.png
new file mode 100644
index 0000000..1a2546f
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/textfield_search_activated_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/textfield_search_default_qntm_alpha.9.png b/core/res/res/drawable-xhdpi/textfield_search_default_qntm_alpha.9.png
new file mode 100644
index 0000000..500ec33
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/textfield_search_default_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ab_share_pack_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/ab_share_pack_qntm_alpha.9.png
new file mode 100644
index 0000000..469f736
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ab_share_pack_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ab_solid_shadow_qntm.9.png b/core/res/res/drawable-xxhdpi/ab_solid_shadow_qntm.9.png
deleted file mode 100644
index e89c9fe..0000000
--- a/core/res/res/drawable-xxhdpi/ab_solid_shadow_qntm.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ab_solid_shadow_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/ab_solid_shadow_qntm_alpha.9.png
new file mode 100644
index 0000000..e8a94dc
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ab_solid_shadow_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ab_transparent_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/ab_transparent_qntm_alpha.9.png
deleted file mode 100644
index f220168..0000000
--- a/core/res/res/drawable-xxhdpi/ab_transparent_qntm_alpha.9.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_cab_done_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/btn_cab_done_qntm_alpha.9.png
new file mode 100644
index 0000000..e1c55ad
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/btn_cab_done_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_rating_star_off_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_rating_star_off_qntm_alpha.png
new file mode 100644
index 0000000..4b49faf
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/btn_rating_star_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_rating_star_on_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_rating_star_on_qntm_alpha.png
new file mode 100644
index 0000000..561d9ef
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/btn_rating_star_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_alarm.png b/core/res/res/drawable-xxhdpi/ic_audio_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_alarm.png
rename to core/res/res/drawable-xxhdpi/ic_audio_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_alarm_mute.png b/core/res/res/drawable-xxhdpi/ic_audio_alarm_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_alarm_mute.png
rename to core/res/res/drawable-xxhdpi/ic_audio_alarm_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_bt.png b/core/res/res/drawable-xxhdpi/ic_audio_bt_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_bt.png
rename to core/res/res/drawable-xxhdpi/ic_audio_bt_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_bt_mute.png b/core/res/res/drawable-xxhdpi/ic_audio_bt_mute_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_bt_mute.png
rename to core/res/res/drawable-xxhdpi/ic_audio_bt_mute_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_notification_am.png b/core/res/res/drawable-xxhdpi/ic_audio_notification_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_notification_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_notification_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_notification_mute_am.png b/core/res/res/drawable-xxhdpi/ic_audio_notification_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_notification_mute_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_notification_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_phone_am.png b/core/res/res/drawable-xxhdpi/ic_audio_phone_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_phone_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_phone_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am.png b/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am.png b/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am.png b/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_vol_am.png b/core/res/res/drawable-xxhdpi/ic_audio_vol_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_vol_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_vol_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am.png b/core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am.png
rename to core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_clear_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_clear_qntm_alpha.png
new file mode 100644
index 0000000..21ed9144
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_clear_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_commit_search_api_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_commit_search_api_qntm_alpha.png
new file mode 100644
index 0000000..fc1b8b4
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_commit_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_corp_badge.png b/core/res/res/drawable-xxhdpi/ic_corp_badge.png
new file mode 100644
index 0000000..885e2ac
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_corp_badge.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_go_search_api_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_go_search_api_qntm_alpha.png
new file mode 100644
index 0000000..8e1ab5b
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_go_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_lock_airplane_mode.png b/core/res/res/drawable-xxhdpi/ic_lock_airplane_mode_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_lock_airplane_mode.png
rename to core/res/res/drawable-xxhdpi/ic_lock_airplane_mode_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_lock_airplane_mode_off_am.png b/core/res/res/drawable-xxhdpi/ic_lock_airplane_mode_off_am_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_lock_airplane_mode_off_am.png
rename to core/res/res/drawable-xxhdpi/ic_lock_airplane_mode_off_am_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_lock_bugreport_alpha.png b/core/res/res/drawable-xxhdpi/ic_lock_bugreport_alpha.png
new file mode 100644
index 0000000..d6018dd
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_lock_bugreport_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-xxhdpi/ic_lock_idle_alarm_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_lock_idle_alarm.png
rename to core/res/res/drawable-xxhdpi/ic_lock_idle_alarm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_lock_lock.png b/core/res/res/drawable-xxhdpi/ic_lock_lock_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_lock_lock.png
rename to core/res/res/drawable-xxhdpi/ic_lock_lock_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_lock_power_off.png b/core/res/res/drawable-xxhdpi/ic_lock_power_off_alpha.png
similarity index 100%
rename from core/res/res/drawable-xxhdpi/ic_lock_power_off.png
rename to core/res/res/drawable-xxhdpi/ic_lock_power_off_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_disabled_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_media_route_disabled_qntm_alpha.png
new file mode 100644
index 0000000..6fad4a64
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_disabled_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_off_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_media_route_off_qntm_alpha.png
new file mode 100644
index 0000000..44d98d5
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_off_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_0_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_0_qntm_alpha.png
new file mode 100644
index 0000000..c807b50
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_0_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_1_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_1_qntm_alpha.png
new file mode 100644
index 0000000..d54f44a
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_1_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_2_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_2_qntm_alpha.png
new file mode 100644
index 0000000..17c1d99
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_2_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_qntm_alpha.png
new file mode 100644
index 0000000..906401e
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_search_api_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_search_api_qntm_alpha.png
new file mode 100644
index 0000000..81b13aa
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_voice_search_api_qntm_alpha.png b/core/res/res/drawable-xxhdpi/ic_voice_search_api_qntm_alpha.png
new file mode 100644
index 0000000..d95f1d0
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/ic_voice_search_api_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/scrubber_track_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/scrubber_track_qntm_alpha.9.png
new file mode 100644
index 0000000..c3791fc
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/scrubber_track_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/text_select_handle_left_qntm_alpha.png b/core/res/res/drawable-xxhdpi/text_select_handle_left_qntm_alpha.png
new file mode 100644
index 0000000..93469a2
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/text_select_handle_left_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/text_select_handle_middle_qntm_alpha.png b/core/res/res/drawable-xxhdpi/text_select_handle_middle_qntm_alpha.png
new file mode 100644
index 0000000..5753d89
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/text_select_handle_middle_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/text_select_handle_right_qntm_alpha.png b/core/res/res/drawable-xxhdpi/text_select_handle_right_qntm_alpha.png
new file mode 100644
index 0000000..b3493e7
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/text_select_handle_right_qntm_alpha.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/textfield_search_activated_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/textfield_search_activated_qntm_alpha.9.png
new file mode 100644
index 0000000..cd5b00f
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/textfield_search_activated_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/textfield_search_default_qntm_alpha.9.png b/core/res/res/drawable-xxhdpi/textfield_search_default_qntm_alpha.9.png
new file mode 100644
index 0000000..5ee867c
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/textfield_search_default_qntm_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable/ab_share_pack_quantum.xml b/core/res/res/drawable/ab_share_pack_quantum.xml
new file mode 100644
index 0000000..7d33ff4d
--- /dev/null
+++ b/core/res/res/drawable/ab_share_pack_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ab_share_pack_qntm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ab_solid_shadow_quantum.xml b/core/res/res/drawable/ab_solid_shadow_quantum.xml
new file mode 100644
index 0000000..88e142a
--- /dev/null
+++ b/core/res/res/drawable/ab_solid_shadow_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ab_solid_shadow_qntm_alpha"
+    android:tint="@color/black" />
diff --git a/core/res/res/drawable/ab_transparent_quantum.xml b/core/res/res/drawable/ab_transparent_quantum.xml
deleted file mode 100644
index 495bfb6..0000000
--- a/core/res/res/drawable/ab_transparent_quantum.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/ab_transparent_qntm_alpha"
-    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/btn_borderless_quantum.xml b/core/res/res/drawable/btn_borderless_quantum.xml
index 703fd11..2e3c515 100644
--- a/core/res/res/drawable/btn_borderless_quantum.xml
+++ b/core/res/res/drawable/btn_borderless_quantum.xml
@@ -15,5 +15,7 @@
 -->
 
 <touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
-    android:tint="?attr/colorButtonPressed"
-    android:mask="@drawable/btn_qntm_alpha" />
+    android:tint="?attr/colorButtonPressed">
+    <item android:id="@id/mask"
+        android:drawable="@drawable/btn_qntm_alpha" />
+</touch-feedback>
diff --git a/core/res/res/drawable/btn_cab_done_quantum.xml b/core/res/res/drawable/btn_cab_done_quantum.xml
new file mode 100644
index 0000000..c03ab0a
--- /dev/null
+++ b/core/res/res/drawable/btn_cab_done_quantum.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:autoMirrored="true">
+    <item android:state_pressed="true">
+        <color android:color="?attr/colorButtonPressed" />
+    </item>
+    <item android:state_focused="true" android:state_enabled="true">
+        <nine-patch android:src="@drawable/btn_cab_done_qntm_alpha"
+            android:tint="?attr/colorButtonPressed" />
+    </item>
+    <item android:state_enabled="true">
+        <nine-patch android:src="@drawable/btn_cab_done_qntm_alpha"
+            android:tint="?attr/colorButtonNormal" />
+    </item>
+</selector>
diff --git a/core/res/res/drawable/btn_check_quantum_anim.xml b/core/res/res/drawable/btn_check_quantum_anim.xml
new file mode 100644
index 0000000..d68d512
--- /dev/null
+++ b/core/res/res/drawable/btn_check_quantum_anim.xml
@@ -0,0 +1,79 @@
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:trigger="state_checked"
+    android:versionCode="1" >
+
+    <size
+        android:height="32dp"
+        android:width="32dp" />
+
+    <viewport
+        android:viewportHeight="320"
+        android:viewportWidth="320" />
+
+    <group>
+        <path
+            android:name="check"
+            android:pathData="M 232.1,80.6 L 248.5,92.1 L 145.2,239.5 L 71.5,187.8 L 83,171.5 L 140.3,211.7 z"
+            android:fill="?attr/colorControlActivated" />
+    </group>
+    <group>
+        <path
+            android:name="box1"
+            android:pathData="M 160,216.5 L 143.5,240 L 120,223.5 L 136.5,200 L 160,216.5 L 160,216.5 z"
+            android:fill="?attr/colorControlActivated"
+            android:stroke="?attr/colorControlActivated"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+    <group>
+        <path
+            android:name="box2"
+            android:pathData="M 160,216.5 L 143.5,240 L 120,223.5 L 136.5,200 L 160,216.5 L 160,216.5 z"
+            android:rotation="-35"
+            android:pivotX="140"
+            android:pivotY="220"
+            android:fill="?attr/colorControlNormal"
+            android:stroke="?attr/colorControlNormal"
+            android:strokeWidth="5"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+    <group>
+        <path
+            android:name="box3"
+            android:pathData="M 160,200 L 160,240 L 120,240 L 120,200 L 160,200 L 160,200 z"
+            android:stroke="?attr/colorControlNormal"
+            android:strokeWidth="10"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+    <group>
+        <path
+            android:name="box4"
+            android:pathData="M 240,80 L 240,240 L 80,240 L 80,80 L 240,80 L 240,80 z"
+            android:stroke="?attr/colorControlNormal"
+            android:strokeWidth="20"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+
+    <animation
+        android:durations="300,100,0,300"
+        android:sequence="check,box1,box2,box3,box4" />
+
+</vector>
diff --git a/core/res/res/drawable/btn_default_quantum.xml b/core/res/res/drawable/btn_default_quantum.xml
index 4cb8301..2919621 100644
--- a/core/res/res/drawable/btn_default_quantum.xml
+++ b/core/res/res/drawable/btn_default_quantum.xml
@@ -16,6 +16,8 @@
 
 <touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
     android:tint="?attr/colorButtonPressed">
-    <nine-patch android:src="@drawable/btn_qntm_alpha"
-        android:tint="?attr/colorButtonNormal" />
+    <item>
+        <nine-patch android:src="@drawable/btn_qntm_alpha"
+            android:tint="?attr/colorButtonNormal" />
+    </item>
 </touch-feedback>
diff --git a/core/res/res/drawable/ic_audio_alarm.xml b/core/res/res/drawable/ic_audio_alarm.xml
new file mode 100644
index 0000000..d3e5470
--- /dev/null
+++ b/core/res/res/drawable/ic_audio_alarm.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_audio_alarm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_alarm_mute.xml b/core/res/res/drawable/ic_audio_alarm_mute.xml
new file mode 100644
index 0000000..7d85872
--- /dev/null
+++ b/core/res/res/drawable/ic_audio_alarm_mute.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_audio_alarm_mute_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_bt.xml b/core/res/res/drawable/ic_audio_bt.xml
new file mode 100644
index 0000000..4f5af3d
--- /dev/null
+++ b/core/res/res/drawable/ic_audio_bt.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_audio_bt_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_bt_mute.xml b/core/res/res/drawable/ic_audio_bt_mute.xml
new file mode 100644
index 0000000..d2004c0
--- /dev/null
+++ b/core/res/res/drawable/ic_audio_bt_mute.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_audio_bt_mute_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_notification.xml b/core/res/res/drawable/ic_audio_notification.xml
index b87e4c8..65249f5 100644
--- a/core/res/res/drawable/ic_audio_notification.xml
+++ b/core/res/res/drawable/ic_audio_notification.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_notification_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_notification_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_notification_mute.xml b/core/res/res/drawable/ic_audio_notification_mute.xml
index 1caf27c..af6a8e0 100644
--- a/core/res/res/drawable/ic_audio_notification_mute.xml
+++ b/core/res/res/drawable/ic_audio_notification_mute.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_notification_mute_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_notification_mute_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_phone.xml b/core/res/res/drawable/ic_audio_phone.xml
index e6869fd..1bab863 100644
--- a/core/res/res/drawable/ic_audio_phone.xml
+++ b/core/res/res/drawable/ic_audio_phone.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_phone_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_phone_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_ring_notif.xml b/core/res/res/drawable/ic_audio_ring_notif.xml
index 2f48741..247d1b4 100644
--- a/core/res/res/drawable/ic_audio_ring_notif.xml
+++ b/core/res/res/drawable/ic_audio_ring_notif.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_ring_notif_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_ring_notif_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_ring_notif_mute.xml b/core/res/res/drawable/ic_audio_ring_notif_mute.xml
index 7549f6d..72aaa9d 100644
--- a/core/res/res/drawable/ic_audio_ring_notif_mute.xml
+++ b/core/res/res/drawable/ic_audio_ring_notif_mute.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_ring_notif_mute_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_ring_notif_mute_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_ring_notif_vibrate.xml b/core/res/res/drawable/ic_audio_ring_notif_vibrate.xml
index 3481e27..9e31aba 100644
--- a/core/res/res/drawable/ic_audio_ring_notif_vibrate.xml
+++ b/core/res/res/drawable/ic_audio_ring_notif_vibrate.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_ring_notif_vibrate_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_ring_notif_vibrate_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_vol.xml b/core/res/res/drawable/ic_audio_vol.xml
index 6dd249b..8d07ded 100644
--- a/core/res/res/drawable/ic_audio_vol.xml
+++ b/core/res/res/drawable/ic_audio_vol.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_vol_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_vol_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_audio_vol_mute.xml b/core/res/res/drawable/ic_audio_vol_mute.xml
index b093f5924..edbdb23 100644
--- a/core/res/res/drawable/ic_audio_vol_mute.xml
+++ b/core/res/res/drawable/ic_audio_vol_mute.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_audio_vol_mute_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_audio_vol_mute_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_clear_quantum.xml b/core/res/res/drawable/ic_clear_quantum.xml
new file mode 100644
index 0000000..02f0929
--- /dev/null
+++ b/core/res/res/drawable/ic_clear_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_clear_qntm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_commit_search_api_quantum.xml b/core/res/res/drawable/ic_commit_search_api_quantum.xml
new file mode 100644
index 0000000..02d08b9
--- /dev/null
+++ b/core/res/res/drawable/ic_commit_search_api_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_commit_search_api_qntm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_go_search_api_quantum.xml b/core/res/res/drawable/ic_go_search_api_quantum.xml
new file mode 100644
index 0000000..b5b5cfb
--- /dev/null
+++ b/core/res/res/drawable/ic_go_search_api_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_go_search_api_qntm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_lock_airplane_mode.xml b/core/res/res/drawable/ic_lock_airplane_mode.xml
new file mode 100644
index 0000000..4a16922
--- /dev/null
+++ b/core/res/res/drawable/ic_lock_airplane_mode.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_lock_airplane_mode_alpha"
+    android:tint="?attr/colorControlActivated" />
diff --git a/core/res/res/drawable/ic_lock_airplane_mode_off.xml b/core/res/res/drawable/ic_lock_airplane_mode_off.xml
index b344e28..a8cd390 100644
--- a/core/res/res/drawable/ic_lock_airplane_mode_off.xml
+++ b/core/res/res/drawable/ic_lock_airplane_mode_off.xml
@@ -18,6 +18,6 @@
 -->
 
 <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_lock_airplane_mode_off_am"
-        android:autoMirrored="true">
-</bitmap>
+    android:src="@drawable/ic_lock_airplane_mode_off_am_alpha"
+    android:autoMirrored="true"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_lock_bugreport.xml b/core/res/res/drawable/ic_lock_bugreport.xml
new file mode 100644
index 0000000..a3f82ce
--- /dev/null
+++ b/core/res/res/drawable/ic_lock_bugreport.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_lock_bugreport_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_lock_idle_alarm.xml b/core/res/res/drawable/ic_lock_idle_alarm.xml
new file mode 100644
index 0000000..e8189bd
--- /dev/null
+++ b/core/res/res/drawable/ic_lock_idle_alarm.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_lock_idle_alarm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_lock_lock.xml b/core/res/res/drawable/ic_lock_lock.xml
new file mode 100644
index 0000000..39f268a
--- /dev/null
+++ b/core/res/res/drawable/ic_lock_lock.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_lock_lock_alpha"
+    android:tint="?attr/colorControlActivated" />
diff --git a/core/res/res/drawable/ic_lock_power_off.xml b/core/res/res/drawable/ic_lock_power_off.xml
new file mode 100644
index 0000000..718f17e
--- /dev/null
+++ b/core/res/res/drawable/ic_lock_power_off.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_lock_power_off_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_media_route_connecting_quantum.xml b/core/res/res/drawable/ic_media_route_connecting_quantum.xml
new file mode 100644
index 0000000..0029dd4
--- /dev/null
+++ b/core/res/res/drawable/ic_media_route_connecting_quantum.xml
@@ -0,0 +1,36 @@
+<?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.
+-->
+
+<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
+    android:oneshot="false">
+    <item android:duration="500">
+        <bitmap android:src="@drawable/ic_media_route_on_0_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:duration="500">
+        <bitmap android:src="@drawable/ic_media_route_on_1_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:duration="500">
+        <bitmap android:src="@drawable/ic_media_route_on_2_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:duration="500">
+        <bitmap android:src="@drawable/ic_media_route_on_1_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+</animation-list>
diff --git a/core/res/res/drawable/ic_media_route_quantum.xml b/core/res/res/drawable/ic_media_route_quantum.xml
new file mode 100644
index 0000000..16b63d4
--- /dev/null
+++ b/core/res/res/drawable/ic_media_route_quantum.xml
@@ -0,0 +1,33 @@
+<?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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true" android:state_enabled="true"
+        android:drawable="@android:drawable/ic_media_route_connecting_quantum" />
+    <item android:state_activated="true" android:state_enabled="true">
+        <bitmap android:src="@android:drawable/ic_media_route_on_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:state_enabled="true">
+        <bitmap android:src="@android:drawable/ic_media_route_off_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item>
+        <bitmap android:src="@android:drawable/ic_media_route_disabled_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/core/res/res/drawable/ic_search_api_quantum.xml b/core/res/res/drawable/ic_search_api_quantum.xml
new file mode 100644
index 0000000..2bbc294
--- /dev/null
+++ b/core/res/res/drawable/ic_search_api_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_search_api_qntm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/ic_voice_search_api_quantum.xml b/core/res/res/drawable/ic_voice_search_api_quantum.xml
new file mode 100644
index 0000000..ddb14ef
--- /dev/null
+++ b/core/res/res/drawable/ic_voice_search_api_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_voice_search_api_qntm_alpha"
+    android:tint="?attr/colorControlNormal" />
diff --git a/core/res/res/drawable/item_background_quantum.xml b/core/res/res/drawable/item_background_quantum.xml
index f668ca0..11e1f67 100644
--- a/core/res/res/drawable/item_background_quantum.xml
+++ b/core/res/res/drawable/item_background_quantum.xml
@@ -15,4 +15,5 @@
 -->
 
 <touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
-    android:tint="?attr/colorButtonPressed" />
+    android:tint="?attr/colorButtonPressed"
+    android:pinned="true" />
diff --git a/core/res/res/drawable/notification_bg_dim.xml b/core/res/res/drawable/notification_bg_dim.xml
new file mode 100644
index 0000000..ec20368
--- /dev/null
+++ b/core/res/res/drawable/notification_bg_dim.xml
@@ -0,0 +1,23 @@
+<?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
+  -->
+
+<touch-feedback
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:tint="#ff444444"
+    >
+    <item android:drawable="@drawable/notification_bg_normal" />
+</touch-feedback>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/notification_icon_legacy_bg.xml b/core/res/res/drawable/notification_icon_legacy_bg.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/notification_icon_legacy_bg.xml
rename to core/res/res/drawable/notification_icon_legacy_bg.xml
diff --git a/packages/SystemUI/res/drawable/notification_icon_legacy_bg_inset.xml b/core/res/res/drawable/notification_icon_legacy_bg_inset.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/notification_icon_legacy_bg_inset.xml
rename to core/res/res/drawable/notification_icon_legacy_bg_inset.xml
diff --git a/core/res/res/drawable/notification_quantum_background.xml b/core/res/res/drawable/notification_quantum_background.xml
deleted file mode 100644
index f33e2e3..0000000
--- a/core/res/res/drawable/notification_quantum_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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="2dp" />
-</shape>
\ No newline at end of file
diff --git a/core/res/res/drawable/notification_quantum_bg.xml b/core/res/res/drawable/notification_quantum_bg.xml
index 608115e..300a565 100644
--- a/core/res/res/drawable/notification_quantum_bg.xml
+++ b/core/res/res/drawable/notification_quantum_bg.xml
@@ -16,6 +16,16 @@
   -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true"  android:drawable="@drawable/notification_quantum_press" />
-    <item android:state_pressed="false" android:drawable="@drawable/notification_quantum_background" />
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#ffd0d0d0" />
+            <corners android:radius="@dimen/notification_quantum_rounded_rect_radius" />
+        </shape>
+    </item>
+    <item>
+        <shape>
+            <solid android:color="#fffafafa" />
+            <corners android:radius="@dimen/notification_quantum_rounded_rect_radius" />
+        </shape>
+    </item>
 </selector>
\ No newline at end of file
diff --git a/core/res/res/drawable/notification_quantum_bg_dim.xml b/core/res/res/drawable/notification_quantum_bg_dim.xml
new file mode 100644
index 0000000..ab0e049
--- /dev/null
+++ b/core/res/res/drawable/notification_quantum_bg_dim.xml
@@ -0,0 +1,29 @@
+<?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
+  -->
+
+<touch-feedback
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:tint="#ffffffff"
+    android:tintMode="src_over"
+    >
+    <item>
+        <shape>
+            <solid android:color="#d4ffffff" />
+            <corners android:radius="@dimen/notification_quantum_rounded_rect_radius" />
+        </shape>
+    </item>
+</touch-feedback>
\ No newline at end of file
diff --git a/core/res/res/drawable/notification_quantum_press.xml b/core/res/res/drawable/notification_quantum_press.xml
deleted file mode 100644
index 4999f55..0000000
--- a/core/res/res/drawable/notification_quantum_press.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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="#ffcccccc" />
-    <corners android:radius="2dp" />
-</shape>
\ No newline at end of file
diff --git a/core/res/res/drawable/ratingbar_full_empty_quantum.xml b/core/res/res/drawable/ratingbar_full_empty_quantum.xml
new file mode 100644
index 0000000..e5e4315
--- /dev/null
+++ b/core/res/res/drawable/ratingbar_full_empty_quantum.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true">
+        <bitmap android:src="@drawable/btn_rating_star_off_qntm_alpha"
+            android:tint="?attr/colorControlActivated" />
+    </item>
+    <item>
+        <bitmap android:src="@drawable/btn_rating_star_off_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/core/res/res/drawable/ratingbar_full_filled_quantum.xml b/core/res/res/drawable/ratingbar_full_filled_quantum.xml
new file mode 100644
index 0000000..ad3aa5d
--- /dev/null
+++ b/core/res/res/drawable/ratingbar_full_filled_quantum.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true">
+        <bitmap android:src="@drawable/btn_rating_star_on_qntm_alpha"
+            android:tint="?attr/colorControlActivated" />
+    </item>
+    <item>
+        <bitmap android:src="@drawable/btn_rating_star_on_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/core/res/res/drawable/ratingbar_full_quantum.xml b/core/res/res/drawable/ratingbar_full_quantum.xml
new file mode 100644
index 0000000..143e7c2
--- /dev/null
+++ b/core/res/res/drawable/ratingbar_full_quantum.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@id/background"
+        android:drawable="@drawable/ratingbar_full_empty_quantum" />
+    <item android:id="@id/secondaryProgress"
+        android:drawable="@drawable/ratingbar_full_empty_quantum" />
+    <item android:id="@id/progress" 
+        android:drawable="@drawable/ratingbar_full_filled_quantum" />
+</layer-list>
diff --git a/core/res/res/drawable/scrubber_control_selector_quantum.xml b/core/res/res/drawable/scrubber_control_selector_quantum.xml
index e31c2c1..e34f64a 100644
--- a/core/res/res/drawable/scrubber_control_selector_quantum.xml
+++ b/core/res/res/drawable/scrubber_control_selector_quantum.xml
@@ -15,12 +15,16 @@
 -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="true" android:state_pressed="true">
+    <item android:state_enabled="false">
+        <bitmap android:src="@drawable/scrubber_control_off_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:state_pressed="true">
         <bitmap android:src="@drawable/scrubber_control_on_pressed_qntm_alpha"
             android:tint="?attr/colorControlActivated" />
     </item>
     <item>
         <bitmap android:src="@drawable/scrubber_control_on_qntm_alpha"
-            android:tint="?attr/colorControlNormal" />
+            android:tint="?attr/colorControlActivated" />
     </item>
 </selector>
diff --git a/core/res/res/drawable/scrubber_progress_horizontal_quantum.xml b/core/res/res/drawable/scrubber_progress_horizontal_quantum.xml
index 7b124ac..d172b05 100644
--- a/core/res/res/drawable/scrubber_progress_horizontal_quantum.xml
+++ b/core/res/res/drawable/scrubber_progress_horizontal_quantum.xml
@@ -15,12 +15,24 @@
 -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true">
-        <bitmap android:src="@drawable/scrubber_primary_qntm_alpha"
-            android:tint="?attr/colorControlActivated" />
+    <item android:state_enabled="false">
+        <bitmap android:src="@drawable/scrubber_track_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
     </item>
     <item>
-        <bitmap android:src="@drawable/scrubber_primary_qntm_alpha"
-            android:tint="?attr/colorControlNormal" />
+        <layer-list>
+            <item android:id="@id/background">
+                <bitmap android:src="@drawable/scrubber_track_qntm_alpha"
+                    android:tint="?attr/colorControlNormal" />
+            </item>
+            <item android:id="@id/secondaryProgress">
+                <bitmap android:src="@drawable/scrubber_primary_qntm_alpha"
+                    android:tint="?attr/colorControlNormal" />
+            </item>
+            <item android:id="@id/progress">
+                <bitmap android:src="@drawable/scrubber_primary_qntm_alpha"
+                    android:tint="?attr/colorControlActivated" />
+            </item>
+        </layer-list>
     </item>
 </selector>
diff --git a/core/res/res/drawable/text_select_handle_left_quantum.xml b/core/res/res/drawable/text_select_handle_left_quantum.xml
new file mode 100644
index 0000000..a0ad7cf
--- /dev/null
+++ b/core/res/res/drawable/text_select_handle_left_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/text_select_handle_left_qntm_alpha"
+    android:tint="?attr/colorControlActivated" />
diff --git a/core/res/res/drawable/text_select_handle_middle_quantum.xml b/core/res/res/drawable/text_select_handle_middle_quantum.xml
new file mode 100644
index 0000000..bff0b66
--- /dev/null
+++ b/core/res/res/drawable/text_select_handle_middle_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/text_select_handle_middle_qntm_alpha"
+    android:tint="?attr/colorControlActivated" />
diff --git a/core/res/res/drawable/text_select_handle_right_quantum.xml b/core/res/res/drawable/text_select_handle_right_quantum.xml
new file mode 100644
index 0000000..413661f
--- /dev/null
+++ b/core/res/res/drawable/text_select_handle_right_quantum.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/text_select_handle_right_qntm_alpha"
+    android:tint="?attr/colorControlActivated" />
diff --git a/core/res/res/drawable/textfield_search_quantum.xml b/core/res/res/drawable/textfield_search_quantum.xml
new file mode 100644
index 0000000..877de46
--- /dev/null
+++ b/core/res/res/drawable/textfield_search_quantum.xml
@@ -0,0 +1,42 @@
+<?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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_window_focused="false" android:state_enabled="true">
+        <nine-patch android:src="@drawable/textfield_search_default_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:state_window_focused="false" android:state_enabled="false">
+        <nine-patch android:src="@drawable/textfield_search_default_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item android:state_enabled="true" android:state_focused="true">
+        <nine-patch android:src="@drawable/textfield_search_activated_qntm_alpha"
+            android:tint="?attr/colorControlActivated" />
+    </item>
+    <item android:state_enabled="true" android:state_activated="true">
+        <nine-patch android:src="@drawable/textfield_search_activated_qntm_alpha"
+            android:tint="?attr/colorControlActivated" />
+    </item>
+    <item android:state_enabled="true">
+        <nine-patch android:src="@drawable/textfield_search_default_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+    <item>
+        <nine-patch android:src="@drawable/textfield_search_default_qntm_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/core/res/res/interpolator/fast_out_linear_in.xml b/core/res/res/interpolator/fast_out_linear_in.xml
new file mode 100644
index 0000000..19f95a6
--- /dev/null
+++ b/core/res/res/interpolator/fast_out_linear_in.xml
@@ -0,0 +1,22 @@
+<?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
+  -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0.4"
+    android:controlY1="0"
+    android:controlX2="1"
+    android:controlY2="1"/>
diff --git a/core/res/res/interpolator/fast_out_slow_in.xml b/core/res/res/interpolator/fast_out_slow_in.xml
new file mode 100644
index 0000000..2d68dbb
--- /dev/null
+++ b/core/res/res/interpolator/fast_out_slow_in.xml
@@ -0,0 +1,22 @@
+<?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
+  -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0.4"
+    android:controlY1="0"
+    android:controlX2="0.2"
+    android:controlY2="1"/>
diff --git a/core/res/res/interpolator/linear_out_slow_in.xml b/core/res/res/interpolator/linear_out_slow_in.xml
new file mode 100644
index 0000000..83fc223
--- /dev/null
+++ b/core/res/res/interpolator/linear_out_slow_in.xml
@@ -0,0 +1,22 @@
+<?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
+  -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0"
+    android:controlY1="0"
+    android:controlX2="0.2"
+    android:controlY2="1"/>
diff --git a/core/res/res/layout/action_bar_home_quantum.xml b/core/res/res/layout/action_bar_home_quantum.xml
new file mode 100644
index 0000000..9213458
--- /dev/null
+++ b/core/res/res/layout/action_bar_home_quantum.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<view xmlns:android="http://schemas.android.com/apk/res/android"
+    class="com.android.internal.widget.ActionBarView$HomeView"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center_vertical|start">
+    <ImageView android:id="@android:id/up"
+        android:src="?android:attr/homeAsUpIndicator"
+        android:layout_gravity="center_vertical|start"
+        android:visibility="gone"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:scaleType="centerInside" />
+    <ImageView android:id="@android:id/home"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="8dip"
+        android:layout_marginTop="@android:dimen/action_bar_icon_vertical_padding"
+        android:layout_marginBottom="@android:dimen/action_bar_icon_vertical_padding"
+        android:adjustViewBounds="true"
+        android:scaleType="fitCenter" />
+</view>
diff --git a/core/res/res/layout/alert_dialog_progress_quantum.xml b/core/res/res/layout/alert_dialog_progress_quantum.xml
new file mode 100644
index 0000000..b9d0814
--- /dev/null
+++ b/core/res/res/layout/alert_dialog_progress_quantum.xml
@@ -0,0 +1,48 @@
+<?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:layout_width="wrap_content"
+    android:layout_height="match_parent">
+    <ProgressBar android:id="@+id/progress"
+        style="?android:attr/progressBarStyleHorizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dip"
+        android:layout_marginBottom="1dip"
+        android:layout_marginStart="16dip"
+        android:layout_marginEnd="16dip"
+        android:layout_centerHorizontal="true" />
+    <TextView
+        android:id="@+id/progress_percent"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingBottom="16dip"
+        android:layout_marginStart="16dip"
+        android:layout_marginEnd="16dip"
+        android:layout_alignParentStart="true"
+        android:layout_below="@id/progress" />
+    <TextView
+        android:id="@+id/progress_number"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingBottom="16dip"
+        android:layout_marginStart="16dip"
+        android:layout_marginEnd="16dip"
+        android:layout_alignParentEnd="true"
+        android:layout_below="@id/progress" />
+</RelativeLayout>
diff --git a/core/res/res/layout/alert_dialog_quantum.xml b/core/res/res/layout/alert_dialog_quantum.xml
new file mode 100644
index 0000000..98b68797
--- /dev/null
+++ b/core/res/res/layout/alert_dialog_quantum.xml
@@ -0,0 +1,122 @@
+<?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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/parentPanel"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <LinearLayout android:id="@+id/topPanel"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+        <LinearLayout android:id="@+id/title_template"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:gravity="center_vertical|start"
+            android:paddingStart="16dip"
+            android:paddingEnd="16dip"
+            android:paddingTop="16dip">
+            <ImageView android:id="@+id/icon"
+                android:layout_width="32dip"
+                android:layout_height="32dip"
+                android:layout_marginEnd="8dip"
+                android:scaleType="fitCenter"
+                android:src="@null" />
+            <TextView android:id="@+id/alertTitle"
+                style="?android:attr/windowTitleStyle"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textAlignment="viewStart" />
+        </LinearLayout>
+        <!-- If the client uses a customTitle, it will be added here. -->
+    </LinearLayout>
+
+    <LinearLayout android:id="@+id/contentPanel"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:minHeight="64dp">
+        <ScrollView android:id="@+id/scrollView"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:clipToPadding="false">
+            <TextView android:id="@+id/message"
+                style="?android:attr/textAppearanceMedium"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingStart="16dip"
+                android:paddingEnd="16dip"
+                android:paddingTop="16dip" />
+        </ScrollView>
+    </LinearLayout>
+
+    <FrameLayout android:id="@+id/customPanel"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:minHeight="64dp">
+        <FrameLayout android:id="@+android:id/custom"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+    </FrameLayout>
+
+    <LinearLayout android:id="@+id/buttonPanel"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/alert_dialog_button_bar_height"
+        android:orientation="vertical"
+        android:padding="16dip">
+        <LinearLayout
+            style="?android:attr/buttonBarStyle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layoutDirection="locale"
+            android:measureWithLargestChild="true">
+            <Button android:id="@+id/button3"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="start"
+                android:layout_marginRight="8dip"
+                android:maxLines="2"
+                android:minHeight="@dimen/alert_dialog_button_bar_height"
+                style="?android:attr/buttonBarButtonStyle" />
+            <Button android:id="@+id/button2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="end"
+                android:layout_marginRight="8dip"
+                android:maxLines="2"
+                android:minHeight="@dimen/alert_dialog_button_bar_height"
+                style="?android:attr/buttonBarButtonStyle" />
+            <Button android:id="@+id/button1"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="end"
+                android:maxLines="2"
+                android:minHeight="@dimen/alert_dialog_button_bar_height"
+                style="?android:attr/buttonBarButtonStyle" />
+        </LinearLayout>
+     </LinearLayout>
+</LinearLayout>
diff --git a/core/res/res/layout/dialog_custom_title_quantum.xml b/core/res/res/layout/dialog_custom_title_quantum.xml
new file mode 100644
index 0000000..1bb93eb
--- /dev/null
+++ b/core/res/res/layout/dialog_custom_title_quantum.xml
@@ -0,0 +1,39 @@
+<?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.
+-->
+
+<!--
+This is a custom layout for a dialog.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:fitsSystemWindows="true">
+    <FrameLayout android:id="@android:id/title_container"
+        android:layout_width="match_parent"
+        android:layout_weight="0"
+        android:gravity="center_vertical|start"
+        style="?android:attr/windowTitleBackgroundStyle" />
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:foreground="?android:attr/windowContentOverlay">
+        <FrameLayout android:id="@android:id/content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    </FrameLayout>
+</LinearLayout>
diff --git a/core/res/res/layout/dialog_title_icons_quantum.xml b/core/res/res/layout/dialog_title_icons_quantum.xml
new file mode 100644
index 0000000..28e20d9
--- /dev/null
+++ b/core/res/res/layout/dialog_title_icons_quantum.xml
@@ -0,0 +1,60 @@
+<?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.
+-->
+
+<!--
+This is an optimized layout for a screen, with the minimum set of features
+enabled.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:fitsSystemWindows="true">
+
+    <LinearLayout android:id="@+id/title_container"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:paddingStart="16dip"
+        android:paddingEnd="16dip"
+        android:paddingTop="16dip">
+        <ImageView android:id="@+id/left_icon"
+            android:layout_width="32dip"
+            android:layout_height="32dip"
+            android:scaleType="fitCenter"
+            android:layout_marginEnd="8dip" />
+        <TextView android:id="@android:id/title"
+            style="?android:attr/windowTitleStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0" />
+        <ImageView android:id="@+id/right_icon"
+            android:layout_width="32dip"
+            android:layout_height="32dip"
+            android:scaleType="fitCenter"
+            android:layout_marginStart="8dip" />
+    </LinearLayout>
+
+    <FrameLayout
+        android:layout_width="match_parent" android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:foreground="?android:attr/windowContentOverlay">
+        <FrameLayout android:id="@android:id/content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    </FrameLayout>
+</LinearLayout>
diff --git a/core/res/res/layout/dialog_title_quantum.xml b/core/res/res/layout/dialog_title_quantum.xml
new file mode 100644
index 0000000..b92c1e7
--- /dev/null
+++ b/core/res/res/layout/dialog_title_quantum.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<!--
+This is an optimized layout for a screen, with the minimum set of features
+enabled.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:fitsSystemWindows="true">
+    <TextView android:id="@+id/alertTitle"
+        style="?android:attr/windowTitleStyle"
+        android:singleLine="true"
+        android:ellipsize="end"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="viewStart"
+        android:paddingStart="16dip"
+        android:paddingEnd="16dip"
+        android:paddingTop="16dip" />
+    <FrameLayout
+        android:layout_width="match_parent" android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:foreground="?android:attr/windowContentOverlay">
+        <FrameLayout android:id="@android:id/content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    </FrameLayout>
+</LinearLayout>
diff --git a/core/res/res/layout/notification_quantum_action.xml b/core/res/res/layout/notification_quantum_action.xml
index 775182f..0986343 100644
--- a/core/res/res/layout/notification_quantum_action.xml
+++ b/core/res/res/layout/notification_quantum_action.xml
@@ -16,7 +16,7 @@
   -->
 
 <Button xmlns:android="http://schemas.android.com/apk/res/android"
-    style="?android:attr/borderlessButtonStyle" 
+    style="@android:style/Widget.Quantum.Light.Button.Borderless.Small"
     android:id="@+id/action0"
     android:layout_width="0dp"
     android:layout_height="48dp"
diff --git a/core/res/res/layout/notification_quantum_action_list.xml b/core/res/res/layout/notification_quantum_action_list.xml
index a8aef97..ec4919b 100644
--- a/core/res/res/layout/notification_quantum_action_list.xml
+++ b/core/res/res/layout/notification_quantum_action_list.xml
@@ -23,7 +23,7 @@
     android:visibility="gone"
     android:layout_marginBottom="8dp"
     android:showDividers="middle"
-    android:divider="?android:attr/listDivider"
+    android:divider="@drawable/list_divider_holo_light"
     android:dividerPadding="12dp"
     >
     <!-- actions will be added here -->
diff --git a/core/res/res/layout/notification_quantum_action_tombstone.xml b/core/res/res/layout/notification_quantum_action_tombstone.xml
index 9104991..51e4205 100644
--- a/core/res/res/layout/notification_quantum_action_tombstone.xml
+++ b/core/res/res/layout/notification_quantum_action_tombstone.xml
@@ -16,7 +16,7 @@
   -->
 
 <Button xmlns:android="http://schemas.android.com/apk/res/android"
-    style="?android:attr/borderlessButtonStyle" 
+    style="@android:style/Widget.Quantum.Light.Button.Borderless.Small"
     android:id="@+id/action0"
     android:layout_width="0dp"
     android:layout_height="48dp"
diff --git a/core/res/res/layout/notification_template_quantum_base.xml b/core/res/res/layout/notification_template_quantum_base.xml
index 3e97b2a..8f3019d 100644
--- a/core/res/res/layout/notification_template_quantum_base.xml
+++ b/core/res/res/layout/notification_template_quantum_base.xml
@@ -17,7 +17,6 @@
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:internal="http://schemas.android.com/apk/prv/res/android"
-    android:background="@android:drawable/notification_quantum_bg"
     android:id="@+id/status_bar_latest_event_content"
     android:layout_width="match_parent"
     android:layout_height="64dp"
@@ -92,7 +91,7 @@
             android:layout_height="12dp"
             android:layout_marginStart="8dp"
             android:visibility="gone"
-            style="?android:attr/progressBarStyleHorizontal"
+            style="@style/Widget.Quantum.Light.ProgressBar.Horizontal"
             />
         <LinearLayout
             android:id="@+id/line3"
diff --git a/core/res/res/layout/notification_template_quantum_big_base.xml b/core/res/res/layout/notification_template_quantum_big_base.xml
index d860045..45e69b1 100644
--- a/core/res/res/layout/notification_template_quantum_big_base.xml
+++ b/core/res/res/layout/notification_template_quantum_big_base.xml
@@ -17,7 +17,6 @@
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:internal="http://schemas.android.com/apk/prv/res/android"
-    android:background="@android:drawable/notification_quantum_bg"
     android:id="@+id/status_bar_latest_event_content"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -148,7 +147,7 @@
                 android:layout_marginStart="8dp"
                 android:layout_marginEnd="8dp"
                 android:visibility="gone"
-                style="?android:attr/progressBarStyleHorizontal"
+                style="@style/Widget.Quantum.Light.ProgressBar.Horizontal"
                 />
         </LinearLayout>
         <ImageView
@@ -156,7 +155,7 @@
             android:layout_height="1dp"
             android:id="@+id/action_divider"
             android:visibility="gone"
-            android:background="?android:attr/dividerHorizontal" />
+            android:background="@drawable/list_divider_holo_light" />
         <include
             layout="@layout/notification_quantum_action_list"
             android:layout_width="match_parent"
diff --git a/core/res/res/layout/notification_template_quantum_big_picture.xml b/core/res/res/layout/notification_template_quantum_big_picture.xml
index e49c3bd..f68e414 100644
--- a/core/res/res/layout/notification_template_quantum_big_picture.xml
+++ b/core/res/res/layout/notification_template_quantum_big_picture.xml
@@ -17,7 +17,6 @@
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:internal="http://schemas.android.com/apk/prv/res/android"
-    android:background="@android:drawable/notification_quantum_bg"
     android:id="@+id/status_bar_latest_event_content"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/core/res/res/layout/notification_template_quantum_big_text.xml b/core/res/res/layout/notification_template_quantum_big_text.xml
index 585be80..f7769d7 100644
--- a/core/res/res/layout/notification_template_quantum_big_text.xml
+++ b/core/res/res/layout/notification_template_quantum_big_text.xml
@@ -16,7 +16,6 @@
   -->
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:internal="http://schemas.android.com/apk/prv/res/android"
-    android:background="@android:drawable/notification_quantum_bg"
     android:id="@+id/status_bar_latest_event_content"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -101,7 +100,7 @@
                 android:layout_marginEnd="8dp"
                 android:visibility="gone"
                 android:layout_weight="0"
-                style="?android:attr/progressBarStyleHorizontal"
+                style="@style/Widget.Quantum.Light.ProgressBar.Horizontal"
                 />
             <TextView android:id="@+id/big_text"
                 android:textAppearance="@style/TextAppearance.StatusBar.Quantum.EventContent"
@@ -121,7 +120,7 @@
             android:layout_height="1dip"
             android:id="@+id/action_divider"
             android:visibility="gone"
-            android:background="?android:attr/dividerHorizontal" />
+            android:background="@drawable/list_divider_holo_light" />
         <include
             layout="@layout/notification_quantum_action_list"
             android:layout_width="match_parent"
@@ -135,7 +134,7 @@
             android:id="@+id/overflow_divider"
             android:layout_marginBottom="8dp"
             android:visibility="visible"
-            android:background="?android:attr/dividerHorizontal" />
+            android:background="@drawable/list_divider_holo_light" />
         <LinearLayout
             android:id="@+id/line3"
             android:layout_width="match_parent"
diff --git a/core/res/res/layout/notification_template_quantum_inbox.xml b/core/res/res/layout/notification_template_quantum_inbox.xml
index 31ed508..04974c4 100644
--- a/core/res/res/layout/notification_template_quantum_inbox.xml
+++ b/core/res/res/layout/notification_template_quantum_inbox.xml
@@ -18,7 +18,6 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:internal="http://schemas.android.com/apk/prv/res/android"
     android:id="@+id/status_bar_latest_event_content"
-    android:background="@android:drawable/notification_quantum_bg"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     internal:layout_minHeight="65dp"
@@ -103,7 +102,7 @@
                 android:layout_marginEnd="8dp"
                 android:visibility="gone"
                 android:layout_weight="0"
-                style="?android:attr/progressBarStyleHorizontal"
+                style="@style/Widget.Quantum.Light.ProgressBar.Horizontal"
                 />
             <TextView android:id="@+id/inbox_text0"
                 android:textAppearance="@style/TextAppearance.StatusBar.Quantum.EventContent"
@@ -206,7 +205,7 @@
             android:layout_height="1dip"
             android:id="@+id/action_divider"
             android:visibility="gone"
-            android:background="?android:attr/dividerHorizontal" />
+            android:background="@drawable/list_divider_holo_light" />
         <include
             layout="@layout/notification_quantum_action_list"
             android:layout_width="match_parent"
@@ -218,7 +217,7 @@
             android:layout_height="1dip"
             android:id="@+id/overflow_divider"
             android:visibility="visible"
-            android:background="?android:attr/dividerHorizontal" />
+            android:background="@drawable/list_divider_holo_light" />
         <LinearLayout
             android:id="@+id/line3"
             android:layout_width="match_parent"
diff --git a/core/res/res/layout/preference_category_quantum.xml b/core/res/res/layout/preference_category_quantum.xml
new file mode 100644
index 0000000..032e09d
--- /dev/null
+++ b/core/res/res/layout/preference_category_quantum.xml
@@ -0,0 +1,28 @@
+<?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.
+-->
+
+<!-- Layout used for PreferenceCategory in a PreferenceActivity. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+android:id/title"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginBottom="16dip"
+    android:textAppearance="@style/TextAppearance.Quantum.Body2"
+    android:textColor="?android:attr/textColorSecondary"
+    android:textStyle="bold"
+    android:paddingStart="?attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?attr/listPreferredItemPaddingEnd"
+    android:paddingTop="16dip" />
diff --git a/core/res/res/layout/preference_child_quantum.xml b/core/res/res/layout/preference_child_quantum.xml
new file mode 100644
index 0000000..690d64a
--- /dev/null
+++ b/core/res/res/layout/preference_child_quantum.xml
@@ -0,0 +1,73 @@
+<?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.
+-->
+
+<!-- Layout for a visually child-like Preference in a PreferenceActivity. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="?attr/listPreferredItemPaddingStart"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:gravity="center_vertical"
+    android:paddingStart="?attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?attr/listPreferredItemPaddingEnd">
+
+    <LinearLayout
+        android:id="@+android:id/icon_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="58dip"
+        android:gravity="left|center_vertical"
+        android:orientation="horizontal">
+        <ImageView
+            android:id="@+android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="8dip" />
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="16dip"
+        android:paddingBottom="16dip">
+
+        <TextView android:id="@+android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceListItem" />
+
+        <TextView android:id="@+android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignStart="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="?android:attr/textColorSecondary"
+            android:maxLines="10" />
+
+    </RelativeLayout>
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout android:id="@+android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="58dip"
+        android:gravity="right|center_vertical"
+        android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/core/res/res/layout/preference_holo.xml b/core/res/res/layout/preference_holo.xml
index 1cc803b..1b3ab86 100644
--- a/core/res/res/layout/preference_holo.xml
+++ b/core/res/res/layout/preference_holo.xml
@@ -23,7 +23,8 @@
     android:minHeight="?android:attr/listPreferredItemHeight"
     android:gravity="center_vertical"
     android:paddingStart="@dimen/preference_item_padding_side"
-    android:paddingEnd="?android:attr/scrollbarSize">
+    android:paddingEnd="?android:attr/scrollbarSize"
+    android:background="?android:attr/activatedBackgroundIndicator">
 
     <LinearLayout
         android:layout_width="wrap_content"
diff --git a/core/res/res/layout/preference_information_quantum.xml b/core/res/res/layout/preference_information_quantum.xml
new file mode 100644
index 0000000..f21640fc
--- /dev/null
+++ b/core/res/res/layout/preference_information_quantum.xml
@@ -0,0 +1,74 @@
+<?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.
+-->
+
+<!-- Layout for a Preference in a PreferenceActivity. The
+     Preference is able to place a specific widget for its particular
+     type in the "widget_frame" layout. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:paddingStart="?attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?attr/listPreferredItemPaddingEnd">
+
+    <LinearLayout
+        android:id="@+android:id/icon_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="58dip"
+        android:gravity="left|center_vertical"
+        android:orientation="horizontal">
+        <ImageView
+            android:id="@+android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="8dip" />
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="16dip"
+        android:paddingBottom="16dip">
+
+        <TextView android:id="@+android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceListItem" />
+
+        <TextView android:id="@+android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignStart="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="?android:attr/textColorSecondary"
+            android:maxLines="10" />
+
+    </RelativeLayout>
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout android:id="@+android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="58dip"
+        android:gravity="right|center_vertical"
+        android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/core/res/res/layout/preference_quantum.xml b/core/res/res/layout/preference_quantum.xml
new file mode 100644
index 0000000..a4fe73d
--- /dev/null
+++ b/core/res/res/layout/preference_quantum.xml
@@ -0,0 +1,77 @@
+<?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.
+-->
+
+<!-- Layout for a Preference in a PreferenceActivity. The
+     Preference is able to place a specific widget for its particular
+     type in the "widget_frame" layout. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:paddingStart="?attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?attr/listPreferredItemPaddingEnd"
+    android:background="?android:attr/activatedBackgroundIndicator">
+
+    <LinearLayout
+        android:id="@+android:id/icon_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="58dip"
+        android:gravity="left|center_vertical"
+        android:orientation="horizontal">
+        <ImageView
+            android:id="@+android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:scaleType="centerInside"
+            android:layout_marginEnd="8dip" />
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="16dip"
+        android:paddingBottom="16dip">
+
+        <TextView android:id="@+android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:ellipsize="marquee" />
+
+        <TextView android:id="@+android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignStart="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="?android:attr/textColorSecondary"
+            android:maxLines="10" />
+
+    </RelativeLayout>
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout android:id="@+android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="58dip"
+        android:gravity="right|center_vertical"
+        android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/core/res/res/layout/preference_widget_checkbox.xml b/core/res/res/layout/preference_widget_checkbox.xml
index 33a43f4..bfd7f0a 100644
--- a/core/res/res/layout/preference_widget_checkbox.xml
+++ b/core/res/res/layout/preference_widget_checkbox.xml
@@ -20,6 +20,5 @@
     android:id="@+android:id/checkbox" 
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_gravity="center"
     android:focusable="false"
     android:clickable="false" />
diff --git a/core/res/res/layout/preference_widget_switch.xml b/core/res/res/layout/preference_widget_switch.xml
index 83ef097..534c7ec 100644
--- a/core/res/res/layout/preference_widget_switch.xml
+++ b/core/res/res/layout/preference_widget_switch.xml
@@ -20,6 +20,5 @@
     android:id="@+android:id/switchWidget"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_gravity="center"
     android:padding="16dip"
     android:focusable="false" />
diff --git a/core/res/res/layout/progress_dialog_quantum.xml b/core/res/res/layout/progress_dialog_quantum.xml
new file mode 100644
index 0000000..84d06b5
--- /dev/null
+++ b/core/res/res/layout/progress_dialog_quantum.xml
@@ -0,0 +1,41 @@
+<?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:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <LinearLayout android:id="@+id/body"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:baselineAligned="false"
+        android:padding="16dip">
+
+        <ProgressBar android:id="@android:id/progress"
+            style="?android:attr/progressBarStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:max="10000"
+            android:layout_marginEnd="16dip" />
+
+        <TextView android:id="@+id/message"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical" />
+    </LinearLayout>
+</FrameLayout>
diff --git a/core/res/res/layout/screen_action_bar.xml b/core/res/res/layout/screen_action_bar.xml
index 3265736..77f537b 100644
--- a/core/res/res/layout/screen_action_bar.xml
+++ b/core/res/res/layout/screen_action_bar.xml
@@ -33,25 +33,25 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentTop="true"
-        style="?android:attr/actionBarStyle"
+        style="?attr/actionBarStyle"
         android:sharedElementName="android:action_bar"
         android:gravity="top">
         <com.android.internal.widget.ActionBarView
             android:id="@+id/action_bar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            style="?android:attr/actionBarStyle" />
+            style="?attr/actionBarStyle" />
         <com.android.internal.widget.ActionBarContextView
             android:id="@+id/action_context_bar"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:visibility="gone"
-            style="?android:attr/actionModeStyle" />
+            style="?attr/actionModeStyle" />
     </com.android.internal.widget.ActionBarContainer>
     <com.android.internal.widget.ActionBarContainer android:id="@+id/split_action_bar"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
-                  style="?android:attr/actionBarSplitStyle"
+                  style="?attr/actionBarSplitStyle"
                   android:visibility="gone"
                   android:gravity="center"/>
 </com.android.internal.widget.ActionBarOverlayLayout>
diff --git a/core/res/res/layout/select_dialog_item_quantum.xml b/core/res/res/layout/select_dialog_item_quantum.xml
new file mode 100644
index 0000000..59b432e
--- /dev/null
+++ b/core/res/res/layout/select_dialog_item_quantum.xml
@@ -0,0 +1,33 @@
+<?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.
+-->
+
+<!--
+    This layout file is used by the AlertDialog when displaying a list of items.
+    This layout file is inflated and used as the TextView to display individual
+    items.
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:textAppearance="?android:attr/textAppearanceListItemSmall"
+    android:textColor="?android:attr/textColorAlertDialogListItem"
+    android:gravity="center_vertical"
+    android:paddingStart="16dip"
+    android:paddingEnd="16dip"
+    android:ellipsize="marquee" />
diff --git a/core/res/res/layout/select_dialog_multichoice_quantum.xml b/core/res/res/layout/select_dialog_multichoice_quantum.xml
new file mode 100644
index 0000000..8b4c59d
--- /dev/null
+++ b/core/res/res/layout/select_dialog_multichoice_quantum.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+
+<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:textAppearance="?android:attr/textAppearanceMedium"
+    android:textColor="?android:attr/textColorAlertDialogListItem"
+    android:gravity="center_vertical"
+    android:paddingStart="16dip"
+    android:paddingEnd="16dip"
+    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
+    android:ellipsize="marquee" />
diff --git a/core/res/res/layout/select_dialog_quantum.xml b/core/res/res/layout/select_dialog_quantum.xml
new file mode 100644
index 0000000..ee04039
--- /dev/null
+++ b/core/res/res/layout/select_dialog_quantum.xml
@@ -0,0 +1,32 @@
+<?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.
+-->
+
+<!--
+    This layout file is used by the AlertDialog when displaying a list of items.
+    This layout file is inflated and used as the ListView to display the items.
+    Assign an ID so its state will be saved/restored.
+-->
+<view class="com.android.internal.app.AlertController$RecycleListView"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+android:id/select_dialog_listview"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:cacheColorHint="@null"
+    android:divider="?android:attr/listDividerAlertDialog"
+    android:scrollbars="vertical"
+    android:overScrollMode="ifContentScrolls"
+    android:textAlignment="viewStart" />
diff --git a/core/res/res/layout/select_dialog_singlechoice_quantum.xml b/core/res/res/layout/select_dialog_singlechoice_quantum.xml
new file mode 100644
index 0000000..27a6648
--- /dev/null
+++ b/core/res/res/layout/select_dialog_singlechoice_quantum.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+
+<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:textAppearance="?android:attr/textAppearanceMedium"
+    android:textColor="?android:attr/textColorAlertDialogListItem"
+    android:gravity="center_vertical"
+    android:paddingStart="16dip"
+    android:paddingEnd="16dip"
+    android:checkMark="?android:attr/listChoiceIndicatorSingle"
+    android:ellipsize="marquee" />
diff --git a/core/res/res/layout/simple_list_item_1.xml b/core/res/res/layout/simple_list_item_1.xml
index 4249d10..43a5635 100644
--- a/core/res/res/layout/simple_list_item_1.xml
+++ b/core/res/res/layout/simple_list_item_1.xml
@@ -22,5 +22,4 @@
     android:gravity="center_vertical"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:minHeight="?android:attr/listPreferredItemHeightSmall"
-/>
+    android:minHeight="?android:attr/listPreferredItemHeightSmall" />
diff --git a/core/res/res/layout/simple_list_item_2.xml b/core/res/res/layout/simple_list_item_2.xml
index 63c542b..b47a346 100644
--- a/core/res/res/layout/simple_list_item_2.xml
+++ b/core/res/res/layout/simple_list_item_2.xml
@@ -20,22 +20,19 @@
     android:minHeight="?android:attr/listPreferredItemHeight"
     android:mode="twoLine"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
->
-    
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
 	<TextView android:id="@android:id/text1"
-		android:layout_width="match_parent"
-		android:layout_height="wrap_content"
-    android:layout_marginTop="8dip"
-		android:textAppearance="?android:attr/textAppearanceListItem"
-	/>
-		
+    	android:layout_width="match_parent"
+    	android:layout_height="wrap_content"
+      android:layout_marginTop="8dip"
+    	android:textAppearance="?android:attr/textAppearanceListItem" />
+
 	<TextView android:id="@android:id/text2"
-		android:layout_width="match_parent"
-		android:layout_height="wrap_content"
-		android:layout_below="@android:id/text1"
-    android:layout_alignStart="@android:id/text1"
-		android:textAppearance="?android:attr/textAppearanceSmall"
-	/>
+    	android:layout_width="match_parent"
+    	android:layout_height="wrap_content"
+    	android:layout_below="@android:id/text1"
+      android:layout_alignStart="@android:id/text1"
+    	android:textAppearance="?android:attr/textAppearanceListItemSecondary" />
 
 </TwoLineListItem>
diff --git a/core/res/res/layout/simple_list_item_2_single_choice.xml b/core/res/res/layout/simple_list_item_2_single_choice.xml
index 5629567..65c5856 100644
--- a/core/res/res/layout/simple_list_item_2_single_choice.xml
+++ b/core/res/res/layout/simple_list_item_2_single_choice.xml
@@ -22,31 +22,34 @@
     android:paddingStart="16dip"
     android:paddingEnd="12dip"
     android:minHeight="?android:attr/listPreferredItemHeightSmall">
+
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:orientation="vertical"
         android:gravity="center_vertical">
+
         <TextView android:id="@android:id/text1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textAppearance="?android:attr/textAppearanceListItem"
             android:textColor="?android:attr/textColorAlertDialogListItem"
             android:gravity="center_vertical|start"
             android:singleLine="true"
-            android:ellipsize="marquee"
-        />
+            android:ellipsize="marquee" />
+        
         <TextView android:id="@android:id/text2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
             android:textColor="?android:attr/textColorAlertDialogListItem"
             android:gravity="center_vertical|start"
             android:singleLine="true"
-            android:ellipsize="marquee"
-        />
+            android:ellipsize="marquee" />
+        
     </LinearLayout>
+
     <RadioButton
         android:id="@+id/radio"
         android:layout_width="35dip"
@@ -54,6 +57,6 @@
         android:paddingEnd="12dip"
         android:gravity="center_vertical"
         android:focusable="false"
-        android:clickable="false"
-    />
+        android:clickable="false" />
+
 </LinearLayout>
diff --git a/core/res/res/layout/simple_list_item_activated_1.xml b/core/res/res/layout/simple_list_item_activated_1.xml
index 41155e4..9b778d7 100644
--- a/core/res/res/layout/simple_list_item_activated_1.xml
+++ b/core/res/res/layout/simple_list_item_activated_1.xml
@@ -23,5 +23,4 @@
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:background="?android:attr/activatedBackgroundIndicator"
-    android:minHeight="?android:attr/listPreferredItemHeightSmall"
-/>
+    android:minHeight="?android:attr/listPreferredItemHeightSmall" />
diff --git a/core/res/res/layout/simple_list_item_activated_2.xml b/core/res/res/layout/simple_list_item_activated_2.xml
index 725697d..5036813 100644
--- a/core/res/res/layout/simple_list_item_activated_2.xml
+++ b/core/res/res/layout/simple_list_item_activated_2.xml
@@ -21,23 +21,20 @@
     android:layout_height="wrap_content"
     android:background="?android:attr/activatedBackgroundIndicator"
     android:minHeight="?android:attr/listPreferredItemHeight"
-    android:mode="twoLine"
->
+    android:mode="twoLine">
 
     <TextView android:id="@android:id/text1"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
         android:layout_marginTop="6dip"
-        android:textAppearance="?android:attr/textAppearanceListItem"
-    />
+        android:textAppearance="?android:attr/textAppearanceListItem" />
 
     <TextView android:id="@android:id/text2"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@android:id/text1"
         android:layout_alignStart="@android:id/text1"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-    />
+        android:textAppearance="?android:attr/textAppearanceListItemSecondary" />
 
 </TwoLineListItem>
diff --git a/core/res/res/layout/simple_list_item_checked.xml b/core/res/res/layout/simple_list_item_checked.xml
index 0c497d6..4673e27 100644
--- a/core/res/res/layout/simple_list_item_checked.xml
+++ b/core/res/res/layout/simple_list_item_checked.xml
@@ -22,5 +22,4 @@
     android:gravity="center_vertical"
     android:checkMark="?android:attr/textCheckMark"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-/>
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" />
diff --git a/core/res/res/layout/simple_list_item_multiple_choice.xml b/core/res/res/layout/simple_list_item_multiple_choice.xml
index 076d8c6..440b6fd 100644
--- a/core/res/res/layout/simple_list_item_multiple_choice.xml
+++ b/core/res/res/layout/simple_list_item_multiple_choice.xml
@@ -22,5 +22,4 @@
     android:gravity="center_vertical"
     android:checkMark="?android:attr/listChoiceIndicatorMultiple"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-/>
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" />
diff --git a/core/res/res/layout/simple_list_item_single_choice.xml b/core/res/res/layout/simple_list_item_single_choice.xml
index 4c1af09..02cb7f7 100644
--- a/core/res/res/layout/simple_list_item_single_choice.xml
+++ b/core/res/res/layout/simple_list_item_single_choice.xml
@@ -22,5 +22,4 @@
     android:gravity="center_vertical"
     android:checkMark="?android:attr/listChoiceIndicatorSingle"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-/>
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" />
diff --git a/core/res/res/layout/tab_indicator_quantum.xml b/core/res/res/layout/tab_indicator_quantum.xml
new file mode 100644
index 0000000..fcb2d5f
--- /dev/null
+++ b/core/res/res/layout/tab_indicator_quantum.xml
@@ -0,0 +1,37 @@
+<?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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_height="?android:attr/actionBarSize"
+    android:orientation="horizontal"
+    style="@android:style/Widget.Quantum.Tab">
+
+    <ImageView
+        android:id="@android:id/icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:visibility="gone" />
+
+    <TextView
+        android:id="@android:id/title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        style="@android:style/Widget.Quantum.TabText" />
+
+</LinearLayout>
diff --git a/core/res/res/layout/volume_adjust.xml b/core/res/res/layout/volume_adjust.xml
index c16a12c..3ad1f23 100644
--- a/core/res/res/layout/volume_adjust.xml
+++ b/core/res/res/layout/volume_adjust.xml
@@ -14,47 +14,38 @@
      limitations under the License.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="480dp"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/visible_panel"
+    android:orientation="horizontal"
+    android:layout_width="300dp"
     android:layout_height="wrap_content">
+
     <LinearLayout
-        android:id="@+id/visible_panel"
-        android:layout_width="match_parent"
+        android:id="@+id/slider_group"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:background="@android:drawable/dialog_full_holo_dark"
-        android:orientation="horizontal"
-        >
-
-        <LinearLayout
-            android:id="@+id/slider_group"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:orientation="vertical"
-            >
-            <!-- Sliders go here -->
-        </LinearLayout>
-
-        <ImageView
-            android:id="@+id/expand_button_divider"
-            android:src="?attr/dividerVertical"
-            android:layout_width="wrap_content"
-            android:layout_height="32dip"
-            android:scaleType="fitXY"
-            android:layout_gravity="top"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
-            />
-
-        <ImageView
-            android:id="@+id/expand_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="top"
-            android:padding="16dip"
-            android:background="?attr/selectableItemBackground"
-            android:src="@drawable/ic_sysbar_quicksettings"
-            />
-
+        android:layout_weight="1"
+        android:orientation="vertical">
+        <!-- Sliders go here -->
     </LinearLayout>
-</FrameLayout>
\ No newline at end of file
+
+    <ImageView
+        android:id="@+id/expand_button_divider"
+        android:src="?attr/dividerVertical"
+        android:layout_width="wrap_content"
+        android:layout_height="32dip"
+        android:scaleType="fitXY"
+        android:layout_gravity="top"
+        android:layout_marginTop="16dip"
+        android:layout_marginBottom="16dip" />
+
+    <ImageView
+        android:id="@+id/expand_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="top"
+        android:padding="16dip"
+        android:background="?attr/selectableItemBackground"
+        android:src="@drawable/ic_sysbar_quicksettings" />
+
+</LinearLayout>
diff --git a/core/res/res/layout/volume_adjust_item.xml b/core/res/res/layout/volume_adjust_item.xml
index 4a0fbaf..57cecf4 100644
--- a/core/res/res/layout/volume_adjust_item.xml
+++ b/core/res/res/layout/volume_adjust_item.xml
@@ -26,14 +26,14 @@
         android:id="@+id/stream_icon"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:padding="16dip"
+        android:paddingLeft="16dip"
         android:background="?attr/selectableItemBackground"
-        />
+        android:contentDescription="@null" />
 
     <SeekBar
         style="?android:attr/seekBarStyle"
         android:id="@+id/seekbar"
-        android:layout_width="300dp"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:padding="16dip"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index f8d7fcc..f9b00a9 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Dit laat die houer toe om aan die topvlak-koppelvlak van \'n legstuk-diens te bind. Dit moet nooit vir normale programme nodig wees nie."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"skakel met \'n toestel-admin"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Laat die houer toe om bedoelings na \'n toesteladministrateur te stuur. Dit moet nooit vir normale programme nodig wees nie."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"bind aan \'n TV-invoer"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Laat die houer toe om aan die topvlak-koppelvlak van \'n TV-invoer te bind. Behoort nooit vir gewone programme nodig te wees nie."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"voeg \'n toesteladministrateur by of verwyder een"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Laat die houer aktiewe toesteladministrateurs byvoeg of verwyder. Behoort nooit nodig te wees vir normale programme nie."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"verander skermoriëntasie"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Laat \'n program luister vir waarnemings oor netwerktoestande. Behoort nooit nodig te wees vir normale programme nie."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"verander invoertoestelkalibrasie"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Laat die program toe om die kalibrasieparameters van die raakskerm te wysig. Dit behoort nooit vir normale programme nodig te wees nie."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"gaan in by DRM-sertifikate"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Laat \'n program toe om DRM-sertifikate op te stel en te gebruik. Behoort nooit vir normale programme nodig te wees nie."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Stel wagwoordreëls"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Beheer lengte en watter karakters wat in die skermontsluit-wagwoorde gebruik word."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitor pogings om skerm te ontsluit"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Laat \'n program toe om toegang tot keyguard se veilige berging te kry."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Beheer wys en versteek van keyguard"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Laat \'n program toe om keyguard te beheer."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Luister na vertrouenstaatveranderinge."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Laat \'n program toe om vir veranderinge in vertrouenstaat te luister."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Verbind met \'n vertrouensagentdiens"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Laat \'n program toe om met \'n vertrouensagentdiens te verbind."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Tree in wisselwerking met opdatering- en terugstellingstelsel"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Laat \'n program met die terugstellingstelsel en stelselopdaterings in wisselwerking tree."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Raak twee keer vir zoembeheer"</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 0d8c1f1..9795461 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -270,13 +270,13 @@
     <string name="permlab_sendRespondViaMessageRequest" msgid="8713889105305943200">"የበመልዕክት-በኩል-ምላሽ-ስጥ ክስተቶችን ይላኩ"</string>
     <string name="permdesc_sendRespondViaMessageRequest" msgid="7107648548468778734">"መተግበሪያው ሌሎች የመልዕክት መላኪያ መተግበሪያዎች ለመጪ ጥሪዎች በመልዕክት-በኩል-ምላሽ-መስጠት ስራን እንዲይዙ ጥያቄዎች እንዲልክላቸው ያስችለዋል።"</string>
     <string name="permlab_readSms" msgid="8745086572213270480">"የጽሑፍ መልዕክቶችዎን ያንብቡ (ኤስ.ኤም.ኤስ. ወይም ኤም.ኤም.ኤስ.)"</string>
-    <string name="permdesc_readSms" product="tablet" msgid="2467981548684735522">"መገለጫው በጡባዊ ቱኮህ ወይም በSIM ካርድህ የተከማቹ የኤስ.ኤም.ኤስ. መልእክቶችን እንዲያነብ ይፈቅድለታል። ይህ መተግበሪያው ይዘት ወይም ሚስጥራዊነትን ከግምት ሳያስገባ ሁሉንም የኤስ.ኤም.ኤስ. መልእክቶች እንዲያነብ ይፈቅድለታል።"</string>
+    <string name="permdesc_readSms" product="tablet" msgid="2467981548684735522">"መገለጫው በጡባዊ ተኮዎ ወይም በSIM ካርድዎ የተከማቹ የኤስኤምኤስ. መልዕክቶችን እንዲያነብ ይፈቅድለታል። ይህ መተግበሪያው ይዘት ወይም ሚስጥራዊነትን ከግምት ሳያስገባ ሁሉንም የኤስኤምኤስ መልዕክቶች እንዲያነብ ይፈቅድለታል።"</string>
     <string name="permdesc_readSms" product="default" msgid="3695967533457240550">"መገለጫው በስልክዎ ወይም በSIM ካርድዎ የተከማቹ የኤስ.ኤም.ኤስ. መልዕክቶችን እንዲያነብ ይፈቅድለታል። ይህ መተግበሪያው ይዘት ወይም ሚስጥራዊነትን ከግምት ሳያስገባ ሁሉንም የኤስ.ኤም.ኤስ. መልዕክቶች እንዲያነብ ይፈቅድለታል።"</string>
     <string name="permlab_writeSms" msgid="3216950472636214774">"የጽሑፍ መልዕክቶችህን አርትዕ (ኤስ.ኤም.ኤስ. ወይም ኤም.ኤም.ኤስ.)"</string>
     <string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"በጡባዊ ተኮህ ወይም ሲም ካርድህ ላይ ኤስ ኤም ኤስ መልዕክቶችን ለመፃፍ ለመተግበሪያው ይፈቅዳሉ፡፡መልዕክቶችህን ተንኮል አዘል መተግበሪያዎች ሊሰርዙ ይችላሉ፡፡"</string>
     <string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"በስልክዎ ወይም ሲም ካርድዎ ላይ ኤስ ኤም ኤስ መልዕክቶችን ለመፃፍ ለመተግበሪያው ይፈቅዳሉ። መልዕክቶችዎን ተንኮል አዘል መተግበሪያዎች ሊሰርዙ ይችላሉ።"</string>
     <string name="permlab_receiveWapPush" msgid="5991398711936590410">"የፅሁፍ መልዕክቶችን ተቀበል (WAP)"</string>
-    <string name="permdesc_receiveWapPush" msgid="748232190220583385">"መተግበሪያው የWAP መልእክቶችን እንዲያነብ እና እንዲያካሂድ ይፈቅዳል። ይህ ፈቃድ የተላኩልህን መልእክቶች ላንተ ሳያሳይህ የመቆጣጠር ወይም የመሰረዝ ብቃትን ያጠቃልላል።"</string>
+    <string name="permdesc_receiveWapPush" msgid="748232190220583385">"መተግበሪያው የWAP መልዕክቶችን እንዲያነብ እና እንዲያካሂድ ይፈቅዳል። ይህ ፈቃድ የተላኩልዎን መልዕክቶች ለእርስዎ ሳያሳይዎ የመቆጣጠር ወይም የመሰረዝ ብቃትን ያጠቃልላል።"</string>
     <string name="permlab_getTasks" msgid="6466095396623933906">"አሂድ መተግበሪያዎችን ሰርስረው ያውጡ"</string>
     <string name="permdesc_getTasks" msgid="7454215995847658102">"መተግበሪያው በአሁኑ ጊዜና በቅርቡ እየተካሄዱ ስላሉ ተግባሮችን መረጃ ሰርስሮ እንዲያወጣ ይፈቅድለታል። ይህ መተግበሪያው በመሳሪያው ላይ የትኛዎቹ መተግበሪያዎች ጥቅም ላይ ስለመዋላቸው መረጃ እንዲያገኝ ሊፈቅድለት ይችላል።"</string>
     <string name="permlab_interactAcrossUsers" msgid="7114255281944211682">"በተለያዩ ተጠቃሚዎች መካከል መስተጋብር መፍጠር"</string>
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ ፍርግም አገልግሎት ለመጠረዝ  ይፈቅዳሉ። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"ከመሣሪያ አስተዳደር ጋር ተገናኝ"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ያዡ በይነመረብን ለመሣሪያ አስተዳዳሪ ለመላክ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"የመሣሪያ አስተዳዳሪ ያክሉ ወይም ያስወግዱ"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"ያዢው ንቁ የመሣሪያ አስተዳዳሪዎች እንዲያክል ወይም እንዲያስወግድ ያስችለዋል። ለመደበኛ መተግበሪያዎች ጭራሽ ሊያስፈልግ አይገባም።"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"የማያ ገፀ አቀማመጥን ለውጥ"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"አንድ መተግበሪያ በአውታረ መረብ ሁኔታዎች ላይ የተስተዋሉ ነገሮችን እንዲያዳምጥ ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ አስፈላጊ ሊሆን አይገባም።"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"የግቤት መሣሪያ ማስተካከያ ቀይር"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"መተግበሪያው የማያ ንካ የማስተካከያ ልኬቶቹን እንዲቀይር ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ ሊያስፈልግ አይገባም።"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"የDRM የምስክር ወረቀቶች ላይ ይድረሱ"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"አንድ መተግበሪያ የDRM የምስክር ወረቀቶችን እንዲሰጥና እንዲጠቀም ያስችላል። ለመደበኛ መተግበሪያዎች በፍጹም አስፈላጊ አይሆንም።"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"የይለፍ ቃል ደንቦች አዘጋጅ"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"በማያ-መክፈት የተፈቀዱ የይለፍ ቃል ርዝመት እና ቁምፊዎች ተቆጣጠር።"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"የማሳያ-ክፈት ሙከራዎችን አሳይ"</string>
@@ -988,7 +994,7 @@
     <string name="search_go" msgid="8298016669822141719">"ፍለጋ"</string>
     <string name="searchview_description_search" msgid="6749826639098512120">"ፍለጋ"</string>
     <string name="searchview_description_query" msgid="5911778593125355124">"ጥያቄ ፍለጋ"</string>
-    <string name="searchview_description_clear" msgid="1330281990951833033">"ጥያቄ አጥራ"</string>
+    <string name="searchview_description_clear" msgid="1330281990951833033">"ጥያቄ አጽዳ"</string>
     <string name="searchview_description_submit" msgid="2688450133297983542">"ጥያቄ አስረክብ"</string>
     <string name="searchview_description_voice" msgid="2453203695674994440">"የድምፅ ፍለጋ"</string>
     <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"በመንካት አስስ ይንቃ?"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"አንድ መተግበሪያ ደህንነቱ በቁልፍ የተጠበቀ ማከማቻ እንዲደርስ ያስችለዋል።"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"የቁልፍ መጠበቂያውን ማሳየት እና መደበቅ ይቆጣጠሩ"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"አንድ መተግበሪያ የቁልፍ መጠበቂያውን እንዲቆጣጠር ያስችለዋል።"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"የተአማኒነት ሁኔታ ለውጦችን አዳምጥ።"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"መተግበሪያው በተአማኒነት ሁኔታ ውስጥ ለውጦችን እንዲያዳምጥ ይፈቅዳል።"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"ለተአማኒነት ወኪል አገልግሎት ተገዢ አድርግ"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"ለመተግበሪያን የተአማኒነት ወኪል አገልግሎትን እንዲያከብር ይፈቅዳል።"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"ከዝማኔዎች እና ከመልሶ ማግኛ ስርዓቶች ጋር ይገናኙ"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"መተግበሪያው ከመልሶ ማግኛ ስርዓት እና ከስርዓት ማዘመኛዎች ጋር እንዲገናኝ ይፈቅድለታል።"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"ለአጉላ መቆጣጠሪያ ሁለት ጊዜ ነካ አድርግ"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index c808135..c6ff2da 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"للسماح للمالك بالالتزام بواجهة المستوى العلوي لخدمة الأداة. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"التفاعل مع مشرف الجهاز"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"للسماح للمالك بإرسال الأهداف إلى أحد مشرفي الجهاز. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"الالتزام بإدخال التلفزيون"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"للسماح للمالك بالالتزام بواجهة المستوى العلوي لإدخال التلفزيون. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"إضافة مشرف جهاز أو إزالته"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"للسماح بحامل البطاقة بإضافة مشرفي أجهزة نشطين أو إزالتهم. لا يلزم ذلك أبدًا للتطبيقات العادية."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"تغيير اتجاه الشاشة"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"للسماح للتطبيق بالاستماع إلى ملاحظات حول أحوال الشبكة. لا حاجة إلى هذا مع التطبيقات العادية."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"تغيير معايرة أجهزة الإدخال"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"يتيح للتطبيق إمكانية تعديل معلمات المعايرة في شاشة اللمس. يجب عدم اللجوء إليه مع التطبيقات العادية."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"‏الدخول إلى شهادات DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏للسماح لأحد التطبيقات بتقديم شهادات DRM واستخدامها. لا يجب أن يكون ذلك لازمًا مطلقًا مع التطبيقات العادية."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"تعيين قواعد كلمة المرور"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"يمكنك التحكم في الطول والأحرف المسموح بها في كلمات مرور إلغاء تأمين الشاشة."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"مراقبة محاولات إلغاء قفل الشاشة"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"السماح لأحد التطبيقات بالدخول إلى التخزين المحمي بقفل المفاتيح."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"التحكم في عرض وإخفاء قفل المفاتيح"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"للسماح لأحد التطبيقات بالتحكم في قفل المفاتيح."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"معرفة تغييرات حالة الاعتماد."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"للسماح للتطبيق بالتعرف على التغييرات في حالة الاعتماد."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"الالتزام بخدمة الوكيل المعتمد"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"للسماح لأحد التطبيقات بالالتزام بخدمة الوكيل المعتمد."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"التفاعل مع نظام التحديث والاسترداد"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"للسماح للتطبيق بالتفاعل مع نظام الاسترداد وتحديثات النظام."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"المس مرتين للتحكم في التكبير/التصغير"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 015bf10..499280e 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Разрешава на притежателя да се обвърже с интерфейса от най-високото ниво на услуга за приспособления. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"взаимодействие с администратор на устройството"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Разрешава на притежателя да изпраща намерения до администратор на устройството. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"добавяне или премахване на администратор на устройства"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Разрешава на притежателя да добавя или премахва администратори на активни устройства. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"промяна на ориентацията на екрана"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Разрешава на приложението да слуша за наблюдения на мрежовите условия. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"промяна на калибрирането на устройството за въвеждане"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Разрешава на приложението да променя параметрите на калибриране на сензорния екран. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"достъп до сертификатите за управление на цифровите права (DRM)"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Разрешава на приложението да обезпечава и използва сертификатите за управление на цифровите права (DRM). Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Задаване на правила за паролата"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролирайте дължината и разрешените знаци за паролите за отключване на екрана."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Наблюдаване на опитите за отключване на екрана"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Позволява на приложението да осъществява достъп до надеждното хранилище, свързано с функцията за защита на клавишите."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Контролиране на показването и скриването на функцията за защита на клавишите"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Разрешава на приложението да контролира функцията за защита на клавишите."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Следене за промени в състоянието на надеждност"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Разрешава на приложението да следи за промени в състоянието на надеждност."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Обвързване с услуга за trust agents"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Разрешава на приложението да се обвърже с услуга за trust agents."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Взаимодействие със системата за актуализации и възстановяване"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Разрешава на приложението да взаимодейства със системата за възстановяване и системните актуализации."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Докоснете двукратно за управление на промяната на мащаба"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 94f4b4f..618eba9 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permet que el titular vinculi a la interfície de nivell superior d\'un servei de widget. No s\'hauria de necessitar mai per a les aplicacions normals."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactuar amb un administrador del dispositiu"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permet que el titular enviï intents a un administrador del sistema. No s\'hauria de necessitar mai per a les aplicacions normals."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"Vinculació a una entrada de televisor"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permet que el titular es vinculi a la interfície de nivell superior d\'una entrada de televisor. No s\'hauria de necessitar mai per a les aplicacions normals."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"afegeix un administrador al dispositiu o suprimeix-lo"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permet que el titular afegeixi administradors actius al dispositiu o en suprimeixi. No s\'hauria de necessitar per a les aplicacions normals."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"canviar l\'orientació de la pantalla"</string>
@@ -430,19 +432,19 @@
     <string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"Permet que una aplicació concedeixi o denegui permisos específics per a aquesta o per a altres aplicacions. És possible que les aplicacions malicioses ho facin servir per accedir a funcions a les quals no has concedit accés."</string>
     <string name="permlab_setPreferredApplications" msgid="8463181628695396391">"defineix les aplicacions preferides"</string>
     <string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"Permet que l\'aplicació modifiqui les aplicacions preferides. Les aplicacions malicioses poden canviar silenciosament les aplicacions que s\'executen, falsejar les aplicacions existents o recollir dades privades de l\'usuari."</string>
-    <string name="permlab_writeSettings" msgid="2226195290955224730">"modificació de la configuració del sistema"</string>
+    <string name="permlab_writeSettings" msgid="2226195290955224730">"modificar la configuració del sistema"</string>
     <string name="permdesc_writeSettings" msgid="7775723441558907181">"Permet que l\'aplicació modifiqui les dades de configuració del sistema. Les aplicacions malicioses poden malmetre la configuració del sistema."</string>
     <string name="permlab_writeSecureSettings" msgid="204676251876718288">"modificar la configuració de seguretat del sistema"</string>
     <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Permet que l\'aplicació modifiqui les dades de la configuració de seguretat del sistema. No indicat per a les aplicacions normals."</string>
     <string name="permlab_writeGservices" msgid="2149426664226152185">"modificar el mapa de serveis de Google"</string>
     <string name="permdesc_writeGservices" msgid="1287309437638380229">"Permet que l\'aplicació modifiqui el mapa dels serveis de Google. No la poden fer servir les aplicacions normals."</string>
-    <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"execució en iniciar"</string>
+    <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"executar-se a l\'inici"</string>
     <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Permet que l\'aplicació s\'iniciï tan bon punt el sistema hagi acabat d\'arrencar. Això pot fer que es trigui més a iniciar el telèfon i permetre a l\'aplicació alentir-ne el funcionament general en executar-se sempre."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Permet que l\'aplicació s\'iniciï tan bon punt el sistema hagi acabat d\'arrencar. Això pot fer que es trigui més a iniciar el telèfon i permetre a l\'aplicació alentir-ne el funcionament general si s\'executa sempre."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"enviar difusió permanent"</string>
     <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"Permet que l\'aplicació enviï emissions permanents, que es conserven després de finalitzar l\'emissió. L\'ús excessiu pot alentir o desestabilitzar la tauleta si li fan utilitzar massa memòria."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"Permet que l\'aplicació enviï emissions permanents, que es conserven després de finalitzar l\'emissió. L\'ús excessiu pot alentir o desestabilitzar el telèfon si li fan utilitzar massa memòria."</string>
-    <string name="permlab_readContacts" msgid="8348481131899886131">"lectura dels contactes"</string>
+    <string name="permlab_readContacts" msgid="8348481131899886131">"consultar els contactes"</string>
     <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"Permet que l\'aplicació llegeixi dades sobre els contactes que tinguis emmagatzemats a la tauleta, inclosa la freqüència amb què has trucat, has enviat correus electrònics o t\'has comunicat d\'altres maneres amb persones concretes. Aquest permís permet que les aplicacions desin les dades dels teus contactes, i és possible que les aplicacions malicioses comparteixin dades dels contactes sense el teu coneixement."</string>
     <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"Permet que l\'aplicació llegeixi dades sobre els contactes que tinguis emmagatzemats al telèfon, inclosa la freqüència amb què has trucat, has enviat correus electrònics o t\'has comunicat d\'altres maneres amb persones concretes. Aquest permís permet que les aplicacions desin les dades dels teus contactes, i és possible que les aplicacions malicioses comparteixin dades dels contactes sense el teu coneixement."</string>
     <string name="permlab_writeContacts" msgid="5107492086416793544">"modificar els teus contactes"</string>
@@ -504,7 +506,7 @@
     <string name="permdesc_recordAudio" msgid="4906839301087980680">"Permet que l\'aplicació enregistri àudio amb el micròfon. Aquest permís permet que l\'aplicació enregistri àudio en qualsevol moment sense la teva confirmació."</string>
     <string name="permlab_sim_communication" msgid="1180265879464893029">"comunicació SIM"</string>
     <string name="permdesc_sim_communication" msgid="5725159654279639498">"Permet que l\'aplicació enviï ordres a la SIM. Això és molt perillós."</string>
-    <string name="permlab_camera" msgid="3616391919559751192">"fes fotos i vídeos"</string>
+    <string name="permlab_camera" msgid="3616391919559751192">"fer fotos i vídeos"</string>
     <string name="permdesc_camera" msgid="8497216524735535009">"Permet que l\'aplicació faci fotos i vídeos amb la càmera. Aquest permís permet que l\'aplicació utilitzi la càmera en qualsevol moment sense la teva confirmació."</string>
     <string name="permlab_cameraDisableTransmitLed" msgid="2651072630501126222">"desactiva la transmissió del LED indicador en fer servir la càmera"</string>
     <string name="permdesc_cameraDisableTransmitLed" msgid="4764585465480295341">"Permet que una aplicació dels sistema preinstal·lada desactivi el LED indicador d\'ús de la càmera."</string>
@@ -594,7 +596,7 @@
     <string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"Permet que l\'aplicació obtingui la llista de comptes coneguts pel telèfon. Això pot incloure tots els comptes que hagin creat les aplicacions que tens instal·lades."</string>
     <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"creació de comptes i definició de contrasenyes"</string>
     <string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Permet que l\'aplicació utilitzi les funcions d\'autenticador de comptes del gestor de comptes, incloses la creació de comptes i l\'obtenció i la definició de les seves contrasenyes."</string>
-    <string name="permlab_manageAccounts" msgid="4983126304757177305">"addició o eliminació de comptes"</string>
+    <string name="permlab_manageAccounts" msgid="4983126304757177305">"afegir o eliminar comptes"</string>
     <string name="permdesc_manageAccounts" msgid="8698295625488292506">"Permet que l\'aplicació dugui a terme operacions com ara afegir i eliminar comptes i suprimir-ne la contrasenya."</string>
     <string name="permlab_useCredentials" msgid="235481396163877642">"fer servir comptes del dispositiu"</string>
     <string name="permdesc_useCredentials" msgid="7984227147403346422">"Permet que l\'aplicació sol·liciti testimonis d\'autenticació."</string>
@@ -631,13 +633,13 @@
     <string name="permlab_bluetooth" msgid="6127769336339276828">"emparella amb dispositius Bluetooth"</string>
     <string name="permdesc_bluetooth" product="tablet" msgid="3480722181852438628">"Permet que l\'aplicació visualitzi la configuració de Bluetooth de la tauleta i que estableixi i accepti connexions amb dispositius sincronitzats."</string>
     <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"Permet que una aplicació visualitzi la configuració de Bluetooth del telèfon i que estableixi i accepti connexions amb els dispositius sincronitzats."</string>
-    <string name="permlab_nfc" msgid="4423351274757876953">"controla Near Field Communication (NFC)"</string>
+    <string name="permlab_nfc" msgid="4423351274757876953">"controlar Comunicació de camp proper (NFC)"</string>
     <string name="permdesc_nfc" msgid="7120611819401789907">"Permet que l\'aplicació es comuniqui amb les etiquetes, les targetes i els lectors de Near Field Communication (NFC)."</string>
     <string name="permlab_disableKeyguard" msgid="3598496301486439258">"desactivació del bloqueig de pantalla"</string>
     <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"Permet que l\'aplicació desactivi el bloqueig del teclat i qualsevol element de seguretat de contrasenyes associat. Per exemple, el telèfon desactiva el bloqueig del teclat en rebre una trucada telefònica entrant i, a continuació, reactiva el bloqueig del teclat quan finalitza la trucada."</string>
     <string name="permlab_readSyncSettings" msgid="6201810008230503052">"llegir la configuració de sincronització"</string>
     <string name="permdesc_readSyncSettings" msgid="2706745674569678644">"Permet que l\'aplicació llegeixi la configuració de sincronització d\'un compte. Per exemple, això pot determinar que l\'aplicació Persones estigui sincronitzada amb un compte."</string>
-    <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"activació o desactivació de la sincronització"</string>
+    <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"activar o desactivar la sincronització"</string>
     <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet que una aplicació modifiqui la configuració de sincronització d\'un compte. Per exemple, aquesta acció es pot fer servir per activar la sincronització de l\'aplicació Persones amb un compte."</string>
     <string name="permlab_readSyncStats" msgid="7396577451360202448">"llegir les estadístiques de sincronització"</string>
     <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet que una aplicació llegeixi les estadístiques de sincronització d\'un compte, inclòs l\'historial d\'esdeveniments sincronitzats i quantes dades se sincronitzen."</string>
@@ -649,7 +651,7 @@
     <string name="permdesc_readDictionary" msgid="659614600338904243">"Permet que l\'aplicació llegeixi les paraules, els noms i les frases que l\'usuari pot haver emmagatzemat al seu diccionari."</string>
     <string name="permlab_writeDictionary" msgid="2183110402314441106">"afegeix paraules al diccionari definit per l\'usuari"</string>
     <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permet que l\'aplicació escrigui paraules noves al diccionari de l\'usuari."</string>
-    <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lectura contingut emmagat. USB"</string>
+    <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"consultar contingut emmagatzematge USB"</string>
     <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lectura del contingut de la targeta SD"</string>
     <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permet que l\'aplicació llegeixi el contingut de l\'emmagatzematge USB."</string>
     <string name="permdesc_sdcardRead" product="default" msgid="2607362473654975411">"Permet que l\'aplicació llegeixi el contingut de la targeta SD."</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permet que una aplicació conegui les observacions sobre les condicions de la xarxa. No s\'ha de necessitar mai per a aplicacions normals."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"canviar el calibratge del dispositiu d\'entrada"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permet que l\'aplicació modifiqui els paràmetres de calibratge de la pantalla tàctil. No ha de ser mai necessari per a aplicacions normals."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"accedir als certificats de DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permet que una aplicació proporcioni i utilitzi certificats de gestió de drets digitals (DRM, Digital Rights Management). No ha de ser mai necessari per a aplicacions normals."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Definir les normes de contrasenya"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controla la longitud i els caràcters permesos a les contrasenyes de desbloqueig de pantalla."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Controlar intents de desbloqueig de pantalla"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permet que una aplicació accedeixi a l\'emmagatzematge protegit per contrasenya."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Controla si es mostra o s\'amaga el bloqueig de les tecles."</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permet que una aplicació controli el bloqueig de les tecles."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Escoltar els canvis de l\'estat de confiança"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permet que una aplicació escolti els canvis en l\'estat de confiança."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Enllaçar amb el servei d\'un agent de confiança"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permet que una aplicació es vinculi amb el servei d\'un agent de confiança."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interacciona amb el sistema de recuperació i amb les actualitzacions"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permet que una aplicació interaccioni amb el sistema de recuperació i amb les actualitzacions del sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Toca dos cops per controlar el zoom"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index b3f482a..6a14d0e 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Umožňuje držiteli navázat se na nejvyšší úroveň služby widgetu. Běžné aplikace by toto oprávnění neměly nikdy požadovat."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"komunikovat se správcem zařízení"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Umožňuje držiteli oprávnění odesílat informace správci zařízení. Běžné aplikace by toto oprávnění neměly nikdy požadovat."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"přidat nebo odebrat správce zařízení"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Opravňuje držitele přidávat nebo odebírat aktivní správce zařízení. Běžné aplikace by toto oprávnění neměly nikdy požadovat."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"změna orientace obrazovky"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Umožňuje aplikaci naslouchat informacím o stavu sítě. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"měnit kalibraci vstupního zařízení"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Umožňuje aplikaci měnit parametry kalibrace dotykové obrazovky. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"přístup k certifikátům DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Umožňuje aplikaci vydávat a používat certifikáty DRM. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nastavit pravidla pro heslo"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Řídit délku hesel pro odemčení obrazovky a povolené znaky."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Sledovat pokusy o odemčení obrazovky"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Umožňuje aplikaci přístup k bezpečnému úložišti keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Ovládání zobrazování a skrývání zámku obrazovky"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Umožňuje aplikaci ovládat zámek obrazovky."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Naslouchat změnám stavu důvěryhodnosti"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Umožňuje aplikaci naslouchat změnám ve stavu důvěryhodnosti."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Vázat se na službu zástupce důvěryhodnosti"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Umožňuje aplikaci vázat se na službu zástupce důvěryhodnosti."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interakce se systémem aktualizací a obnovení"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Umožňuje aplikaci interakci se systémem obnovení a s aktualizacemi systému."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Dvojitým dotykem můžete ovládat přiblížení"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index a8cf79c..73913a2 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Tillader, at brugeren kan forpligte sig til en grænseflade for en widgettjeneste på øverste niveau. Bør aldrig være nødvendigt til almindelige apps."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"kommunikere med en enhedsadministrator"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Tillader, at brugeren kan sende hensigter til en enhedsadministrator. Dette bør aldrig være nødvendigt for almindelige apps."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"knyt til en tv-indgang"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Giver indehaveren mulighed for at knytte sig til det øverste grænsefladeniveau for en tv-indgang. Dette bør ikke være nødvendigt i normale apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"tilføje eller fjerne en enhedsadministrator"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Tillader, at man tilføjer eller fjerner aktive enhedsadministratorer. Dette burde aldrig være nødvendigt til normale apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"skift skærmretning"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Tillader, at en applikation observerer netværksforhold. Bør aldrig være nødvendigt for almindelige apps."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"skift kalibrering for inputenheden"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Tillader, at appen ændrer kalibreringsparametrene for berøringsskærmen. Dette bør aldrig være nødvendigt for almindelige apps."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"få adgang til DRM-certifikater"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Tillader, at en applikation leverer og anvender DRM-certfikater. Dette bør aldrig være nødvendigt for almindelige apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Indstil regler for adgangskode"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontroller længden samt tilladte tegn i adgangskoder til oplåsning af skærmen."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Overvåg forsøg på oplåsning af skærm"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Tillader, at en applikation får adgang til et nøglebeskyttet lager."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Administrer, om nøglebeskyttelse skal vises eller skjules"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Tillader, at en applikation styrer nøglebeskyttelsen."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Registrere ændringer i trust-tilstand."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Tillader, at en applikation registrerer ændringer i trust-tilstand."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Knytte sig til en trust agent-tjeneste"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Tillader, at en applikation knytter sig til en trust agent-tjeneste."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interager med opdaterings- og gendannelsessystemet"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Giver en applikation tilladelse til at interagere med gendannelsessystemet og systemopdateringerne."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Tryk to gange for zoomstyring"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index a59378f..c2c8600 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -145,7 +145,7 @@
     <string name="silent_mode" msgid="7167703389802618663">"Lautlos-Modus"</string>
     <string name="turn_on_radio" msgid="3912793092339962371">"Funk einschalten"</string>
     <string name="turn_off_radio" msgid="8198784949987062346">"Funk ausschalten"</string>
-    <string name="screen_lock" msgid="799094655496098153">"Display-Sperre"</string>
+    <string name="screen_lock" msgid="799094655496098153">"Displaysperre"</string>
     <string name="power_off" msgid="4266614107412865048">"Ausschalten"</string>
     <string name="silent_mode_silent" msgid="319298163018473078">"Klingelton aus"</string>
     <string name="silent_mode_vibrate" msgid="7072043388581551395">"Klingeltonmodus \"Vibration\""</string>
@@ -160,7 +160,7 @@
     <string name="no_recent_tasks" msgid="8794906658732193473">"Keine kürzlich geöffneten Apps"</string>
     <string name="global_actions" product="tablet" msgid="408477140088053665">"Tablet-Optionen"</string>
     <string name="global_actions" product="default" msgid="2406416831541615258">"Telefonoptionen"</string>
-    <string name="global_action_lock" msgid="2844945191792119712">"Display-Sperre"</string>
+    <string name="global_action_lock" msgid="2844945191792119712">"Displaysperre"</string>
     <string name="global_action_power_off" msgid="4471879440839879722">"Ausschalten"</string>
     <string name="global_action_bug_report" msgid="7934010578922304799">"Fehlerbericht"</string>
     <string name="bugreport_title" msgid="2667494803742548533">"Fehlerbericht abrufen"</string>
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Ermöglicht dem Halter, sich an die Oberfläche eines Widget-Dienstes auf oberster Ebene zu binden. Sollte nie für normale Apps benötigt werden."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"Interaktion mit einem Geräteadministrator"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ermöglicht dem Halter, Intents an einen Geräteadministrator zu senden. Sollte nie für normale Apps benötigt werden."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"Geräteadministrator hinzufügen oder entfernen"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Ermöglicht dem Inhaber, aktive Geräteadministratoren hinzuzufügen oder zu entfernen. Sollte für normale Apps nie benötigt werden."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"Bildschirmausrichtung ändern"</string>
@@ -633,7 +637,7 @@
     <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"Ermöglicht der App, die Bluetooth-Konfiguration des Telefons einzusehen und Verbindungen mit gekoppelten Geräten herzustellen und zu akzeptieren."</string>
     <string name="permlab_nfc" msgid="4423351274757876953">"Nahfeldkommunikation steuern"</string>
     <string name="permdesc_nfc" msgid="7120611819401789907">"Ermöglicht der App die Kommunikation mit Tags für die Nahfeldkommunikation, Karten und Readern"</string>
-    <string name="permlab_disableKeyguard" msgid="3598496301486439258">"Display-Sperre deaktivieren"</string>
+    <string name="permlab_disableKeyguard" msgid="3598496301486439258">"Displaysperre deaktivieren"</string>
     <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"Ermöglicht der App, die Tastensperre sowie den damit verbundenen Passwortschutz zu deaktivieren. Das Telefon deaktiviert die Tastensperre beispielsweise, wenn ein Anruf eingeht, und aktiviert sie wieder, nachdem das Gespräch beendet wurde."</string>
     <string name="permlab_readSyncSettings" msgid="6201810008230503052">"Synchronisierungseinstellungen lesen"</string>
     <string name="permdesc_readSyncSettings" msgid="2706745674569678644">"Ermöglicht der App, die Synchronisierungseinstellungen eines Kontos zu lesen. Beispielsweise kann damit festgestellt werden, ob Kontakte mit einem Konto synchronisiert werden."</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Ermöglicht der App, Informationen zu den Netzwerkbedingungen zu erfassen. Sollte für normale Apps nie benötigt werden."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"Kalibrierung für Eingabegerät ändern"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Ermöglicht der App, die Kalibrierungsparameter des Touchscreens zu ändern. Für normale Apps sollte dies nie erforderlich sein."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"Auf DRM-Zertifikate zugreifen"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ermöglicht einer App die Bereitstellung und Nutzung von DRM-Zertifikaten. Sollte für normale Apps nie benötigt werden."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Passwortregeln festlegen"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Zulässige Länge und Zeichen für Passwörter zum Entsperren des Bildschirms festlegen"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Versuche zum Entsperren des Displays überwachen"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Ermöglicht einer App den Zugriff auf mit Keyguard geschützten Speicher"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Anzeige und Ausblenden des Keyguard steuern"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Apps können den Keyguard steuern."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Überwachung von Änderungen des Trust-Status"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Ermöglicht einer App die Überwachungen von Änderungen des Trust-Status"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"An Trust Agent-Service anbinden"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Ermöglicht einer App die Anbindung an einen Trust Agent-Service"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Mit Update- und Wiederherstellungssystem interagieren"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Ermöglicht einer App die Interaktion mit dem Wiederherstellungssystem und den Systemupdates"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Für Zoomeinstellung zweimal berühren"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index ddee3106..456b56d 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Επιτρέπει στον κάτοχο τη δέσμευση στη διεπαφή ανωτάτου επιπέδου μιας υπηρεσίας γραφικών στοιχείων. Δεν απαιτείται για κανονικές εφαρμογές."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"επικοινωνία με έναν διαχειριστή συσκευής"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Επιτρέπει στον κάτοχο την αποστολή στόχων σε έναν διαχειριστή συσκευής. Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"σύνδεση σε μία είσοδο τηλεόρασης"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Επιτρέπει στον κάτοχο τη σύνδεση στη διεπαφή ανώτερου επιπέδου μιας εισόδου τηλεόρασης. Δεν απαιτείται ποτέ για τις συνηθισμένες εφαρμογές."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"προσθήκη ή κατάργηση ενός διαχειριστή συσκευής"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Επιτρέπει στον κάτοχο να προσθέτει ή να καταργεί ενεργούς διαχειριστές συσκευών. Δεν θα πρέπει να ζητείται ποτέ για κανονικές εφαρμογές."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"αλλαγή προσανατολισμού οθόνης"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Επιτρέπει σε μια εφαρμογή να λαμβάνει παρατηρήσεις σχετικά με την κατάσταση δικτύου. Δεν θα πρέπει να απαιτείται ποτέ για κανονικές εφαρμογές."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"αλλαγή βαθμονόμησης της συσκευής εισόδου"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Επιτρέπει στην εφαρμογή να τροποποιεί τις παραμέτρους βαθμονόμησης της οθόνης αφής. Δεν απαιτείται για τις κανονικές εφαρμογές."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"πρόσβαση σε πιστοποιητικά DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Επιτρέπει σε μια εφαρμογή να παρέχει και να χρησιμοποιεί πιστοποιητικά DRM. Δεν θα χρειαστεί ποτέ για κανονικές εφαρμογές."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Ορισμός κανόνων κωδικού πρόσβασης"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Έλεγχος του μεγέθους και των χαρακτήρων που επιτρέπονται στους κωδικούς πρόσβασης ξεκλειδώματος οθόνης."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Παρακολούθηση προσπαθειών ξεκλειδώματος οθόνης"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Επιτρέπει σε μια εφαρμογή να αποκτήσει πρόσβαση στον ασφαλή αποθηκευτικό χώρο με κλείδωμα."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Έλεγχος εμφάνισης και απόκρυψης κλειδώματος πληκτρολογίου"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Επιτρέπει σε μια εφαρμογή τον έλεγχο του κλειδώματος πληκτρολογίου."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Αντίληψη αλλαγών καταστάσεων εμπιστοσύνης."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Επιτρέπει σε μια εφαρμογή να αντιλαμβάνεται τις αλλαγές στην κατάσταση εμπιστοσύνης."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Σύνδεση σε υπηρεσία trust agent"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Επιτρέπει σε μια εφαρμογή να συνδεθεί σε μια υπηρεσία trust agents."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Αλληλεπίδραση με το σύστημα ενημέρωσης και ανάκτησης"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Επιτρέπει σε μια εφαρμογή να αλληλεπιδρά με το σύστημα ανάκτησης και ενημερώσεων συστήματος."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Αγγίξτε δύο φορές για έλεγχο εστίασης"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 1c815be..528c840 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Allows the holder to bind to the top-level interface of a widget service. Should never be needed for normal apps."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interact with device admin"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Allows the holder to send intents to a device administrator. Should never be needed for normal apps."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"bind to a TV input"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Allows the holder to bind to the top-level interface of a TV input. Should never be needed for normal apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"add or remove a device admin"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Allows the holder to add or remove active device administrators. Should never be needed for normal apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"change screen orientation"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Allows an application to listen for observations on network conditions. Should never be needed for normal apps."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"change input device calibration"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Allows the app to modify the calibration parameters of the touch screen. Should never be needed for normal apps."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"access DRM certificates"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Allows an application to provision and use DRM certficates. Should never be needed for normal apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Set password rules"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Control the length and the characters allowed in screen-unlock passwords."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitor screen-unlock attempts"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Allows an application to access keyguard secure storage."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Control displaying and hiding keyguard"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Allows an application to control keyguard."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Listen to trust state changes."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Allows an application to listen for changes in trust state."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Bind to a trust agent service"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Allows an application to bind to a trust agent service."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interact with update and recovery system"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Allows an application to interact with the recovery system and system updates."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Touch twice for zoom control"</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 1c815be..528c840 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Allows the holder to bind to the top-level interface of a widget service. Should never be needed for normal apps."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interact with device admin"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Allows the holder to send intents to a device administrator. Should never be needed for normal apps."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"bind to a TV input"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Allows the holder to bind to the top-level interface of a TV input. Should never be needed for normal apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"add or remove a device admin"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Allows the holder to add or remove active device administrators. Should never be needed for normal apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"change screen orientation"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Allows an application to listen for observations on network conditions. Should never be needed for normal apps."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"change input device calibration"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Allows the app to modify the calibration parameters of the touch screen. Should never be needed for normal apps."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"access DRM certificates"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Allows an application to provision and use DRM certficates. Should never be needed for normal apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Set password rules"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Control the length and the characters allowed in screen-unlock passwords."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitor screen-unlock attempts"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Allows an application to access keyguard secure storage."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Control displaying and hiding keyguard"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Allows an application to control keyguard."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Listen to trust state changes."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Allows an application to listen for changes in trust state."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Bind to a trust agent service"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Allows an application to bind to a trust agent service."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interact with update and recovery system"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Allows an application to interact with the recovery system and system updates."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Touch twice for zoom control"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 16790eb..ae96d40 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permite al propietario vincularse a la interfaz de nivel superior del servicio de widget. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactuar con un administrador de dispositivos"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite enviar intentos a un administrador de dispositivos. Las aplicaciones normales no deberían necesitar este permiso."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"agregar o eliminar un administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite al propietario agregar o eliminar administradores de dispositivos activos. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar la orientación de la pantalla"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permite que una aplicación detecte cambios en el estado de la red. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"cambiar la calibración del dispositivo de entrada"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permite que la aplicación modifique los parámetros de calibración de la pantalla táctil. Las aplicaciones normales no deberían necesitar este permiso."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"Acceder a certificados DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que una aplicación proporcione y utilice certificados DRM. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Establecer reglas de contraseña"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar la longitud y los caracteres permitidos en las contraseñas para desbloquear la pantalla"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Supervisa los intentos para desbloquear la pantalla"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permite que una aplicación acceda al almacenamiento seguro de bloqueos."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Controlar cuándo se muestra y se oculta el bloqueo"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permite que una aplicación controle los bloqueos."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Detectar cambios en estado de confianza"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permite que una aplicación detecte cambios en el estado de confianza."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Vincular con un servicio de agente de confianza"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permite que una aplicación se vincule con un servicio de agente de confianza."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interaccionar con el sistema de recuperación y las actualizaciones"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permite que una aplicación interaccione con el sistema de recuperación y las actualizaciones del sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Toca dos veces para acceder al control de zoom."</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index d5d9222..638b9f4 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permite enlazar con la interfaz de nivel superior de un servicio de widget. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactuar con el administrador de un dispositivo"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite que se envíen intentos a un administrador de dispositivos. Las aplicaciones normales nunca deberían necesitar este permiso."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"añadir o eliminar un administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite añadir o eliminar administradores de dispositivos activos. No debe ser necesario para aplicaciones normales."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar orientación de la pantalla"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permite que una aplicación detecte cambios en el estado de la red. No debe ser necesario para aplicaciones normales."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"cambiar la calibración del dispositivo de entrada"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permite que la aplicación modifique los parámetros de calibración de la pantalla táctil. No debe ser necesario para las aplicaciones normales."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"acceder a certificados DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que una aplicación proporcione y utilice certificados DRM. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Establecimiento de reglas de contraseña"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar la longitud y los caracteres permitidos en las contraseñas de bloqueo de pantalla"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Control de intentos de bloqueo de pantalla"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permite que una aplicación acceda al almacenamiento seguro de bloqueos."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Controlar cuándo se muestra y se oculta el bloqueo"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permite que una aplicación controle los bloqueos."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Detectar cambios en el estado de confianza."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permite que una aplicación detecte cambios en el estado de confianza."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Enlazar con un servicio de agente de confianza"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permite a una aplicación enlazar con un servicio de agente de confianza."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interactuar con el sistema de recuperación y las actualizaciones"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permite que una aplicación interactúe con el sistema de recuperación y las actualizaciones del sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Toca dos veces para acceder al control de zoom."</string>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index 12a5ab7..38774d7 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Lubab omanikul siduda vidina teenuse ülataseme liidesega. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"seadme administraatoriga suhtlemine"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Võimaldab omanikul saata kavatsusi seadme administraatorile. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"sidumine TV-sisendiga"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Lubab omanikul siduda TV-sisendi ülataseme liidesega. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"seadme administraatori lisamine või eemaldamine"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Võimaldab omanikul lisada või eemaldada aktiivseid seadme administraatoreid. Tavarakenduste puhul ei tohiks see kunagi vajalik olla."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"muuda ekraani paigutust"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Lubab rakendusel kuulata võrgutingimuste teavet. Ei ole kunagi vajalik tavaliste rakenduste puhul."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"sisendseadme kalibreerimise muutmine"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Lubab rakendusel muuta puuteekraani kalibreerimisparameetreid. Ei tohiks kunagi olla vajalik tavaliste rakenduste puhul."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"juurdepääs DRM-i sertifikaatidele"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Lubab rakendusel ette valmistada ja kasutada DRM-i sertifikaate. Tavarakenduste puhul ei tohiks see vajalik olla."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Parooli reeglite määramine"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrollige ekraaniluku avamise paroolide pikkust ja tähemärke."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekraani avamiskatsed"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Lubab rakendusel hankida juurdepääsu võtmekaitsega turvalisele talletusruumile."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Võtmekaitse kuvamise ja peitmise juhtimine"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Lubab rakendusel võtmekaitset juhtida."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Usaldusväärse oleku muudatuste tuvastamine."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Lubab rakendusel tuvastada muudatusi usaldusväärses olekus."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Usaldusväärse agendi teenusega sidumine"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Lubab rakendusel ennast siduda usaldusväärse agendi teenusega."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Suhtlemine värskenduse ja taastesüsteemiga"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Lubab rakendusel suhelda taastesüsteemi ja süsteemivärskendustega."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Suumi juhtimiseks puudutage kaks korda"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 5cc9697..3375255 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"به دارنده اجازه می‌دهد که به رابط سطح بالای سرویس ابزارک متصل شود. هرگز برای برنامه‌های معمولی مورد نیاز نیست."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"تعامل با یک سرپرست دستگاه"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"‏به دارنده اجازه می‎دهد اهداف خود را به سرپرست دستگاه ارسال کند. برنامه‎های معمولی هیچگاه به این ویژگی نیازی ندارند."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"اضافه یا حذف سرپرست دستگاه"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"به دارنده اجازه می‌دهد سرپرستان دستگاه فعال را اضافه یا حذف کند.هرگز نباید برای برنامه‌های عادی مورد نیاز باشد."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"تغییر جهت صفحه"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"به برنامه امکان می‌دهد برای بررسی شرایط شبکه گوش دهد. این امکان هرگز نباید برای برنامه‌های معمولی مورد نیاز باشد."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"تغییر کالیبراسیون دستگاه ورودی"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"به برنامه امکان می‌دهد پارامترهای کالیبراسیون صفحه لمسی را تغییر دهد. هرگز نباید برای برنامه‌های عادی مورد نیاز باشد."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"‏دسترسی به گواهی‌های DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏به یک برنامه کاربردی اجازه ارائه مجوز و استفاده از گواهی‌های DRM را می‌دهد. هرگز برای برنامه‌های عادی مورد نیاز نیست."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"تنظیم قوانین رمز ورود"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"‏طول و نویسه‎های مجاز در گذرواژه‌های بازکردن قفل صفحه را کنترل کنید."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"نمایش تلاش‌های قفل گشایی صفحه"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"به یک برنامه کاربردی برای دسترسی به فضای ذخیره‌سازی ایمن محافظ کلید اجازه می‌دهد."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"کنترل نمایش و پنهان کردن محافظ کلید"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"اجازه می‌دهد برنامه‌ای محافظ کلید را کنترل کند."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"‏گوش دادن به تغییرات وضعیت trust."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"‏به یک برنامه کاربردی برای گوش دادن به تغییرات در trust اجازه می‌دهد."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"‏اتصال به یک سرویس trust agent"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"‏به یک برنامه کاربردی برای اتصال به یک سرویس trust agent اجازه می‌دهد."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"تعامل با سیستم به‌روزرسانی و بازیابی"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"به یک برنامه کاربردی اجازه می‌دهد با سیستم بازیابی و به‌روزرسانی‌های سیستم تعامل داشته باشد."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"دوبار لمس کنید تا بزرگنمایی کنترل شود"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index db118b4..d2bf01c 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Antaa sovelluksen sitoutua widget-palvelun ylemmän tason käyttöliittymään. Ei tavallisten sovelluksien käyttöön."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"kommunikoi laitteen järjestelmänvalvojan kanssa"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Antaa sovelluksen lähettää aikomuksia laitteen järjestelmänvalvojalle. Ei tavallisten sovellusten käyttöön."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"lisää tai poista laitteen järjestelmänvalvoja"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Haltija voi lisätä tai poistaa aktiivisen laitteen järjestelmänvalvojia. Tätä ei pitäisi tarvita tavallisille sovelluksille."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"muuta näytön suuntaa"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Antaa sovellukselle luvan kuunnella verkon tilahavaintoja. Ei tavallisten sovellusten käyttöön."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"Muuttaa syöttölaitteen kalibrointia."</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Antaa sovelluksen muokata kosketusnäytön kalibrointiparametreja. Ei tavallisten sovellusten käyttöön."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM-varmenteiden käyttö"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Antaa sovelluksen käyttää DRM-varmenteita ja hallita niiden käyttäjiä. Ei tavallisten sovellusten käyttöön."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Aseta salasanasäännöt"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Hallinnoi ruudun lukituksenpoistosalasanoissa sallittuja merkkejä ja salasanan pituutta."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Tarkkaile ruudun lukituksen poistoyrityksiä"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Sallii sovelluksen käyttää salasanalla suojattua tallennustilaa."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Hallinnoi näppäinvahdin näyttämistä ja piilottamista"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Antaa sovelluksen hallita näppäinvahtia."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Seuraa luottamuksen tilamuutoksia."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Antaa sovelluksen seurata luottamuksen tilamuutoksia."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Luotettavaan tahoon sitoutuminen"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Antaa sovelluksen sitoutua luotettavaan tahoon."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Vuorovaikutus päivitys- ja palautusjärjestelmän kanssa"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Sallii sovelluksen vuorovaikutuksen palautusjärjestelmän ja järjestelmäpäivitysten kanssa."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Ohjaa zoomausta napauttamalla kahdesti"</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 9cf9a45..74df7fe 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permet à l\'application autorisée de s\'associer à l\'interface de plus haut niveau d\'un service de widget. Les applications standards ne doivent jamais avoir recours à cette fonctionnalité."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir avec l\'administrateur d\'un périphérique"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permet à l\'application autorisée d\'envoyer des intentions à l\'administrateur de l\'appareil. Les applications standards ne doivent jamais avoir recours à cette fonctionnalité."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ajouter ou supprimer un administrateur de l\'appareil"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permet à l\'application d\'ajouter ou de supprimer des administrateurs actifs de l\'appareil. Les applications standards ne devraient jamais utiliser cette autorisation."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"modifier l\'orientation de l\'écran"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permet à une application de détecter les observations sur les conditions du réseau. Ne devrait jamais être nécessaire pour les applications standards."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"modifier le calibrage du périphérique d\'entrée"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permet à l\'application de modifier les paramètres de calibrage de l\'écran tactile. Ne devrait jamais être nécessaire pour les applications standards."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"accéder aux certificats GDN"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permet à une application de fournir et d\'utiliser les certificats de GDN. Cela ne devrait jamais être nécessaire pour les applications normales."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Définir les règles du mot de passe"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Choisir le nombre et le type de caractères autorisés dans les mots de passe de déverrouillage de l\'écran"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gérer les tentatives de déverrouillage de l\'écran"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permet à une application d\'accéder au stockage sécurisé keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Contrôler l\'affichage et le masquage de la protection des touches"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permet à une application de contrôler la protection des touches."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Détecter les modifications de l\'état de confiance"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permet à une application de détecter les modifications de l\'état de confiance."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Lier à un service d\'agent de confiance"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permet à une application de se lier à un service d\'agent de confiance."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interagir avec le système de récupération et de mise à jour"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permet à une application d\'interagir avec le système de récupération et les mises à jour système."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Appuyer deux fois pour régler le zoom"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index b10bd342..691c6a4 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permet à l\'application autorisée de s\'associer à l\'interface de plus haut niveau d\'un service widget. Les applications standards ne doivent jamais avoir recours à cette fonctionnalité."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir avec l\'administrateur du périphérique"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permet à l\'application autorisée d\'envoyer des intentions à l\'administrateur de l\'appareil. Les applications standards ne doivent jamais avoir recours à cette fonctionnalité."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ajouter ou supprimer un administrateur de l\'appareil"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permet à l\'application autorisée d\'ajouter ou de supprimer des administrateurs actifs de l\'appareil. Les applications standards ne devraient pas nécessiter cette autorisation."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"Changement d\'orientation de l\'écran"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permet à une application de détecter des observations sur les conditions du réseau. Les applications standards ne devraient pas nécessiter cette autorisation."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"modifier le calibrage du périphérique d\'entrée"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permettre à l\'application de modifier les paramètres de calibrage de l\'écran tactile. Ne devrait jamais être nécessaire pour les applications standards."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"accéder aux certificats de GDN"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permettre à une application de fournir et d\'utiliser des certificats de GDN. Ne devrait jamais être nécessaire pour les applications standards."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Définir les règles du mot de passe"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Choisir le nombre et le type de caractères autorisés dans les mots de passe de déverrouillage de l\'écran"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gérer les tentatives de déverrouillage de l\'écran"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permet à une application d\'accéder au stockage sécurisé keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Contrôler l\'affichage et le masquage de la protection des touches"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permet à une application de contrôler la protection des touches."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Détecter les modifications de l\'état de confiance"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permettre à une application de détecter les modifications de l\'état de confiance."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"S\'associer à un service d\'agent de confiance"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permettre à une application de s\'associer à un service d\'agent de confiance."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interagir avec le système de récupération et de mise à jour"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permet à une application d\'interagir avec le système de récupération et les mises à jour du système."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Appuyez deux fois pour régler le zoom."</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 62c4576..4a1c409 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"धारक को किसी विजेट सेवा के शीर्ष-स्‍तर इंटरफ़ेस से आबद्ध होने देता है. सामान्‍य ऐप्स के लिए कभी भी आवश्‍यक नहीं होना चाहिए."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"किसी उपकरण व्‍यवस्‍थापक के साथ सहभागिता करें"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"धारक को किसी उपकरण व्‍यवस्‍थापक को उद्देश्य भेजने देता है. सामान्‍य ऐप्स के लिए कभी भी आवश्‍यक नहीं होना चाहिए."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"टीवी इनपुट से आबद्ध करें"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"धारक को किसी टीवी इनपुट के शीर्ष-स्‍तर इंटरफ़ेस से आबद्ध होने देती है. सामान्‍य ऐप्स के लिए कभी भी आवश्‍यक नहीं होना चाहिए."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"उपकरण उपकरण सुचारू ढ़ंग से चलाने वाले को जोड़ें या निकालें"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"धारक को सक्रिय डिवाइस व्यवस्थापकों को जोड़ने या निकालने देता है. सामान्य ऐप्स  के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"स्‍क्रीन अभिविन्‍यास बदलें"</string>
@@ -641,9 +643,9 @@
     <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ऐप्स  को किसी खाते की समन्वयन सेटिंग संशोधित करने देता है. उदाहरण के लिए, इसका उपयोग लोग ऐप्स  का समन्‍वयन किसी खाते से सक्षम करने में हो सकता है."</string>
     <string name="permlab_readSyncStats" msgid="7396577451360202448">"समन्वयन आंकड़े पढ़ें"</string>
     <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ऐप्स  को किसी खाते के समन्वयन आंकड़े, साथ ही समन्‍वयित ईवेंट का इतिहास और समन्‍वयित डेटा की मात्रा पढ़ने देता है."</string>
-    <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"ग्राहकी-प्राप्त फ़ीड पढ़ें"</string>
+    <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"सदस्यता-प्राप्त फ़ीड पढ़ें"</string>
     <string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"ऐप्स को वर्तमान में समन्वयित फ़ीड के बारे में विवरण प्राप्त करने देता है."</string>
-    <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"ग्राहकी-प्राप्त फ़ीड लिखें"</string>
+    <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"सदस्यता-प्राप्त फ़ीड लिखें"</string>
     <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ऐप्स  को आपके वर्तमान समन्वयित फ़ीड को संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स  आपके समन्वयित फ़ीड को बदल सकते है."</string>
     <string name="permlab_readDictionary" msgid="4107101525746035718">"शब्दकोश में आपके द्वारा जोड़े गए शब्‍दों को पढ़ें"</string>
     <string name="permdesc_readDictionary" msgid="659614600338904243">"ऐप्स को ऐसे सभी शब्‍दों, नामों और वाक्यांशों को पढ़ने देता है जो संभवत: उपयोगकर्ता द्वारा उपयोगकर्ता ‍शब्दकोश में संग्रहीत किए गए हों."</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"ऐप्स  को नेटवर्क स्थितियों के अवलोकनों को सुनने देता है. सामान्य ऐप्स  के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"इनपुट उपकरण कैलिब्रेशन बदलें"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"ऐप्स को टच स्क्रीन के कैलिब्रेशन पैरामीटर को बदलने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM प्रमाणपत्र एक्सेस करें"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"एप्लिकेशन को DRM प्रमाणपत्रों का प्रावधान और उपयोग करने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होना चाहिए."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"पासवर्ड नियम सेट करें"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"स्‍क्रीन-अनलॉक पासवर्ड में अनुमति प्राप्त लंबाई और वर्णों को नियंत्रित करें."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"स्‍क्रीन-अनलॉक के प्रयासों पर निगरानी रखें"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"ऐप्स  को कीगार्ड सुरक्षित संग्रहण एक्सेस करने देती है."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"कीगार्ड दिखाना और छिपाना नियंत्रित करें"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"ऐप्स  को कीगार्ड नियंत्रित करने देती है."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"ट्रस्ट स्थिति बदलावों को सुनें."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"किसी एप्लिकेशन को ट्रस्ट स्थिति के बदलावों को सुनने की अनुमति देती है."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"ट्रस्ट एजेंट सेवा से आबद्ध करना"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"किसी एप्लिकेशन को ट्रस्ट एजेंट सेवा से आबद्ध करने की अनुमति देती है."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"अपडेट और पुनर्प्राप्ति सिस्टम के साथ सहभागिता करें"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"एप्लिकेशन को पुनर्प्राप्ति सिस्टम और सिस्टम अपडेट के साथ सहभागिता करने देती है."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"ज़ूम नियंत्रण के लिए दो बार स्पर्श करें"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index fc2601b..10e4ac8 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Nositelju omogućuje vezanje uz sučelje najviše razine usluge widgeta. Ne bi smjelo biti potrebno za normalne aplikacije."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interakcija s administratorom uređaja"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Nositelju omogućuje slanje namjera administratoru uređaja. Ne bi smjelo biti potrebno za normalne aplikacije."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"povezivanje s TV ulazom"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Nositelju omogućuje vezanje uz sučelje najviše razine TV ulaza. Ne bi smjelo biti potrebno za normalne aplikacije."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"dodavanje ili uklanjanje administratora uređaja"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Omogućuje nositelju dodavanje ili uklanjanje administratora aktivnih uređaja. Nikada ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"promjena orijentacije zaslona"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Omogućuje aplikaciji praćenje motrenja mrežnih uvjeta. Ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"promjena kalibracije uređaja za unos"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Omogućuje aplikaciji izmjenu parametara kalibracije dodirnog zaslona. Ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"pristup DRM certifikatima"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Aplikaciji omogućuje pružanje i korištenje DRM certifikata. Ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Postavi pravila zaporke"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Upravljajte duljinom zaporki za otključavanje zaslona i dopuštenim znakovima u tim zaporkama."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Nadgledaj pokušaje otključavanja zaslona"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Omogućuje aplikaciji pristupanje zaključanoj sigurnoj pohrani."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Upravljanje prikazivanjem i skrivanjem zaključavanja tipkovnice"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Omogućuje aplikaciji upravljanje zaključavanjem tipkovnice."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Prati promjene pouzdanog stanja."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Omogućuje aplikaciji praćenje promjena pouzdanog stanja."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Povezivanje s uslugom pouzdanog predstavnika"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Omogućuje aplikaciji povezivanje s uslugom pouzdanog predstavnika."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interakcija s ažuriranjem i sustavom za oporavak"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Omogućuje aplikaciji interakciju sa sustavom za oporavak i ažuriranjima sustava."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Dodirnite dvaput za upravljanje zumiranjem"</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index c0effd2..fd3a887 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Lehetővé teszi a használó számára, hogy csatlakozzon egy modulszolgáltatás legfelső szintű kezelőfelületéhez. A normál alkalmazásoknak erre soha nincs szüksége."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"az eszközkezelő használata"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Lehetővé teszi a tulajdonos számára, hogy célokat küldjön egy eszközkezelőnek. A normál alkalmazásoknak erre soha nincs szüksége."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"csatlakozás tévébemenethez"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Lehetővé teszi, hogy a tulajdonos kapcsolódjon egy tévébemenet legfelső szintű kezelőfelületéhez. A normál alkalmazásoknak erre soha nincs szüksége."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"eszközrendszergazda hozzáadása vagy eltávolítása"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Lehetővé teszi a tulajdonos számára, hogy aktív eszközrendszergazdákat adjon meg vagy távolítson el. A normál alkalmazásoknál erre soha nincs szükség."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"képernyő irányának módosítása"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Lehetővé teszi egy alkalmazás számára, hogy figyelemmel kísérje a hálózati körülményekkel kapcsolatos észrevételeket. A normál alkalmazásoknak erre soha nincs szükségük."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"beviteli eszköz kalibrációjának módosítása"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Lehetővé teszi, hogy az alkalmazás módosítsa az érintőképernyő kalibrációs paramétereit. A normál alkalmazásoknál erre elvileg soha nincs szükség."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM-tanúsítványokhoz való hozzáférés"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Engedélyezi egy alkalmazás számára a DRM-tanúsítványokhoz való hozzáférést és azok használatát. Átlagos alkalmazásoknak erre nem lehet szükségük."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Jelszavakkal kapcsolatos szabályok beállítása"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"A képernyőzár-feloldási jelszavakban engedélyezett karakterek és hosszúság vezérlése."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Képernyőzár-feloldási kísérletek figyelése"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Lehetővé teszi egy alkalmazás számára, hogy hozzáférjen a kóddal védett tárhelyhez."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Billentyűzár megjelenítésének és elrejtésének vezérlése"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Lehetővé teszi egy alkalmazás számára a billentyűzár vezérlését."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Trust-állapot változásának figyelése"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Lehetővé teszi, hogy az alkalmazás figyelje a trust-állapot változásait."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Csatlakozás egy trust agent szolgáltatáshoz"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Lehetővé teszi, hogy az alkalmazás egy trust agent szolgáltatáshoz csatlakozzon."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Kapcsolatfelvétel a frissítési és helyreállítási rendszerrel"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Lehetővé teszi egy alkalmazás számára, hogy kapcsolatba lépjen a helyreállítási rendszerrel és a rendszerfrissítésekkel."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Érintse meg kétszer a nagyítás beállításához"</string>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 29a8d07..d2f7c13 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Թույլ է տալիս սեփականատիրոջը միանալ վիջեթ ծառայության վերին մակարդակի ինտերֆեյսին: Սովորական հավելվածների համար երբևէ չպետք է անհրաժեշտ լինի:"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"փոխգործակցել սարքի կառավարչի հետ"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Թույլ է տալիս սեփականատիրոջը ուղարկել մտադրություններ սարքի կառավարչին: Սովորական հավելվածների համար երբևէ չպետք է անհրաժեշտ լինի:"</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ավելացնել կամ հեռացնել սարքի արդմինիստրատոր"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Թույլ է տալիս սեփականատիրոջը ավելացնել կամ հեռացնել սարքի ակտիվ ադմինիստրատորներ: Երբեք չպետք է անհրաժեշտ լինի սովորական ծրագրերին:"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"փոխել էկրանի դիրքավորումը"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Հավելվածին թույլ է տալիս լսել դիտարկումներ ցանցային պայմանների վերաբերյալ: Սովորական հավելվածների համար երբեք պետք չի գալիս:"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"փոփոխել մուտքի սարքի չափաբերումը"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Թույլ է տալիս ծրագրին փոփոխել հպէկրանի չափաբերման կարգավորումները: Սովորական ծրագրերի համար երբեք պետք չի գալու:"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM հավաստագրերի մատչում"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ծրագրին թույլ է տալիս տրամադրել և օգտագործել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Սահմանել գաղտնաբառի կանոնները"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Վերահսկել էկրանի ապակողպման գաղտնաբառերի թույլատրելի երկարությունն ու գրանշանները:"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Վերահսկել էկրանի ապակողպման փորձերը"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Թույլ է տալիս հավելվածին մուտք գործել ստեղնակողպեքով պաշտպանված պահոց:"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Կառավարել ստեղնակողպեքի ցուցադրումը և թաքցնումը"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Թույլ է տալիս հավելվածին կառավարել ստեղնաշարի պաշտպանիչը:"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Լսել վստահության կարգավիճակի ​փոփոխությունները:"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Ծրագրին թույլ է տալիս լսել վստահության կարգավիճակի փոփոխությունները:"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Կապվել վստահելի գործակալի ծառայությանը"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Ծրագրին թույլ է տալիս կապվել վստահելի գործակալի ծառայությանը:"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Փոխազդել թարմացման և վերականգնման համակարգի հետ"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Թույլ է տալիս ծրագրին փոխազդել վերականգնման համակարգի և համակարգի թարմացումների հետ:"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Հպեք երկու անգամ` դիտափոխման կարգավորման համար"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 71fd308..eddb9c85 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Mengizinkan pemegang mengikat antarmuka tingkat tinggi dari suatu layanan widget. Tidak pernah diperlukan oleh apl normal."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"berinteraksi dengan admin perangkat"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Mengizinkan pemegang mengirimkan tujuan kepada administrator perangkat. Tidak pernah diperlukan oleh apl normal."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"mengikat ke masukan TV"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Memungkinkan pemegang mengikat ke antarmuka tingkat tinggi dari masukan TV. Tidak pernah diperlukan oleh aplikasi normal."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"menambah atau menghapus admin perangkat"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Memungkinkan pemegang menambahkan atau menghapus administrator perangkat aktif. Tidak pernah dibutuhkan oleh aplikasi normal."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ubah orientasi layar"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Memungkinkan aplikasi mendengar untuk observasi kondisi jaringan. Tidak pernah dibutuhkan oleh aplikasi normal."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"mengubah kalibrasi perangkat masukan"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Memungkinkan aplikasi mengubah parameter kalibrasi layar sentuh. Tidak diperlukan oleh aplikasi normal."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"mengakses sertifikat DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Memungkinkan aplikasi menyediakan dan menggunakan sertifikat DRM. Tidak pernah dibutuhkan untuk aplikasi normal."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Setel aturan sandi"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrol panjang dan karakter yang diizinkan dalam sandi pembuka layar."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Upaya pembukaan kunci layar monitor"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Mengizinkan aplikasi mengakses pengaman penyimpanan aman."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kontrol untuk menampilkan dan menyembunyikan pengaman"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Izinkan aplikasi untuk mengontrol pengaman."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Dengarkan perubahan status kepercayaan."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Mengizinkan aplikasi mendengarkan perubahan dalam status kepercayaan."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Ikat ke layanan agen kepercayaan"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Mengizinkan aplikasi mengikat ke layanan agen kepercayaan."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Berinteraksi dengan sistem pemulihan dan pembaruan"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Mengizinkan aplikasi berinteraksi dengan sistem pemulihan dan pembaruan sistem."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Sentuh dua kali untuk mengontrol perbesar/perkecil"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 958f34c..27b05d1 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Consente l\'associazione all\'interfaccia principale di un servizio widget. Non dovrebbe mai essere necessario per le normali applicazioni."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interazione con un amministratore dispositivo"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Consente l\'invio di intent a un amministratore del dispositivo. L\'autorizzazione non dovrebbe mai essere necessaria per le normali applicazioni."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"aggiungere o rimuovere un amministratore del dispositivo"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Consente al titolare di aggiungere o rimuovere gli amministratori attivi del dispositivo. Non dovrebbe mai essere necessario per le normali applicazioni."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"modifica orientamento dello schermo"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Consente a un\'applicazione di ascoltare le osservazioni sulle condizioni di rete. Da non utilizzare mai con app normali."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"modifica calibrazione del dispositivo di immissione"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Consente all\'app di modificare i parametri di calibrazione del touch screen. Questa opzione non deve essere utilizzata per le app normali."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"accesso a certificati DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Consente a un\'app di fornire e utilizzare ceritificati DRM. Questa opzione non deve essere utilizzata per app normali."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Impostazione regole password"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlla la lunghezza e i caratteri ammessi nelle password di sblocco dello schermo."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Controllo tentativi di sblocco dello schermo"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Consente a un\'applicazione di accedere all\'archivio sicuro keguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Controllo della visualizzazione e dell\'occultamento di keyguard"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Consente a un\'applicazione di controllare keguard."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Rilevamento modifiche dello stato trust."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Consente a un\'applicazione di rilevare le modifiche nello stato trust."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Associazione a un servizio trust agent"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Consente a un\'applicazione di associarsi a un servizio trust agent."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interazione con il sistema di ripristino e aggiornamento"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Consente a un\'applicazione di interagire con il sistema di ripristino e con gli aggiornamenti di sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Tocca due volte per il comando dello zoom"</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 9ecc437..43b94b7 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"‏מאפשר למשתמש לבצע איגוד לממשק הרמה העליונה של שירות Widget. הרשאה זו לעולם אינה נחוצה לאפליקציות רגילים."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"קיים אינטראקציה עם מנהל המכשיר"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"מאפשר למשתמש לשלוח כוונות למנהל התקנים. הרשאה זו לעולם אינה נחוצה לאפליקציות רגילים."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"איגוד לקלט טלוויזיה"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"הרשאה זו מאפשרת למחזיק בה לבצע איגוד לממשק הרמה העליונה של קלט טלוויזיה. הרשאה זו אף פעם אינה אמורה להיות נחוצה לאפליקציות רגילות."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"הוספה או הסרה של מנהלי מכשיר"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"מאפשרת לבעלים להוסיף או להסיר מנהלי מכשיר פעילים. לעולם לא אמורה להיות נחוצה עבור אפליקציות רגילות."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"שנה את כיוון המסך"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"מאפשרת לאפליקציה לקלוט מעקב אחר תנאי רשת. לעולם לא אמורה להיות נחוצה עבור אפליקציות רגילות."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"שינוי הכיול של מכשיר קלט"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"מאפשרת לאפליקציה לשנות את פרמטרי הכיול של מסך המגע. לעולם לא אמורה להיות נחוצה לאפליקציות רגילות."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"‏גישה אל אישורי DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏מאפשרת לאפליקציה לנהל תצורה של אישורי DRM ולהשתמש בהם. לעולם לא אמורה להיות נחוצה עבור אפליקציה רגילה."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"הגדר כללי סיסמה"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"שלוט באורך ובתווים המותרים בסיסמאות לביטול נעילת מסך."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"עקוב אחר ניסיונות לביטול נעילת מסך"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"מאפשר לאפליקציה לגשת לאחסון המוגן באמצעות מפתח."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"שלוט בהצגה והסתרה של מגן המקלדת"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"מאפשר לאפליקציה לשלוט במגן המקלדת."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"חיפוש שינויים במצב אמון."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"מאפשר לאפליקציה לחפש שינויים במצב אמון."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"איגוד אל שירות סוכן אמון"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"מאפשר לאפליקציה לאגוד אל שירות סוכן אמון."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"אינטראקציה עם מערכת שחזור ועדכונים"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"מאפשרת לאפליקציה ליצור אינטראקציה עם מערכת השחזור ועדכוני מערכת."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"גע פעמיים לבקרת מרחק מתצוגה"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index a75ee90..d1e1308 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"ウィジェットサービスのトップレベルインターフェースにバインドすることを所有者に許可します。通常のアプリでは不要です。"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"デバイス管理者との通信"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"デバイス管理者へのintentの送信を所有者に許可します。通常のアプリでは不要です。"</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"端末の管理者の追加または削除"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"有効な端末の管理者を追加または削除することを所有者に許可します。通常のアプリでは不要です。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"画面の向きの変更"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"ネットワーク状況を監視するためリッスンすることをアプリに許可します。通常のアプリで必要になることはありません。"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"入力デバイスの調整を変更"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"タッチスクリーンの調整パラメータの変更をアプリに許可します。通常のアプリでは必要ありません。"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM証明書へのアクセス権"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM証明書のプロビジョニングと使用をアプリに許可します。通常のアプリでは不要です。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"パスワードルールの設定"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"画面ロック解除パスワードの長さと使用できる文字を制御します。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"画面ロック解除試行の監視"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"キーガードセキュアストレージへのアクセスをアプリに許可する"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"キーガードの表示/非表示の制御"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"キーガードの制御をアプリに許可します。"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"信頼状態の変更をリッスン"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"信頼状態の変更をリッスンすることをアプリに許可します。"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"信頼できるエージェントサービスへのバインド"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"信頼できるエージェントサービスにバインドすることをアプリに許可します。"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"アップデートと回復システムへのアクセス"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"回復システムとシステムアップデートへのアクセスをアプリに許可します。"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"ダブルタップでズームコントロール"</string>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index 15abf53..9ea2503 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"აპს შეეძლება ზედა დონის ინტერფეისის ვიჯეტთან დაკავშირება. არასდროს გამოიყენება ჩვეულებრივ აპებში."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"მოწყობილობის ადმინთან ინტერაქცია"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"აპს შეეძლება მოწყობილობის ადმინისტრატორისთვის intent ობიექტების გაგზავნა. არასდროს გამოიყენება ჩვეულებრივ აპებში."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"მოწყობილობის ადმინისტრატორს დამატება ან ამოშლა"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"საშუალებას აძლევს მფლობელს დაამატოს ან ამოშალოს მოწყობილობის აქტიური ადმინისტრატორები. ჩვეულებრივ აპებს, ალბათ, არასოდეს დაჭირდება"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ეკრანის ორიენტაციის შეცვლა"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"საშუალებას აძლევს აპლიკაციებს განახორციელოს ქსელის მდგომარეობის მონიტორინგი. ეს ფუნქცია ჩვეულებრივ აპებს არ ჭირდება."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"შეყვანის მოწყობილობის კალიბრაციის ცვლილება"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"საშუალებას აძლევს აპს შეცვალოს სენსორული ეკრანის კალიბრაციის პარამეტრები. ჩვეულებრივ აპებს წესით არ უნდა დაჭირდეს."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM სერთიფიკატებზე წვდომა"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"საშუალებას აძლევს აპლიკაციას დანერგოს და გამოიყენოს DRM სერთიფიკატები. ეს უფლება ჩვეულებრივ აპებს არ ჭირდება."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"პაროლის წესების დაყენება"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"გააკონტროლეთ ეკრანის განბლოკვის პაროლში დაშვებული სიმბოლოები და მისი სიგრძე."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ეკრანის განბლოკვის მცდელობების გაკონტროლება"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"აპლიკაციას ღილაკების დამცავის უსაფრთხო საცავზე წვდომის უფლება ექნება."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"ღილაკების დამცავის გამოჩენისა და დამალვის მართვა"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"აპლიკაციას შეეძლება ღილაკების დამცავის კონტროლი."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"ნდობის მდგომარეობის ცვლილებების მოსმენა."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"საშუალებას აძლევს აპლიკაციას მოუსმინოს ცვლილებებს სანდო მდგომარეობაში."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"სანდო აგენტის სერვისზე მიმაგრება."</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"საშუალებას აძლევს აპლიკაციას მიემაგროს სანდო აგენტის სერვისს."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"განახლებასთან და აღდგენის სისტემასთან ინტერაქცია"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"საშუალებას აძლევს აპლიკაციას მოახდინოს აღდგენის სისტემასთან და სისტემის განახლებასთან ინტერაქცია."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"მასშტაბის მართვისთვის შეეხეთ ორჯერ."</string>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index c2ff0e8..cb4f257 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"ឲ្យ​ម្ចាស់​ចង​ចំណុច​ប្រទាក់​កម្រិត​កំពូល​នៃ​សេវាកម្ម​ធាតុ​ក្រាហ្វិក។ មិន​គួរ​​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"ទាក់ទង​ជា​មួយ​អ្នកគ្រប់គ្រង​ឧបករណ៍"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ឲ្យ​ម្ចាស់​ផ្ញើ​គោលបំណង​​ទៅ​អ្នក​គ្រប់គ្រង​ឧបករណ៍។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"ភ្ជាប់​ទៅ​ការ​បញ្ចូល​ទូរទស្សន៍"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"អនុញ្ញាត​ឲ្យ​ម្ចាស់​ភ្ជាប់​ទៅ​ចំណុចប្រទាក់​កម្រិត​ខ្ពស់​នៃ​ការ​បញ្ចូល​ទូរទស្សន៍។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"បន្ថែម​ ឬ​លុប​កម្មវិធី​គ្រប់គ្រង​​​ឧបករណ៍"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"អនុញ្ញាត​​​ឲ្យ​ម្ចាស់​​​បន្ថែម​ ឬ​លុប​កម្មវិធី​គ្រប់គ្រង​ឧបករណ៍​សកម្ម​ចេញ​។ មិន​គួរ​ប្រើ​សម្រាប់​កម្មវិធី​​ធម្មតា​ទេ​។"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ប្ដូរ​ទិស​អេក្រង់"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"ឲ្យ​កម្មវិធី​សង្កេត​មើល​​លើ​លក្ខខណ្ឌ​បណ្ដាញ​។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"ប្ដូរ​​ចំណុច​ឧបករណ៍​បញ្ចូល"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"ឲ្យ​​កម្មវិធី​កែ​ប៉ារ៉ាម៉ែត្រ​កែ​ចំណុច​​នៃ​ការ​ប៉ះ​អេក្រង់។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"ចូល​មើល​វិញ្ញាបនបត្រ DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ឲ្យ​កម្មវិធី​ផ្ដល់ និង​ប្រើ​វិញ្ញាបនបត្រ DRM ។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"កំណត់​ក្បួន​ពាក្យ​សម្ងាត់"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ពិនិត្យ​ប្រវែង និង​តួអក្សរ​ដែល​បាន​អនុញ្ញាត​ក្នុង​ពាក្យ​សម្ងាត់​ចាក់​សោ​អេក្រង់។"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ពិនិត្យ​ការ​ព្យាយាម​ដោះ​សោ​អេក្រង់"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"ឲ្យ​កម្មវិធី​ចូល​​ការ​ផ្ទុក​មាន​សុវត្ថិភាព keguard ។"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"ពិនិត្យ​ការ​បង្ហាញ និង​លាក់​ការ​ការពារ"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"ឲ្យ​កម្មវិធី​គ្រប់គ្រង keguard ។"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"ស្ដាប់​ការ​ផ្លាស់ប្ដូរ​ស្ថានភាព​ដែល​ទុកចិត្ត។"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"ឲ្យ​កម្មវិធី​ស្ដាប់​ការ​ផ្លាស់ប្ដូរ​ក្នុង​ស្ថានភាព​ដែល​​ទុកចិត្ត។"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"ភ្ជាប់​ទៅ​សេវាកម្ម​ភ្នាក់ងារ​ដែល​ទុកចិត្ត"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"ឲ្យ​កម្មវិធី​ភ្ជាប់​សេវាកម្ម​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត។"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"អន្តរកម្ម​ជា​មួយ​បច្ចុប្បន្នភាព និង​ប្រព័ន្ធ​សង្គ្រោះ"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"ឲ្យ​កម្មវិធី​មាន​អន្តរកម្ម​ជា​មួយ​ប្រព័ន្ធ​សង្គ្រោះ និង​បច្ចុប្បន្នភាព​ប្រព័ន្ធ។"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"ប៉ះ​ពីរ​ដង ​​ដើម្បី​គ្រប់គ្រង​ការ​ពង្រីក"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 8d8eb88..a389466 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"권한을 가진 프로그램이 위젯 서비스에 대한 최상위 인터페이스를 사용하도록 허용합니다. 일반 앱에는 필요하지 않습니다."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"기기 관리자와 상호 작용"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"권한을 가진 프로그램이 기기 관리자에게 인텐트를 보낼 수 있도록 허용합니다. 일반 앱에는 필요하지 않습니다."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"기기 관리자 추가 또는 삭제"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"권한을 가진 프로그램이 활성화된 기기의 관리자를 추가 또는 삭제하도록 합니다. 일반 앱에는 필요하지 않습니다."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"화면 방향 변경"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"애플리케이션이 네트워크 상태에 대한 관측 보고를 수신하도록 허용합니다. 일반 앱에는 필요하지 않습니다."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"입력 기기 보정 변경"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"앱이 터치 스크린의 보정 매개변수를 수정할 수 있도록 허용합니다. 일반 앱에는 필요하지 않습니다."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM 인증서에 액세스"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"애플리케이션이 DRM 인증서를 프로비저닝하고 사용하도록 허용합니다. 일반 앱에서는 필요하지 않습니다."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"비밀번호 규칙 설정"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"화면 잠금해제 비밀번호에 허용되는 길이 및 문자 수를 제어합니다."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"화면 잠금해제 시도 모니터링"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"애플리케이션에서 키가드 보안 저장소에 액세스하도록 허용합니다."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"키가드 표시 및 숨기기 설정"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"애플리케이션에서 키가드를 제어하도록 허용합니다."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Trust 상태 변경사항 수신"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"애플리케이션이 Trust 상태에서의 변경사항을 수신할 수 있도록 허용합니다."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Trust Agent 서비스에 연결"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"애플리케이션이 Trust Agent 서비스에 바인딩할 수 있도록 허용합니다."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"업데이트 및 복구 시스템과 상호작용"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"애플리케이션이 복구 시스템 및 시스템 업데이트와 상호작용할 수 있도록 허용합니다."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"확대/축소하려면 두 번 터치하세요."</string>
diff --git a/core/res/res/values-land/dimens_quantum.xml b/core/res/res/values-land/dimens_quantum.xml
new file mode 100644
index 0000000..7789219
--- /dev/null
+++ b/core/res/res/values-land/dimens_quantum.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+<resources>
+
+    <!-- Default height of an action bar. -->
+    <dimen name="action_bar_default_height_quantum">48dp</dimen>
+    <!-- Default padding of an action bar. -->
+    <dimen name="action_bar_default_padding_quantum">0dp</dimen>
+
+</resources>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index 3b31a8e..178176f 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"ອະນຸຍາດໃຫ້ຜູ່ຖືຜູກກັບອິນເຕີເຟດລະດັບສູງສຸດ ຂອງບໍລິການວິເຈັດ. ບໍ່ຈຳເປັນສຳລັບແອັບຯທົ່ວໄປ."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"ຕິດຕໍ່ກັບຜູ່ເບິ່ງແຍງອຸປະກອນ"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ອະນຸຍາດໃຫ້ເຈົ້າຂອງສົ່ງເຈດຕະນາຫາຜູ່ເບິ່ງແຍງລະບົບອຸປະກອນ. ແອັບຯທົ່ວໄປບໍ່ຄວນຈຳເປັນຕ້ອງໃຊ້."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"ຜູກ​ກັບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ເຂົ້າ​ໂທ​ລະ​ທັດ"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"​ອະ​ນຸ​ຍາດ​ໃຫ້​ຜູ່​ຖື​ຜູກ​ຕິດ​ກັບ​ສ່ວ​ນ​ຕິດ​ຕໍ່​ລະ​ດັບ​ສູງ​ສຸດ​ຂອງ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ເຂົ້າ​ໂທ​ລະ​ທັດ. ແອັບຯ​ທົ່ວ​ໄປ​ບໍ່​ຄວນ​ຈຳ​ເປັນ​ຕ້ອງ​ໃຊ້."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ເພີ່ມ ຫຼືລຶບຜູ່ເບິ່ງແຍງລະບົບອຸປະກອນ"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"ອະນຸຍາດໃຫ້ເຈົ້າຂອງສາມາດລຶບ ຫຼືລຶບຂໍ້ມູນອຸປະກອນທີ່ນຳໃຊ້ໄດ້. ແອັບຯທົ່ວໄປບໍ່ຈຳເປັນຕ້ອງໃຊ້."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ປ່ຽນລວງຂອງໜ້າຈໍ"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັ່ນຕິດຕາມເພື່ອສັງເກດສະພາບຂອງເຄືອຂ່າຍ. ປົກກະຕິແລ້ວແອັບຯທຳມະດາຈະບໍ່ຕ້ອງການໃຊ້."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"ປ່ຽນ​ການ​ວັດ​ແທ້​ອຸ​ປະ​ກອນ​ປ້ອນ​ຂໍ້​ມູນ"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບຯ​ແກ້​ໄຂ​ຄ່າ​ການວັດ​ແທ້​ໜ້າ​ຈ​ໍ​ສຳ​ຜັດ. ​ແອັບຯ​ທຳ​ມະ​ດາບໍ່​ຄວນ​ໃຊ້."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"ເຂົ້າ​ເຖິງ​ໃບຮັບຮອງ DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ອະນຸຍາດ​ໃຫ້​ແອັບພລິເຄຊັນ​ຈັດຫາ ແລະ​ນຳໃຊ້​ໃບຮັບຮອງ DRM. ແອັບຯ​ທຳມະດາ​ບໍ່​ຄວນ​ຕ້ອງ​ການ​ໃຊ້."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"ຕັ້ງຄ່າກົດຂອງລະຫັດຜ່ານ"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ຄວບຄຸມຄວາມຍາວຂອງໂຕອັກສອນທີ່ສາມາດໃຊ້ກັບລະຫັດປົດລັອກໜ້າຈໍ"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ຕິດຕາມການພະຍາຍາມປົດລັອກໜ້າຈໍ"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນ ເຂົ້າເຖິງບ່ອນຈັດເກັບຂໍ້ມູນຄວາມປອດໄພດ້ວຍຄີກາດ."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"ຄວບຄຸມການສະແດງ ແລະການເຊື່ອງໂຕລັອກປຸ່ມກົດ"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນສາມາດຄວບຄຸມຄີກາດໄດ້."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"​ຕິດ​ຕາມ​ການ​ປ່ຽນ​ແປງ​ສະ​ຖາ​ນະ​ການ​ເຊື່ອ​ຖືກ."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ຕິດ​ຕາມ​​ການ​ປ່ຽນ​ແປງ​ໃນ​ສະ​ຖາ​ນະ​ການ​ເຊື່ອ​ຖື."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"​ເຊື່ອມ​ໂຍງ​ຫາ​ບໍ​ລິ​ການ​ຕົວ​ແທນ​ການ​ເຊື່ອ​ຖື"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"​ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບ​ພ​ລິ​ເຄ​ຊັນເຊື່ອມ​ໂຍງ​ກັບ​ບໍ​ລິ​ການ​ຕົວ​ແທນ​ທີ່​ເຊື່ອ​ຖື​ໄດ້."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"ຕິດຕໍ່ກັບລະບົບອັບເດດ ແລະລະບົບກູ້ຂໍ້ມູນ."</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນຕິດຕໍ່ກັບລະບົບກູ້ຂໍ້ມູນ ແລະການອັບເດດລະບົບ."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"ແຕະສອງເທື່ອສຳລັບການຄວບຄຸມການຊູມ"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 9c01d99..69d2420 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Leidžiama savininkui susisaistyti su aukščiausio lygio valdiklio paslaugos sąsaja. Įprastoms programoms to neturėtų prireikti."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"sąveikauti su įrenginio administratoriumi"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Leidžiama savininkui siųsti tikslus įrenginio administratoriui. Įprastoms programoms to neturėtų prireikti."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"susisaistyti su TV įvestimi"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Leidžiama savininkui susisaistyti su aukščiausio lygio TV įvesties sąsaja. Įprastoms programoms to neturėtų prireikti."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"pridėti arba pašalinti įrenginio administratorių"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Savininkui leidžiama pridėti aktyvių įrenginio administratorių arba juos pašalinti. Neturėtų reikėti įprastoms programoms."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"keisti ekrano padėtį"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Leidžiama programai vykdyti tinklo sąlygų stebėjimą. To niekada neturėtų prireikti naudojant įprastas programas."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"keisti įvesties įrenginio kalibravimą"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Leidžiama programai keisti jutiklinio ekrano kalibravimo parametrus. Neturėtų prireikti naudojant įprastas programas."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"gali pasiekti DRM sertifikatus"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Programai leidžiama pasiekti ir naudoti DRM sertifikatus. Neturėtų prireikti naudojant įprastas programas."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nustatyti slaptažodžio taisykles"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Valdyti leidžiamą ekrano atrakinimo slaptažodžių ilgį ir leidžiamus naudoti simbolius."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Stebėti bandymus atrakinti ekraną"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Programai leidžiama pasiekti „KeyGuard“ saugyklą."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Valdyti „KeyGuard“ rodymą ir slėpimą"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Programai leidžiama valdyti „KeyGuard“."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Atsižvelgti į patikimos būsenos pakeitimus."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Programai leidžiama atsižvelgti į patikimos būsenos pakeitimus."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Susisaistyti su „trust agent“ paslauga"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Programai leidžiama susisaistyti su „trust agent“ paslauga."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Sąveikauti su naujiniu ir atkūrimo sistema"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Programai leidžiama sąveikauti su atkūrimo sistema ir sistemos naujiniais."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Dukart palieskite, kad valdytumėte mastelio keitimą"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 478c32d..965e3eb 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Ļauj īpašniekam izveidot saiti ar logrīka pakalpojuma augšējā līmeņa saskarni. Parastajām lietotnēm tas nekad nav nepieciešams."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"mijiedarboties ar ierīces administratoru"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ļauj īpašniekam nosūtīt informāciju par nodomiem ierīces administratoram. Parastajām lietotnēm tas nekad nav nepieciešams."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"Izveidot saiti ar TV ieeju"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Ļauj īpašniekam izveidot saiti ar TV ieejas augšējā līmeņa saskarni. Parastām lietotnēm šī atļauja nekad nav nepieciešama."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"pievienot vai noņemt ierīces administratoru"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Ļauj īpašniekam pievienot vai noņemt aktīvos ierīces administratorus. Nekad nav nepieciešama parastām lietotnēm."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"mainīt ekrāna orientāciju"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Ļauj lietojumprogrammai iegūt informāciju par tīkla stāvokļa novērojumiem. Parastām lietotnēm šī atļauja nekad nav nepieciešama."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"mainīt ievadierīces kalibrēšanu"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Ļauj lietotnei pārveidot skārienekrāna kalibrēšanas parametrus. Parastām lietotnēm šī atļauja nekad nav nepieciešama."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"Piekļuve digitālā satura tiesību pārvaldības sertifikātiem"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ļauj lietojumprogrammai nodrošināt un izmantot digitālā satura tiesību pārvaldības sertifikātus. Parastām lietotnēm šī atļauja nekad nav nepieciešama."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Paroles kārtulu iestatīšana"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolē ekrāna atbloķēšanas parolē atļautās rakstzīmes un garumu."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekrāna atbloķēšanas mēģinājumu pārraudzīšana"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Ļauj lietojumprogrammai piekļūt krātuvei, kas aizsargāta ar atslēgu."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Pārvaldīt krātuves rādīšanu un paslēpšanu."</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Ļauj lietojumprogrammai pārvaldīt krātuvi."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Klausīties uzticamības statusa izmaiņas"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Ļauj lietojumprogrammai klausīties uzticamības statusa izmaiņas."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Izveidot savienojumu ar uzticamības pārbaudes pakalpojumu"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Ļauj lietojumprogrammai izveidot savienojumu ar uzticamības pārbaudes pakalpojumu."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Mijiedarbošanās ar atjauninājumu un atkopšanas sistēmu"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Ļauj lietojumprogrammai mijiedarboties ar atkopšanas sistēmu un sistēmas atjauninājumiem."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Pieskarieties divreiz, lai kontrolētu tālummaiņu."</string>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index a587992..1284d92 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Эзэмшигч нь виджет үйлчилгээний дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"төхөөрөмжийн админтай харилцан үйлчлэх"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Эзэмшигч нь төхөөрөмжийн админруу интент илгээх боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"ТВ оролт холбох"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Эзэмшигч нь ТВ оролтын дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"төхөөрөмжийн админ нэмэх, хасах"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Эзэмшигч нь идэвхтэй төхөөрөмжийн администраторыг нэмэх, хасах боломжтой. Энгийн апп-д шаардлагагүй."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"дэлгэцний чиглэлийг солих"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Аппликешнд сүлжээний байдлын талаар ажиглалтуудыг хүлээн авахыг зөвшөөрнө. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"оролтын төхөөрөмжийн калибрешныг өөрчлөх"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Мэдрэгчтэй дэлгэцний калибрешн параметрийг өөрчлөхийг апп-д зөвшөөрнө. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"хандалтын DRM сертификат"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Аппликешнд DRM сертификатыг ашиглах болон нийлүүлэхийг зөвшөөрнө. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Нууц үгний дүрмийг тохируулах"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Дэлгэц түгжих нууц үгэнд зөвшөөрөгдсөн тэмдэгт болон уртыг удирдах"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Дэлгэц тайлах оролдлогыг хянах"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Аппликешн нь хамгаалалттай аюулгүй санд хандах боломжтой."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Түлхүүр хамгаалалтын харуулах болон далдлахыг удирдах"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Аппликешн нь түлхүүр хамгаалагчыг удирдах боломжтой."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Итгэмжлэлд орж буй өөрчлөлтийг мэдэх."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Итгэмжлэлд орж буй өөрчлөлтийг мэдэх боломжийг аппликешнд олгоно."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Итгэмжлэгдсэн төлөөлөгчийн үйлчилгээтэй холбогдох"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Аппликешнд итгэмжлэгдсэн төлөөлөгчтэй холбогдох боломж олгоно."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Шинэчлэлт болон сэргээх системтэй харилцах"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Аппликешнд сэргээх систем болон системийн шинэчлэлтэй харилцах боломж олгоно."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Өсгөх контрол дээр хоёр удаа товшино уу"</string>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index dbf6004..27c413d 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Membenarkan pemegang terikat dengan antara muka peringkat tertinggi bagi perkhidmatan widget. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"berinteraksi dengan pentadbir peranti"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Membenarkan pemegang menghantar tujuan kepada pentadbir peranti. Tidak sekali-kali diperlukan untuk apl biasa."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"tambah atau alih keluar pentadbir peranti"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Membenarkan pemegang menambah atau mengalih keluar pentadbir peranti aktif. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"tukar orientasi skrin"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Membenarkan aplikasi mendengar pemerhatian tentang keadaan rangkaian. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"tukar penentukuran peranti input"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Membenarkan apl mengubah suai parameter penentukuran skrin sentuh. Ini tidak sekali-kali diperlukan untuk apl biasa."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"akses sijil DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Membenarkan aplikasi memperuntuk dan menggunakan sijil DRM. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Tetapkan peraturan kata laluan"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Mengawal panjang dan aksara yang dibenarkan dalam kata laluan buka kunci skrin."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Memantau percubaan buka kunci skrin"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Membenarkan aplikasi mengakses storan selamat pengawal kekunci."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kawal paparkan dan sembunyikan pengawal kekunci"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Membenarkan aplikasi untuk mengawal pengawal kekunci."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Dengar perubahan keadaan amanah."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Membenarkan aplikasi mendengar perubahan dalam keadaan amanah."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Mengikat kepada perkhidmatan ejen amanah"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Membenarkan aplikasi terikat kepada perkhidmatan ejen amanah."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Berinteraksi dengan kemas kini dan sistem pemulihan"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Membenarkan aplikasi berinteraksi dengan sistem pemulihan dan kemas kini sistem."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Sentuh dua kali untuk mendapatkan kawalan zum"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 12d18e0..a6d186f 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -164,7 +164,7 @@
     <string name="global_action_power_off" msgid="4471879440839879722">"Slå av"</string>
     <string name="global_action_bug_report" msgid="7934010578922304799">"Feilrapport"</string>
     <string name="bugreport_title" msgid="2667494803742548533">"Utfør feilrapport"</string>
-    <string name="bugreport_message" msgid="398447048750350456">"Informasjon om den nåværende tilstanden til enheten din samles inn og sendes som en e-post. Det tar litt tid fra du starter feilrapporten til e-posten er klar, så vær tålmodig."</string>
+    <string name="bugreport_message" msgid="398447048750350456">"Informasjon om tilstanden til enheten din samles inn og sendes som en e-post. Det tar litt tid fra du starter feilrapporten til e-posten er klar, så vær tålmodig."</string>
     <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Stillemodus"</string>
     <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"Lyden er av"</string>
     <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Lyden er på"</string>
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Lar innehaveren binde seg til det øverste nivået av grensesnittet for en modultjeneste. Skal aldri være nødvendig for vanlige apper."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"kommunisere med enhetsadministrator"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Lar innehaveren sende hensikter til en enhetsadministrator. Skal aldri være nødvendig for normale apper."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"legge til eller fjerne en enhetsadministrator"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Tillater innehaveren å legge til eller fjerne aktive enhetsadministratorer. Dette skal aldri være nødvendig for vanlige apper."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"snu skjermen"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Gir appen tillatelse til å lytte etter observasjoner om nettverksforhold. Dette skal ikke være nødvendig for vanlige apper."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"endre kalibreringen av inndataenheter"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Lar appen endre kalibrasjonsparametrene for berøringsskjermen. Denne tillatelsen bør aldri være nødvendig for vanlige apper."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"tilgang til DRM-sertifikater"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Tillater at en app klargjøre og bruke DRM-sertifikater. Denne tillatelsen bør aldri være nødvendig for vanlige apper."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Angi passordregler"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontroller tillatt lengde og tillatte tegn i passord for opplåsing av skjerm."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Overvåk forsøk på opplåsing av skjerm"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Lar en app bruke sikker lagring via keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kontrollér om tastelåsen er skjult eller vist"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Tillater at en app kontrollerer tastelåsen."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Oppdag endringer i tillitsstatusen."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Gir appen tillatelse til å oppdage endringer i tillitsstatusen."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Tilknytt en tillitsagent-tjeneste."</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Gir appen tillatelse til å knyttes til en tillitsagent-tjeneste."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Samhandling med oppdateringer og gjenopprettingssystem"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Tillater en app å samhandle med gjenopprettingsssystemet og systemoppdateringer."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Trykk to ganger for zoomkontroll"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 2c02916..9014f5a 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Hiermee wordt de houder toegestaan verbinding te maken met de hoofdinterface van een widgetservice. Nooit vereist voor normale apps."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactie met apparaatbeheer"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Hiermee kan de houder intenties verzenden naar een apparaatbeheerder. Nooit vereist voor normale apps."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"een apparaatbeheerder toevoegen of verwijderen"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Hiermee kan de rechtenhouder actieve apparaatbeheerders toevoegen of verwijderen. Nooit vereist voor normale apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"schermstand wijzigen"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Hiermee kan een app controleren op waarnemingen met betrekking tot netwerkomstandigheden. Nooit vereist voor normale apps."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"kalibratie van invoerapparaat wijzigen"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Hiermee kan de app de kalibratieparameters van het aanraakscherm aanpassen. Nooit vereist voor normale apps."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"toegang tot DRM-certificaten"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Toestaan dat een app DRM-certificaten registreert en gebruikt. Nooit vereist voor normale apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Wachtwoordregels instellen"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"De lengte en tekens beheren die zijn toegestaan in wachtwoorden voor schermontgrendeling."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Pogingen voor schermontgrendeling bijhouden"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Hiermee krijgt een app toegang tot opslag met toetsbeveiliging."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Weergeven en verbergen van toetsbeveiliging beheren"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Staat toe dat een app de toetsbeveiliging beheert."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Controleren op wijzigingen in de trust-status."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Toestaan dat een app controleert op wijzigingen in de trust-status."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Binden aan een trust-agentservice"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Toestaan dat een app wordt gebonden aan een trust-agentservice."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interactie met update- en herstelsysteem"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Hiermee kan een app interactie hebben met het herstelsysteem en systeemupdates."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Raak twee keer aan voor zoomregeling"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index b2a9184..b08e236 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Zezwala na tworzenie powiązania z interfejsem najwyższego poziomu usługi widżetów. Nie powinno być nigdy potrzebne w przypadku zwykłych aplikacji."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interakcja z administratorem urządzenia"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Zezwala na wysyłanie intencji do administratora urządzenia. Nie powinno być nigdy potrzebne w przypadku zwykłych aplikacji."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"dodaj lub usuń administratora urządzenia"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Umożliwia właścicielowi dodawanie i usuwanie aktywnych administratorów urządzenia. Ta opcja nie jest wykorzystywana w przypadku standardowych aplikacji."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"zmienianie orientacji ekranu"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Pozwala aplikacji śledzić stan sieci. Nieprzeznaczone dla zwykłych aplikacji."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"zmiana kalibracji urządzenia wejściwego"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Zezwala aplikacji na modyfikowanie parametrów kalibracji ekranu dotykowego. Nieprzeznaczone dla zwykłych aplikacji."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"dostęp do certyfikatów DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Zezwala aplikacji na dodanie i używanie certyfikatów DRM. Nieprzeznaczone dla zwykłych aplikacji."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Określ reguły hasła"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolowanie długości haseł odblokowania ekranu i dozwolonych w nich znaków"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitoruj próby odblokowania ekranu"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Zezwala aplikacji na dostęp do bezpiecznego magazynu kluczy."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kontroluj wyświetlanie i ukrywanie zabezpieczenia kluczami"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Umożliwia aplikacji kontrolowanie zabezpieczenia kluczami."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Monitoruj zmiany w stanie zaufania."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Zezwala aplikacji na monitorowanie zmian w stanie zaufania."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Powiąż z usługą agenta zaufania"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Zezwala aplikacji na powiązanie z usługą agenta zaufania."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interakcja z systemem odzyskiwania i aktualizacjami"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Zezwala aplikacji na interakcję z systemem odzyskiwania i aktualizacjami systemu."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Dotknij dwukrotnie, aby sterować powiększeniem."</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 3e55c58..65595ab 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permite que o titular vincule a interface de nível superior de um serviço de widget. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir com um administrador do dispositivo"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite ao titular enviar intenções para um administrador do aparelho. Nunca deverá ser necessário para aplicações normais."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"vincular a uma entrada de TV"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite ao titular vincular à interface de nível superior de uma entrada de TV. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"adicionar ou remover um administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite que o titular adicione ou remova administradores de dispositivos ativos. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"mudar orientação do ecrã"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permite que uma aplicação ouça observações sobre as condições da rede. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"alterar a calibragem de entrada do dispositivo"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permite à aplicação modificar os parâmetros de calibragem do ecrã tátil. Esta funcionalidade nunca deverá ser necessária para aplicações normais."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"Aceder a certificados DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que uma aplicação forneça e utilize certificados DRM. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Definir regras de palavra-passe"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar o comprimento e os caracteres permitidos nas palavras-passe de desbloqueio do ecrã."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitorizar tentativas de desbloqueio do ecrã"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permite a uma aplicação aceder ao armazenamento seguro de proteção de teclado."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Controlar apresentação e ocultação de proteção de teclado"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permite que uma aplicação controle a proteção de teclado."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Registar alterações no estado trust."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permite que uma aplicação registe alterações no trust state."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Vincular a um serviço de trust agent"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permite que uma aplicação fique vinculada a um serviço de trust agent."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interagir com o sistema de recuperação e de atualização"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permite que uma aplicação interaja com o sistema de recuperação e as atualizações do sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Toque duas vezes para controlar o zoom"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index de22fd5..7feb69b 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permite que o proprietário utilize a interface de nível superior de um serviço de widget. Nunca deve ser necessário para aplicativos normais."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir com o administrador de um dispositivo"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite que o proprietário envie tentativas ao administrador de um aparelho. Nunca deve ser necessário para aplicativos normais."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"adicionar ou remover um administrador do dispositivo"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite que o proprietário adicione ou remova administradores do dispositivo ativos. Não deve ser necessário para aplicativos comuns."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"alterar orientação da tela"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permite que o aplicativo detecte observações nas condições da rede. Não deve ser necessário para aplicativos comuns."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"alterar calibragem do dispositivo de entrada"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permite que o aplicativo modifique os parâmetros de calibragem da tela sensível ao toque. Não deve ser necessário para aplicativos normais."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"acessar certificados de DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que o aplicativo provisione e use certificados de DRM. Não deve ser necessário para aplicativos comuns."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Definir regras para senha"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar o tamanho e os caracteres permitidos nas senhas de desbloqueio de tela."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitorar tentativas de desbloqueio da tela"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permite que o aplicativo acesse o armazenamento seguro do bloqueio de teclado."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Controlar a exibição e ocultação do bloqueio de tela"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permite que o aplicativo controle o bloqueio de teclado."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Detectar alterações no estado de confiança."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permite que o aplicativo detecte alterações no estado de confiança."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Associar a um serviço de agente de confiança"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permite que o aplicativo se associe a um serviço de agente de confiança."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interagir com o sistema de atualizações e recuperação"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permite que um aplicativo interaja com o sistema de recuperação e as atualizações do sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Toque duas vezes para controlar o zoom"</string>
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index 6c5344b..7fc7436 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -601,6 +601,10 @@
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interacziun cun in administratur dad apparats"</string>
     <!-- no translation found for permdesc_bindDeviceAdmin (569715419543907930) -->
     <skip />
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <!-- no translation found for permlab_manageDeviceAdmins (4248828900045808722) -->
     <skip />
     <!-- no translation found for permdesc_manageDeviceAdmins (5025608167709942485) -->
@@ -1166,6 +1170,10 @@
     <skip />
     <!-- no translation found for permdesc_setInputCalibration (4527511047549456929) -->
     <skip />
+    <!-- no translation found for permlab_accessDrmCertificates (7436886640723203615) -->
+    <skip />
+    <!-- no translation found for permdesc_accessDrmCertificates (8073288354426159089) -->
+    <skip />
     <!-- no translation found for policylab_limitPassword (4497420728857585791) -->
     <skip />
     <!-- no translation found for policydesc_limitPassword (3252114203919510394) -->
@@ -2104,6 +2112,14 @@
     <skip />
     <!-- no translation found for permdesc_control_keyguard (3043732290518629061) -->
     <skip />
+    <!-- no translation found for permlab_trust_listener (1765718054003704476) -->
+    <skip />
+    <!-- no translation found for permdesc_trust_listener (8233895334214716864) -->
+    <skip />
+    <!-- no translation found for permlab_bind_trust_agent_service (8242093169457695334) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_trust_agent_service (7041930026024507515) -->
+    <skip />
     <!-- no translation found for permlab_recovery (3157024487744125846) -->
     <skip />
     <!-- no translation found for permdesc_recovery (8511774533266359571) -->
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index d4f5183..2dfc1870 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Permite proprietarului să se conecteze la interfaţa de nivel superior a unui serviciu widget. Nu ar trebui să fie niciodată necesară pentru aplicaţiile obişnuite."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interacţionare cu administratorul unui dispozitiv"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite proprietarului să trimită intenţii către un administrator al dispozitivului. Nu ar trebui să fie niciodată necesară pentru aplicaţiile obişnuite."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"adăugarea sau eliminarea unui administrator de dispozitiv"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite proprietarului să adauge sau să elimine administratorii activi ai dispozitivului. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"modificare orientare ecran"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Permite unei aplicații să asculte observații despre starea rețelei. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"schimbați calibrarea dispozitivului de intrare"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Permite aplicației să modifice parametrii de calibrare a ecranului tactil. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"accesează certificatele DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite unei aplicații să furnizeze și să utilizeze certificate DRM. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Setaţi reguli pentru parolă"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Stabiliţi lungimea şi tipul de caractere permise în parolele pentru deblocarea ecranului."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitorizaţi încercările de deblocare a ecranului"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Permite unei aplicații să acceseze stocarea securizată când tastatura este blocată."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Stabilește afișarea și ascunderea blocării tastaturii"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Permite unei aplicații să controleze blocarea tastaturii."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Detectarea modificărilor în starea de încredere."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Permite unei aplicații să detecteze modificările în starea de încredere."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Asocierea la un serviciu „agenți de încredere”."</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Permite unei aplicații să se asocieze la un serviciu „agent de încredere”."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interacțiune cu sistemul de recuperare și de actualizare"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Permite unei aplicații să interacționeze cu sistemul de recuperare și cu actualizările de sistem."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Atingeţi de două ori pentru a mări/micşora"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index fd0776b..7f07d6d 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Приложение сможет подключаться к базовому интерфейсу службы виджетов. Это разрешение не используется обычными приложениями."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"Взаимодействие с администратором устройства"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Приложение сможет отправлять объекты intent администратору устройства. Это разрешение не используется обычными приложениями."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"Добавление/удаление администратора устройства"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Владелец сможет добавлять и удалять администраторов устройства (используется лишь в некоторых приложениях)."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"Изменение ориентации экрана"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Приложение сможет использовать данные о состоянии сети. Это разрешение обычно используется только специальными приложениями."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"изменение параметров калибровки экрана"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Приложение сможет изменять параметры калибровки сенсорного экрана. Это разрешение обычно используется только специальными приложениями."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"Доступ к сертификатам DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Приложение сможет синхронизировать и использовать сертификаты DRM (разрешение актуально только для специальных приложений)."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Правила выбора паролей"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролировать длину и символы при вводе паролей для снятия блокировки экрана."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Отслеживать попытки снятия блокировки экрана"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Приложение сможет получить доступ к хранилищу ключей."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Управлять отображением хранилища ключей"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Приложение сможет управлять хранилищем ключей."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Отслеживание изменений статуса доверия"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Приложение сможет отслеживать изменения в статусе доверия."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Подключение к службе Trust Agents"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Приложение сможет подключаться к службе Trust Agents."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Взаимодействовать с системой восстановления и обновлениями"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Приложение сможет взаимодействовать с системой восстановления и обновлениями системы."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Нажмите дважды для изменения масштаба"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 2c8b5d2..851addc 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -233,7 +233,7 @@
     <string name="permgrouplab_display" msgid="4279909676036402636">"Používateľské rozhranie iných aplikácií"</string>
     <string name="permgroupdesc_display" msgid="6051002031933013714">"Vplyv na používateľské rozhranie ďalších aplikácií."</string>
     <string name="permgrouplab_storage" msgid="1971118770546336966">"Úložisko"</string>
-    <string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Prístup do ukl. priestoru USB."</string>
+    <string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"Prístup do úložiska USB."</string>
     <string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"Prístup na kartu SD."</string>
     <string name="permgrouplab_accessibilityFeatures" msgid="7919025602283593907">"Funkcie zjednodušenia ovládania"</string>
     <string name="permgroupdesc_accessibilityFeatures" msgid="4205196881678144335">"Funkcie, ktoré môže vyžadovať nápomocná technológia."</string>
@@ -347,7 +347,7 @@
     <string name="permdesc_backup" msgid="6912230525140589891">"Umožňuje aplikácii ovládať mechanizmus na zálohovanie a obnovu údajov systému. Bežné aplikácie toto nastavenie nepoužívajú."</string>
     <string name="permlab_confirm_full_backup" msgid="5557071325804469102">"potvrdenie operácie úplnej zálohy alebo úplného obnovenia"</string>
     <string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Umožňuje aplikácii spustiť používateľské rozhranie potvrdenia úplnej zálohy. Toto nastavenie by nemala používať žiadna aplikácia."</string>
-    <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"zobrazenie neoprávnených okien"</string>
+    <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"zobraziť neoprávnené okná"</string>
     <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Umožňuje aplikácii vytvárať okná, ktoré majú byť použité interným systémom používateľského rozhrania. Bežné aplikácie toto nastavenie nepoužívajú."</string>
     <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"vykresliť cez ďalšie aplikácie"</string>
     <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Umožňuje aplikáciu vykresľovanie nad inými aplikáciami alebo súčasťami používateľského rozhrania. Táto funkcia môže zasahovať do vášho používania rozhrania inej aplikácie alebo meniť zobrazovaný obsah v iných aplikáciách."</string>
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Umožňuje držiteľovi viazať sa na najvyššiu úroveň rozhrania služby miniaplikácií. Bežné aplikácie by toto nastavenie nemali nikdy potrebovať."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"komunikovať so správcom zariadenia"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Umožňuje držiteľovi odosielať informácie správcovi zariadenia. Bežné aplikácie by toto nastavenie nemali nikdy potrebovať."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"viazanie na televízny vstup"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Umožňuje držiteľovi viazať sa na najvyššiu úroveň rozhrania televízneho vstupu. Bežné aplikácie by toto nastavenie nemali nikdy potrebovať."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"pridanie alebo odstránenie správcu zariadenia"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Umožňuje držiteľovi pridať alebo odstrániť správcov aktívnych zariadení. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"zmena orientácie obrazovky"</string>
@@ -474,9 +476,9 @@
     <string name="permdesc_accessLocationExtraCommands" msgid="5945166642335800763">"Umožňuje aplikácii pristupovať k ďalším príkazom poskytovateľa informácií o polohe. Aplikácii to môže umožniť zasahovať do činnosti systému GPS alebo iných zdrojov informácií o polohe."</string>
     <string name="permlab_installLocationProvider" msgid="6578101199825193873">"Oprávnenie na inštaláciu poskytovateľa polohy"</string>
     <string name="permdesc_installLocationProvider" msgid="9066146120470591509">"Vytváranie simulovaných zdrojov polohy na testovanie alebo inštalácia nového poskytovateľa informácií o polohe. Aplikácii to umožní nahradiť polohu a stav, ktoré vracajú iné zdroje informácií o polohe, ako sú napríklad systém GPS alebo poskytovatelia informácií o polohe."</string>
-    <string name="permlab_accessFineLocation" msgid="1191898061965273372">"presná poloha (pomocou GPS a siete)"</string>
+    <string name="permlab_accessFineLocation" msgid="1191898061965273372">"zistiť presnú polohu (pomocou GPS a siete)"</string>
     <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"Umožňuje aplikácii získať vašu presnú polohu pomocou systému GPS (Global Positioning System) alebo zdrojov určenia polohy siete, napríklad mobilných veží a sietí Wi-Fi. Tieto služby určovania polohy musia byť na vašom zariadení zapnuté a dostupné, inak ich aplikácia nebude môcť využívať. Aplikácie môžu tieto služby využívať na určenie vašej polohy. Tieto služby môžu zvýšiť spotrebu batérie."</string>
-    <string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"približná poloha (pomocou siete)"</string>
+    <string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"zistiť približnú polohu (pomocou siete)"</string>
     <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"Umožňuje aplikácii získať vašu približnú polohu. Táto poloha je odvodená zo služieb určovania polohy pomocou zdrojov určenia polohy siete, napríklad mobilných veží a sietí Wi-Fi. Tieto služby určovania polohy musia byť na vašom zariadení zapnuté a dostupné, inak ich aplikácia nebude môcť využívať. Aplikácie môžu tieto služby využívať na určenie vašej približnej polohy."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"prístup k službe SurfaceFlinger"</string>
     <string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"Umožňuje aplikácii používať funkcie nízkej úrovne aplikácie SurfaceFlinger."</string>
@@ -498,13 +500,13 @@
     <string name="permdesc_captureSecureVideoOutput" msgid="2779793064709350289">"Umožňuje aplikácii zachytiť a presmerovať zabezpečený výstup videa."</string>
     <string name="permlab_mediaContentControl" msgid="8749790560720562511">"ovládanie reprodukcie médií a prístup k metadátam"</string>
     <string name="permdesc_mediaContentControl" msgid="1637478200272062">"Umožňuje aplikácii ovládať reprodukciu médií a pristupovať k informáciám o médiách (názov, autor...)."</string>
-    <string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"zmeny vašich nastavení zvuku"</string>
+    <string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"meniť nastavenia zvuku"</string>
     <string name="permdesc_modifyAudioSettings" msgid="3522565366806248517">"Umožňuje aplikácii upraviť globálne nastavenia zvuku, ako je hlasitosť, alebo určiť, z ktorého reproduktora bude zvuk vychádzať."</string>
-    <string name="permlab_recordAudio" msgid="3876049771427466323">"záznam zvuku"</string>
+    <string name="permlab_recordAudio" msgid="3876049771427466323">"nahrávať zvuk"</string>
     <string name="permdesc_recordAudio" msgid="4906839301087980680">"Umožňuje aplikácii zaznamenávať zvuk pomocou mikrofónu. Toto povolenie umožňuje aplikácii zaznamenávať zvuk kedykoľvek bez vášho potvrdenia."</string>
     <string name="permlab_sim_communication" msgid="1180265879464893029">"komunikácia s kartou SIM"</string>
     <string name="permdesc_sim_communication" msgid="5725159654279639498">"Umožňuje aplikácii odosielať príkazy na kartu SIM. Toto je veľmi nebezpečné povolenie."</string>
-    <string name="permlab_camera" msgid="3616391919559751192">"snímanie fotografií a natáčanie videí"</string>
+    <string name="permlab_camera" msgid="3616391919559751192">"fotiť a nakrúcať videá"</string>
     <string name="permdesc_camera" msgid="8497216524735535009">"Umožňuje aplikácii fotografovať a nahrávať videá pomocou fotoaparátu. Toto povolenie umožňuje aplikácii používať fotoaparát kedykoľvek a bez vášho potvrdenia."</string>
     <string name="permlab_cameraDisableTransmitLed" msgid="2651072630501126222">"Zakázať indikátor LED prenosu pri používaní fotoaparátu"</string>
     <string name="permdesc_cameraDisableTransmitLed" msgid="4764585465480295341">"Umožňuje v predinštalovanej systémovej aplikácii zakázať indikátor LED používania fotoaparátu."</string>
@@ -534,7 +536,7 @@
     <string name="permdesc_asec_rename" msgid="1794757588472127675">"Umožňuje aplikácii premenovať interné úložisko."</string>
     <string name="permlab_vibrate" msgid="7696427026057705834">"ovládať vibrovanie"</string>
     <string name="permdesc_vibrate" msgid="6284989245902300945">"Umožňuje aplikácii ovládať vibrácie."</string>
-    <string name="permlab_flashlight" msgid="2155920810121984215">"ovládanie kontrolky"</string>
+    <string name="permlab_flashlight" msgid="2155920810121984215">"ovládať kontrolku"</string>
     <string name="permdesc_flashlight" msgid="6522284794568368310">"Umožňuje aplikácii ovládať svetlo."</string>
     <string name="permlab_manageUsb" msgid="1113453430645402723">"spravovať predvoľby a povolenia zariadení USB"</string>
     <string name="permdesc_manageUsb" msgid="7776155430218239833">"Umožňuje aplikácii spravovať predvoľby a povolenia zariadení USB."</string>
@@ -575,7 +577,7 @@
     <string name="permlab_factoryTest" msgid="3715225492696416187">"spustenie v režime továrenského testu"</string>
     <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Umožňuje aplikácii spustenie v režime nízkoúrovňového testu výrobcu a povolí úplný prístup k hardvéru tabletu. K dispozícii iba vtedy, keď je tablet spustený v režime testovania výrobcu."</string>
     <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Umožňuje aplikácii spustenie v režime nízkoúrovňového testu výrobcu a povolí úplný prístup k hardvéru telefónu. K dispozícii iba vtedy, keď je telefón spustený v režime testovania výrobcu."</string>
-    <string name="permlab_setWallpaper" msgid="6627192333373465143">"nastavenie tapety"</string>
+    <string name="permlab_setWallpaper" msgid="6627192333373465143">"nastaviť tapetu"</string>
     <string name="permdesc_setWallpaper" msgid="7373447920977624745">"Umožňuje aplikácii nastaviť tapetu systému."</string>
     <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"upraviť veľkosť tapety"</string>
     <string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"Umožňuje aplikácii nastaviť tipy pre veľkosť tapety systému."</string>
@@ -610,7 +612,7 @@
     <string name="permdesc_changeTetherState" msgid="1524441344412319780">"Umožňuje aplikácii zmeniť stav sieťového pripojenia zdieľaného pomocou tetheringu."</string>
     <string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"zmeniť nastavenie použitia údajov na pozadí"</string>
     <string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"Umožňuje aplikácii zmeniť nastavenie používania údajov na pozadí."</string>
-    <string name="permlab_accessWifiState" msgid="5202012949247040011">"zobraziť pripojenia siete Wi-Fi"</string>
+    <string name="permlab_accessWifiState" msgid="5202012949247040011">"zobraziť pripojenia Wi-Fi"</string>
     <string name="permdesc_accessWifiState" msgid="5002798077387803726">"Umožňuje aplikácii zobraziť informácie o sieťach Wi-Fi. Napríklad o tom, či je sieť Wi-Fi povolená alebo názvy pripojených zariadení Wi-Fi."</string>
     <string name="permlab_changeWifiState" msgid="6550641188749128035">"pripojiť a odpojiť od siete Wi-Fi"</string>
     <string name="permdesc_changeWifiState" msgid="7137950297386127533">"Umožňuje aplikácii pripojiť sa na prístupové body siete Wi-Fi, odpojiť sa od nich a meniť konfiguráciu zariadení pre siete Wi-Fi."</string>
@@ -631,19 +633,19 @@
     <string name="permlab_bluetooth" msgid="6127769336339276828">"párovať so zariadeniami Bluetooth"</string>
     <string name="permdesc_bluetooth" product="tablet" msgid="3480722181852438628">"Umožňuje aplikácii zobraziť informácie o konfigurácii Bluetooth na tablete. Taktiež jej umožňuje nadväzovať a akceptovať spojenia so spárovanými zariadeniami."</string>
     <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"Umožňuje aplikácii zobraziť informácie o konfigurácii Bluetooth na telefóne. Taktiež jej umožňuje nadväzovať a akceptovať spojenia so spárovanými zariadeniami."</string>
-    <string name="permlab_nfc" msgid="4423351274757876953">"ovládať technológiu Near Field Communication"</string>
-    <string name="permdesc_nfc" msgid="7120611819401789907">"Umožňuje aplikácii komunikovať so značkami, kartami a čítačkami s podporou technológie Near Field Communication (NFC)."</string>
+    <string name="permlab_nfc" msgid="4423351274757876953">"ovládať technológiu NFC"</string>
+    <string name="permdesc_nfc" msgid="7120611819401789907">"Umožňuje aplikácii komunikovať so značkami, kartami a čítačkami s podporou technológie NFC."</string>
     <string name="permlab_disableKeyguard" msgid="3598496301486439258">"deaktivácia zámky obrazovky"</string>
     <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"Umožňuje aplikácii zakázať uzamknutie klávesnice a akékoľvek súvisiace zabezpečenie heslom. Príkladom je zakázanie uzamknutia klávesnice pri prichádzajúcom telefonickom hovore a jeho opätovné povolenie po skončení hovoru."</string>
-    <string name="permlab_readSyncSettings" msgid="6201810008230503052">"čítanie nastavení synchronizácie"</string>
+    <string name="permlab_readSyncSettings" msgid="6201810008230503052">"čítať nastavenia synchronizácie"</string>
     <string name="permdesc_readSyncSettings" msgid="2706745674569678644">"Umožňuje aplikácii čítať nastavenia synchronizácie v účte. Môže napríklad určiť, či je s účtom synchronizovaná aplikácia Ľudia."</string>
-    <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"prepínať nastavenie synchronizácie medzi hodnotou zapnuté a vypnuté"</string>
+    <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"zapnúť alebo vypnúť synchronizáciu"</string>
     <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Umožňuje aplikácii upraviť nastavenia synchronizácie v účte. Pomocou tohto povolenia je možné napríklad povoliť synchronizáciu aplikácie Ľudia s účtom."</string>
     <string name="permlab_readSyncStats" msgid="7396577451360202448">"čítanie štatistických údajov o synchronizácii"</string>
     <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Umožňuje aplikácii čítať štatistické informácie o synchronizácii v účte vrátane histórie uskutočnených synchronizácií a informácií o množstve synchronizovaných údajov."</string>
-    <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"čítanie zdrojov prihlásených na odber"</string>
+    <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"čítať odoberané informačné kanály"</string>
     <string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Umožňuje aplikácii získať podrobnosti o aktuálne synchronizovaných informačných kanáloch."</string>
-    <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"zápis odoberaných zdrojov"</string>
+    <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"zapisovať odoberané informačné kanály"</string>
     <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Umožňuje aplikácii upraviť vaše aktuálne synchronizované informačné kanály. Škodlivé aplikácie môžu synchronizované informačné kanály zmeniť."</string>
     <string name="permlab_readDictionary" msgid="4107101525746035718">"čítať výrazy pridané do slovníka"</string>
     <string name="permdesc_readDictionary" msgid="659614600338904243">"Umožňuje aplikácii čítať všetky slová, názvy a frázy, ktoré mohol používateľ uložiť do svojho slovníka."</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Umožňuje aplikácii zachytávať informácie o stave siete. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"zmeniť kalibráciu vstupného zariadenia"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Umožňuje aplikácii upraviť parametre kalibrácie dotykovej obrazovky. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"prístup k certifikátom DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Umožňuje aplikácii vydávať a používať certifikáty DRM. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nastaviť pravidlá pre heslo"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Ovládanie dĺžky hesiel na odomknutie obrazovky a v nich používané znaky."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Sledovať pokusy o odomknutie obrazovky"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Umožňuje aplikácii získať prístup k ukladaciemu priestoru zabezpečenému technológiou keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Ovládanie zobrazenia alebo skrytia technológie keyguard"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Umožňuje aplikácii ovládať technológiu keyguard."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Reagovanie na zmeny stavu dôveryhodnosti."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Umožňuje aplikácii reagovať na zmeny stavu dôveryhodnosti."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Viazanie sa na službu zástupcu dôveryhodnosti"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Umožňuje aplikácii viazať sa na službu zástupcu dôveryhodnosti."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interakcia so systémom aktualizácií a obnovenia"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Umožňuje aplikácii interakciu so systémom obnovenia a s aktualizáciami systému."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Ovládacie prvky lupy zobrazíte dvojitým dotknutím"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 1302eb8..808026c 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Lastniku omogoča povezovanje z vmesnikom storitve pripomočka najvišje ravni. Tega ni treba nikoli uporabiti za navadne programe."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interakcija s skrbnikom naprave"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Omogoča lastniku, da pošlje namere skrbniku naprave. Nikoli se ne uporablja za navadne programe."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"dodajanje ali odstranjevanje skrbnikov naprave"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Imetniku omogoča, da doda ali odstrani aktivne skrbnike naprave. Normalne aplikacije tega načeloma ne potrebujejo."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"spreminjanje usmerjenosti zaslona"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Aplikaciji omogoča spremljanje razmer v omrežju. Pri navadnih aplikacijah to ne bi smelo biti potrebno."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"sprememba umerjanja vhodne naprave"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Aplikaciji dovoli spreminjanje parametrov za umerjanje zaslona na dotik. Tega ni treba nikoli uporabiti za navadne aplikacije."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"dostop do potrdil za upravljanje digitalnih pravic"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Aplikaciji omogoča pripravo in uporabo potrdil za upravljanje digitalnih pravic. To naj ne bi bilo nikoli potrebno za običajne aplikacije."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nastavitev pravil za geslo"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Nadzor nad dolžino in znaki, ki so dovoljeni v geslih za odklepanje zaslona."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"nadzor nad poskusi odklepanja zaslona"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Aplikaciji omogoča dostop do varne shrambe Keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Nadzira prikaz in skrivanje zaklepanja tipkovnice"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Aplikaciji omogoča nadzor zaklepanja tipkovnice."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Spremljanje sprememb stanja zaupanja."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Aplikaciji dovoli spremljanje sprememb stanja zaupanja."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Povezovanje s storitvijo posrednikov zaupanja"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Aplikaciji dovoli povezovanje s storitvijo posrednikov zaupanja."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Uporaba sistema za posodobitev in obnovitev"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Aplikaciji dovoli uporabo sistema za obnovitev in posodobitev sistema."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Dvakrat se dotaknite za nadzor povečave/pomanjšave"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index e636874..10d5376 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Дозвољава власнику да се обавеже на интерфејс услуге виџета највишег нивоа. Уобичајене апликације никада не би требало да је користе."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"интеракција са администратором уређаја"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Омогућава да власник шаље своје намере администратору уређаја. Уобичајене апликације никада не би требало да је користе."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"повезивање са ТВ улазом"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Дозвољава власнику да се повеже са интерфејсом ТВ улаза највишег нивоа. Уобичајене апликације никада не би требало да је користе."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"додавање или уклањање администратора уређаја"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Дозвољава власнику да додаје или уклања активне администраторе уређаја. Уобичајене апликације никада не би требало да је користе."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"промена положаја екрана"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Дозвољава апликацији да прати податке о условима на мрежи. Не би никада требало да буде потребно за нормалне апликације."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"промени калибрацију улазног уређаја"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Дозвољава апликацији да модификује параметре калибрације додирног екрана. Не би требало да буде потребно за нормалне апликације."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"приступ DRM сертификатима"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Дозвољава апликацији да додељује и користи DRM сертификате. Никада не би требало да се користи за уобичајене апликације."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Подешавање правила за лозинку"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролишите дужину и знакове дозвољене у лозинкама за откључавање екрана."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Надгледање покушаја откључавања екрана"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Дозвољава апликацији да приступа безбедној меморији заштићеној шифром."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Контролиши приказивање и скривање заштите шифром"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Дозвољава апликацији да контролише заштиту шифром."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Праћење промена Trust стања."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Дозвољава апликацији да прати промене Trust стања."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Везивање за услугу Trust agents"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Дозвољава апликацији да се веже за услугу Trust agents."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Интеракција са системом за ажурирање и опоравак"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Дозвољава апликацији да ступа у интеракцију са системом за опоравак и ажурирањима система."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Додирните двапут да бисте контролисали зум"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 31e3c9c..820764c 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Innehavaren tillåts att binda till den översta nivåns gränssnitt för en widget. Ska inte behövas för vanliga appar."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"arbeta med en enhetsadministratör"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Tillåter att innehavaren skickar avsikter till en enhetsadministratör. Vanliga appar behöver aldrig göra detta."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"binda till en tv-insignal"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Innehavaren tillåts att binda till den översta nivåns gränssnitt för en tv-insignal. Ska inte behövas för vanliga appar."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"lägga till eller ta bort en enhetsadministratör"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Innehavaren får lägga till eller ta bort aktiva enhetsadministratörer. Detta ska normalt inte behövas för vanliga appar."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ändra bildskärmens rikting"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Tillåter att appen lyssnar efter information om nätverksförhållanden. Vanliga appar bör aldrig behöva den här behörigheten."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"ändra kalibreringen för inmatningsenheten"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Tillåter att appen ändrar kalibreringsparametrarna för pekskärmen. Detta behövs aldrig för vanliga appar."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"tillgång till DRM-certifikat"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Tillåter att en app tillhandahåller och använder DRM-certifikat. Behövs inte för vanliga appar."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Ange lösenordsregler"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Bestäm hur många och vilka tecken som är tillåtna i skärmlåsets lösenord."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Övervaka försök att låsa upp skärmen"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Tillåter att en app får åtkomst till säkert keyguard-lagringsutrymme."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kontrollera hur knapplåset visas och döljs"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Tillåter att en app kontrollerar knapplåsfunktionen."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Lyssna efter ändringar i betrodda agenters status."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Tillåter att en app lyssnar efter ändringar i den betrodda agentens status."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Bind till en tjänst från en betrodd agent"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Tillåter att en app binds vid en tjänst från en betrodd agent."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Interagera med uppdaterings- och återställningssystemet"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Tillåter att en app interagerar med systemuppdateringar och återställningssystemet."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Tryck två gånger för zoomkontroll"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 84fbf08..9885014 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Inaruhusu mmiliki kushurutisha kusano ya kiwango cha juu ya huduma ya wijeti. Haipaswi kuhitajika kwa programu za kawaida."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"jiunge na msimamizi wa kifaa"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Inamruhusu mmiliki kutuma malengo kwa msimamizi wa kifaa. Haipaswi kuhitajika kwa programu za kawaida."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ongeza au ondoa msimamizi wa kifaa"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Inaruhusu mmiliki kuongeza au kuondoa wasimamizi wa kifaa waliopo. Kamwe kisihitajike kwa ajili ya programu za kawaida."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"badilisha uelekezo wa skrini"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Huruhusu programu kusikiliza matukio katika hali za mtandao. Haipaswi kuhitajika kamwe kwa programu za kawaida."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"badilisha urekebishaji wa kifaa cha kuingiza data"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Huruhusu programu kubadilisha vigezo vya urekebishaji vya skrini ya kugusa. Havipaswi kuhitajika kamwe kwa programu za kawaida."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"fikia vyeti vya DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Huruhusu programu kwa utoaji na matumizi ya vyeti vya DRM. Havifahi kuhitajika kwa ajili ya programu za kawaida."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Kuweka kanuni za nenosiri"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kudhibiti urefu na herufi zinazoruhusiwa katika manenosiri ya kufungua skrini."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Kuhesabu idadi ya mara ambazo skrini inajaribu kufunguliwa"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Inaruhusu programu kufikia hifadhi salama ya ufunguo wa ulinzi."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Dhibiti uonyeshaji na ufichaji wa kilinda-funguo"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Huruhusu programu kudhibiti kilinda-funguo."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Sikiliza mabadiliko ya hali ya kuaminiwa."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Huruhusu programu kusikiliza mabadiliko katika hali ya kuaminiwa."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Funga kwenye huduma ya dalali wa kuaminiwa"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Huruhusu programu kufungamanisha kwenye huduma ya dalali wa kuaminiwa."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Ingiliana na sasisho na mfumo wa kurejesha"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Huruhusu programu kuingiliana na mfumo wa kurejesha na sasisho la mfumo."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Gusa mara mbili kwa udhibiti cha kuza"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 57850a1..ee35eae 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"อนุญาตให้ผู้ใช้เชื่อมโยงกับส่วนติดต่อผู้ใช้ระดับสูงสุดของบริการวิดเจ็ต ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"ติดต่อกับผู้ดูแลอุปกรณ์"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"อนุญาตให้ผู้ใช้ส่งการติดต่อไปยังโปรแกรมควบคุมอุปกรณ์ ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"เพิ่มหรือลบผู้ดูแลระบบอุปกรณ์"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"อนุญาตให้เจ้าของเพิ่มหรือลบผู้ดูแลระบบอุปกรณ์ที่ใช้งาน ไม่ควรต้องใช้สำหรับแอปปกติ"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"เปลี่ยนการวางแนวหน้าจอ"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"อนุญาตให้แอปพลิเคชันฟังข้อสังเกตเกี่ยวกับสภาวะของเครือข่าย ไม่จำเป็นสำหรับแอปปกติ"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"เปลี่ยนการเทียบมาตรฐานอุปกรณ์อินพุต"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"อนุญาตให้แอปสามารถปรับพารามิเตอร์การเทียบมาตรฐานของหน้าจอสัมผัส ไม่ควรใช้สำหรับแอปทั่วไป"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"เข้าถึงใบรับรอง DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ช่วยให้แอปพลิเคชันสามารถจัดสรรและใช้ใบรับรอง DRM ได้ ไม่จำเป็นสำหรับแอปปกติทั่วไป"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"ตั้งค่ากฎรหัสผ่าน"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ควบคุมความยาวและอักขระที่อนุญาตให้ใช้ในรหัสผ่านการปลดล็อกหน้าจอ"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ตรวจสอบความพยายามในการปลดล็อกหน้าจอ"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"อนุญาตให้แอปพลิเคชันเข้าถึงพื้นที่จัดเก็บที่รักษาความปลอดภัยด้วยคีย์การ์ด"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"ควบคุมการแสดงผลและการซ่อนตัวล็อกปุ่มกด"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"อนุญาตให้แอปพลิเคชันควบคุมตัวล็อกปุ่มกด"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"ฟังการเปลี่ยนแปลงของสถานะความน่าเชื่อถือ"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"อนุญาตให้แอปพลิเคชันฟังการเปลี่ยนแปลงที่มีต่อสถานะความน่าเชื่อถือ"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"ผูกกับบริการของตัวแทนที่เชื่อถือได้"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"อนุญาตให้แอปพลิเคชันผูกกับบริการของตัวแทนที่เชื่อถือได้"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"โต้ตอบกับการอัปเดตและระบบการกู้คืน"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"ช่วยให้แอปพลิเคชันสามารถโต้ตอบกับระบบการกู้คืนและการอัปเดตระบบ"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"แตะสองครั้งเพื่อควบคุมการซูม"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index b91b44c..ba7033e 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Pinapayagan ang may-hawak na sumailalim sa nangungunang interface ng serbisyo ng widget. Hindi kailanman dapat na kailanganin para sa normal na apps."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"makipag-ugnay sa tagapangasiwa ng device"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Pinapayagan ang mga may-ari na magpadala ng mga layunin sa administrator ng device. Hindi kailanman dapat na kailanganin para sa normal na apps."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"magdagdag o mag-alis ng admin ng device"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Pinapayagan ang may-ari na magdagdag o mag-alis ng mga aktibong administrator ng device. Hindi dapat kailanganin kailanman para sa normal na apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"baguhin ang orientation ng screen"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Nagbibigay-daan sa isang application na makinig sa mga obserbasyon sa mga kundisyon ng network. Dapat na hindi kailanman kakailanganin para sa normal na apps."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"baguhin ang pag-calibrate ng input device"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Pinapayagan ang app na baguhin ang mga parameter sa pag-calibrate ng touch screen. Hindi dapat kailanganin sa normal na apps."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"access sa Mga DRM certificate"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Nagbibigay-daan sa isang application na makapagbigay at gumamit ng mga DRM certficate. Hindi dapat kailanman kailanganin para sa mga normal na app."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Magtakda ng mga panuntunan sa password"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolin ang haba at mga character na pinapayagan sa mga password sa pag-unlock ng screen."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Subaybayan ang mga pagsubok sa pag-unlock ng screen"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Nagbibigay-daan sa isang application na i-access ang secure na storage ng keyguard."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kontrolin ang pagpapakita at pagtago sa keyguard"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Pinapayagan ang isang application na kontrolin ang keyguard."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Makinig sa mga pagbabago sa estado ng trust."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Pinapayagan ang isang application na makinig para sa mga pagbabago sa estado ng trust."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Sumailalim sa isang serbisyo ng trust agent"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Pinapayagan ang isang application na sumailalim sa isang serbisyo ng trust agent."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Makipag-ugnay sa system ng pag-update at pagbawi"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Binibigyang-daan ang isang application na makipag-ugnay sa system ng pagbawi at mga pag-update ng system."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Pindutin nang dalawang beses para sa pagkontrol ng zoom"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index dfb21f7..e78e291 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Cihazın sahibine bir widget hizmetinin en üst düzey arayüzüne bağlanma izni verir. Normal uygulamalarda hiçbir zaman gerek duyulmaz."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"bir cihaz yöneticisi ile etkileşimde bulun"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Cihazın sahibinin cihaz yöneticisine amaç göndermesine izin verir. Normal uygulamalarda hiçbir zaman gerek duyulmaz."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"cihaz yöneticisi ekle veya kaldır"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"İzin sahibine, etkin cihaz yöneticileri ekleyip kaldırma izni verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ekran yönünü değiştir"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Bir uygulamaya, ağ koşullarındaki gözlemleri dinleme izni verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"giriş cihazı kalibrasyonunu değiştir"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Uygulamaya, dokunmatik ekranın kalibrasyon parametrelerini değiştirme izni verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM sertifikalarına eriş"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Bir uygulamanın DRM sertifikaları için temel hazırlık yapmasına ve bunları kullanmasına izin verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Şifre kuralları ayarla"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Ekran kilidini açma şifrelerinde izin verilen uzunluğu ve karakterleri denetleme."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekran kilidini açma denemelerini izle"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Bir uygulamanın tuş kilitli güvenli depolamaya erişimine izin verir."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Tuş koruyucuyu görüntülemeyi ve gizlemeyi kontrol et"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Bir uygulamaya tuş koruyucuyu denetleme izni verir."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Güven durumundaki değişiklileri dinle."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Bir uygulamanın, güven durumundaki değişiklikleri dinlemesine izin verir."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Güven aracı hizmetine bağlan"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Bir uygulamanın, güven aracı hizmetine bağlanmasına izin verir."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Güncelleme ve kurtarma sistemiyle etkileşim kur"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Bir uygulamaya, kurtarma sistemi ve sistem güncellemeriyle etkileşim kurma izni verir."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Yakınlaştırma denetimi için iki kez dokunun"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 238293c..6758319 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Дозволяє власникові прив’язуватися до інтерфейсу верхнього рівня служби віджетів. Ніколи не застосовується для звичайних програм."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"взаємодіяти з адмін. пристрою"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Дозволяє власнику надсилати задавані функції адміністратору пристрою. Ніколи не застосовується для звичайних програм."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"прив’язуватися до вводу телевізора"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Дозволяє власникові прив’язуватися до інтерфейсу верхнього рівня вводу телевізора. Ніколи не застосовується для звичайних додатків."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"додавати чи вилучати адміністраторів пристрою"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Дозволяє власнику додавати чи вилучати активних адміністраторів пристрою. Ніколи не застосовується для звичайних програм."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"змінювати орієнтацію екрана"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Дозволяє програмі прослуховувати дані спостережень за станом мережі. Ніколи не застосовується для звичайних програм."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"змінювати калібрування пристрою введення"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Програма може змінювати параметри калібрування сенсорного екрана. Ніколи не застосовується для звичайних програм."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"отримувати доступ до сертифікатів DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Дозволяє додатку надавати та використовувати сертифікати DRM. Ніколи не застосовується для звичайних додатків."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Устан. правила пароля"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролювати довжину паролів для розблокування екрана та дозволені в них символи."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Відстежув. спроби розблок. екрана"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Дозволяє програмі отримувати доступ до безпечного сховища через клавіатуру."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Керувати відображенням і хованням клавіатури"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Дозволяє програмі керувати клавіатурою."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Відстежувати зміни в стані довіри."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Дозволяє додатку відстежувати зміни в стані довіри."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Прив’язуватися до служби довірчих агентів"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Дозволяє додатку прив’язуватися до служби довірчих агентів."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Взаємодіяти з оновленнями системи та системою відновлення."</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Дозволяє додатку взаємодіяти із системою відновлення й оновленнями системи."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Двічі торкніться, щоб керувати масштабом"</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index b0a617f..ea0ef68 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -323,8 +323,8 @@
     <string name="permdesc_stopAppSwitches" msgid="8262195802582255021">"Ngăn người dùng chuyển sang ứng dụng khác."</string>
     <string name="permlab_getTopActivityInfo" msgid="2537922311411546016">"truy cập thông tin ứng dụng hiện tại"</string>
     <string name="permdesc_getTopActivityInfo" msgid="2512448855496067131">"Cho phép chủ sở hữu truy xuất thông tin cá nhân về ứng dụng hiện tại ở nền trước của màn hình."</string>
-    <string name="permlab_runSetActivityWatcher" msgid="892239094867182656">"giám sát và kiểm soát tất cả hoạt động khởi chạy ứng dụng"</string>
-    <string name="permdesc_runSetActivityWatcher" msgid="6003603162578577406">"Cho phép ứng dụng giám sát và kiểm soát cách hệ thống khởi chạy các hoạt động. Ứng dụng độc hại hoàn toàn có thể làm tổn hại hệ thống. Quyền này chỉ cần cho mục đích phát triển, không dành cho mục đích sử dụng thông thường."</string>
+    <string name="permlab_runSetActivityWatcher" msgid="892239094867182656">"giám sát và kiểm soát tất cả hoạt động chạy ứng dụng"</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="6003603162578577406">"Cho phép ứng dụng giám sát và kiểm soát cách hệ thống chạy các hoạt động. Ứng dụng độc hại hoàn toàn có thể làm tổn hại hệ thống. Quyền này chỉ cần cho mục đích phát triển, không dành cho mục đích sử dụng thông thường."</string>
     <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"gửi truyền phát đã xóa của gói"</string>
     <string name="permdesc_broadcastPackageRemoved" msgid="6621901216207931089">"Cho phép ứng dụng truyền phát thông báo cho biết rằng gói ứng dụng đã bị xóa. Ứng dụng độc hại có thể sử dụng quyền này để loại bỏ bất kỳ ứng dụng nào khác đang chạy."</string>
     <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"gửi truyền phát SMS nhận được"</string>
@@ -346,7 +346,7 @@
     <string name="permlab_backup" msgid="470013022865453920">"kiểm soát sao lưu và khôi phục hệ thống"</string>
     <string name="permdesc_backup" msgid="6912230525140589891">"Cho phép ứng dụng kiểm soát cơ chế sao lưu và khôi phục của hệ thống. Không dành cho các ứng dụng thông thường."</string>
     <string name="permlab_confirm_full_backup" msgid="5557071325804469102">"xác nhận bản sao lưu đầy đủ hoặc khôi phục hoạt động"</string>
-    <string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Cho phép ứng dụng khởi chạy UI xác nhận sao lưu toàn bộ. Không dành cho bất kỳ ứng dụng nào."</string>
+    <string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Cho phép ứng dụng chạy UI xác nhận sao lưu toàn bộ. Không dành cho bất kỳ ứng dụng nào."</string>
     <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"hiển thị các cửa sổ trái phép"</string>
     <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Cho phép ứng dụng tạo các cửa sổ dùng cho giao diện người dùng hệ thống nội bộ. Không dành cho các ứng dụng thông thường."</string>
     <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"vẽ trên ứng dụng khác"</string>
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Cho phép chủ sở hữu liên kết với giao diện cấp cao nhất của dịch vụ tiện ích con. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"tương tác với quản trị viên thiết bị"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Cho phép chủ sở hữu gửi các ý định đến quản trị viên thiết bị. Không cần thiết cho các ứng dụng thông thường."</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"thêm hoặc xóa quản trị viên thiết bị"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Cho phép chủ sở hữu thêm hoặc xóa quản trị viên thiết bị đang hoạt động. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"thay đổi hướng màn hình"</string>
@@ -437,8 +441,8 @@
     <string name="permlab_writeGservices" msgid="2149426664226152185">"sửa đổi bản đồ dịch vụ của Google"</string>
     <string name="permdesc_writeGservices" msgid="1287309437638380229">"Cho phép ứng dụng sửa đổi bản đồ dịch vụ của Google. Không dành cho ứng dụng thông thường."</string>
     <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"chạy khi khởi động"</string>
-    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Cho phép ứng dụng tự khởi chạy ngay khi hệ thống khởi động xong. Quyền này có thể khiến máy tính bảng mất nhiều thời gian khởi động hơn và cho phép ứng dụng làm chậm toàn bộ máy tính bảng do ứng dụng luôn chạy."</string>
-    <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Cho phép ứng dụng tự khởi chạy ngay khi hệ thống khởi động xong. Quyền này có thể khiến điện thoại mất nhiều thời gian khởi động hơn và cho phép ứng dụng làm chậm toàn bộ điện thoại do ứng dụng luôn chạy."</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Cho phép ứng dụng tự chạy ngay khi hệ thống khởi động xong. Quyền này có thể khiến máy tính bảng mất nhiều thời gian khởi động hơn và cho phép ứng dụng làm chậm toàn bộ máy tính bảng do ứng dụng luôn chạy."</string>
+    <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Cho phép ứng dụng tự chạy ngay khi hệ thống khởi động xong. Quyền này có thể khiến điện thoại mất nhiều thời gian khởi động hơn và cho phép ứng dụng làm chậm toàn bộ điện thoại do ứng dụng luôn chạy."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"gửi truyền phát hấp dẫn người xem"</string>
     <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"Cho phép ứng dụng gửi nội dung truyền phát hấp dẫn người xem. Nội dung này sẽ vẫn còn sau khi quá trình truyền phát kết thúc. Việc sử dụng quá mức có thể làm cho máy tính bảng bị chậm hoặc không ổn định do khiến máy tính bảng sử dụng quá nhiều bộ nhớ."</string>
     <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"Cho phép ứng dụng gửi nội dung truyền phát hấp dẫn người xem. Nội dung này sẽ vẫn còn sau khi quá trình truyền phát kết thúc. Việc sử dụng quá mức có thể làm cho điện thoại bị chậm hoặc không ổn định do khiến điện thoại sử dụng quá nhiều bộ nhớ."</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Cho phép ứng dụng quan sát các điều kiện mạng. Không bao giờ cần cho ứng dụng thông thường."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"thay đổi hiệu chỉnh thiết bị đầu vào"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Cho phép ứng dụng sửa đổi các thông số hiệu chỉnh của màn hình cảm ứng. Không cần cho ứng dụng thông thường."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"truy cập chứng chỉ DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Cho phép ứng dụng cung cấp và sử dụng chứng chỉ DRM. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Đặt quy tắc mật khẩu"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kiểm soát độ dài và ký tự được phép trong mật khẩu mở khóa màn hình."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Giám sát những lần thử mở khóa màn hình"</string>
@@ -1149,7 +1155,7 @@
     <string name="webpage_unresponsive" msgid="3272758351138122503">"Trang không phản hồi.\n\nBạn có muốn đóng trang không?"</string>
     <string name="launch_warning_title" msgid="1547997780506713581">"Đã chuyển hướng ứng dụng"</string>
     <string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> hiện đang chạy."</string>
-    <string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> được khởi chạy trước tiên."</string>
+    <string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> được chạy trước tiên."</string>
     <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Tỷ lệ"</string>
     <string name="screen_compat_mode_show" msgid="4013878876486655892">"Luôn hiển thị"</string>
     <string name="screen_compat_mode_hint" msgid="1064524084543304459">"Bật lại chế độ này trong cài đặt Hệ thống &gt; Ứng dụng &gt; Đã tải xuống."</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Cho phép ứng dụng truy cập bộ nhớ an toàn khóa"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Kiểm soát việc hiển thị và ẩn tính năng bảo vệ phím"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Cho phép ứng dụng kiểm soát tính năng bảo vệ phím."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Quan sát các thay đổi ở trạng thái đáng tin cậy."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Cho phép ứng dụng quan sát các thay đổi ở trạng thái đáng tin cậy."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Liên kết với một dịch vụ của đại lý đáng tin cậy"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Cho phép ứng dụng liên kết với một dịch vụ của đại lý đáng tin cậy."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Tương tác với hệ thống khôi phục và bản cập nhật"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Cho phép ứng dụng tương tác với hệ thống khôi phục và bản cập nhật hệ thống."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Chạm hai lần để kiểm soát thu phóng"</string>
@@ -1430,7 +1440,7 @@
     <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
     <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
     <string name="activitychooserview_choose_application" msgid="2125168057199941199">"Chọn một ứng dụng"</string>
-    <string name="activitychooserview_choose_application_error" msgid="8624618365481126668">"Không thể khởi chạy <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="activitychooserview_choose_application_error" msgid="8624618365481126668">"Không thể chạy <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="shareactionprovider_share_with" msgid="806688056141131819">"Chia sẻ với"</string>
     <string name="shareactionprovider_share_with_application" msgid="5627411384638389738">"Chia sẻ với <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="content_description_sliding_handle" msgid="415975056159262248">"Tay trượt. Chạm &amp; giữ."</string>
@@ -1479,7 +1489,7 @@
     <string name="share_action_provider_share_with" msgid="5247684435979149216">"Chia sẻ với"</string>
     <string name="list_delimeter" msgid="3975117572185494152">", "</string>
     <string name="sending" msgid="3245653681008218030">"Đang gửi…"</string>
-    <string name="launchBrowserDefault" msgid="2057951947297614725">"Khởi chạy trình duyệt?"</string>
+    <string name="launchBrowserDefault" msgid="2057951947297614725">"Chạy trình duyệt?"</string>
     <string name="SetupCallDefault" msgid="5834948469253758575">"Chấp nhận cuộc gọi?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Luôn chọn"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Chỉ một lần"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 902533a..73f2b8d 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"允许应用绑定到小部件服务的顶级接口。普通应用绝不需要此权限。"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"与设备管理器交互"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"允许用户将意向发送给设备管理员。普通应用绝不需要此权限。"</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"添加或删除设备管理员"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"允许应用添加或删除有效的设备管理员。普通应用绝不需要此权限。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"更改屏幕显示方向"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"允许应用监听网络状况的观测信息。普通应用绝不需要此权限。"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"更改输入设备校准设置"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"允许应用修改触摸屏的校准参数。普通应用绝不需要此权限。"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"访问DRM证书"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"允许应用配置和使用DRM证书。普通应用绝不需要此权限。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"设置密码规则"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"控制屏幕解锁密码所允许的长度和字符。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"监视屏幕解锁尝试次数"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"允许应用访问密钥保护安全存储空间。"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"控制是显示还是隐藏锁屏"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"允许应用控制锁屏。"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"检测信任状态的变化。"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"允许应用检测信任状态的变化。"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"绑定至信任的代理服务"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"允许应用绑定至信任的代理服务。"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"与更新和恢复系统互动"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"允许应用与恢复系统和系统更新互动。"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"触摸两次可进行缩放控制"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index d189060..45f1856 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"允許應用程式繫結至小工具服務的頂層介面 (不建議一般應用程式使用)。"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"與裝置管理員互動"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"允許應用程式將調用請求傳送至裝置管理員 (不建議一般應用程式使用)。"</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"繫結至電視訊號輸入裝置"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"允許應用程式繫結至電視訊號輸入裝置的頂層介面,但一般應用程式並不需要使用。"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"新增或移除裝置管理員"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"允許應用程式新增或移除有效的裝置管理員 (不建議一般應用程式使用)。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"更改屏幕瀏覽方向"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"允許應用程式監聽對網絡狀況的觀察 (不建議一般應用程式使用)。"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"變更輸入裝置校正設定"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"允許應用程式修改觸控式螢幕的校正參數,而一般應用程式並不需要作出類似修改。"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"存取 DRM 憑證"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"允許應用程式準備和使用 DRM 憑證,但一般應用程式並不需要使用。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"設定密碼規則"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"控制屏幕解鎖密碼所允許的長度和字元。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"監控屏幕解鎖嘗試次數"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"允許應用程式存取 Keyguard 安全儲存空間。"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"控制顯示或隱藏鍵盤鎖"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"允許應用程式控制鍵盤鎖。"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"聽取信任狀態變更。"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"允許應用程式聽取信任狀態的變更。"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"繫結至信任的代理程式服務"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"允許應用程式繫結至信任的代理程式服務。"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"與更新和復原系統互動"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"允許應用程式與復原系統和系統更新互動。"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"輕觸兩下即可控制縮放"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index dcdfd28..6bf2593 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -384,6 +384,10 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"允許應用程式繫結至小工具服務的頂層介面 (一般應用程式不需使用)。"</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"與裝置管理員互動"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"允許應用程式將調用請求傳送至裝置管理員 (一般應用程式不需使用)。"</string>
+    <!-- no translation found for permlab_bindTvInput (5601264742478168987) -->
+    <skip />
+    <!-- no translation found for permdesc_bindTvInput (2371008331852001924) -->
+    <skip />
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"新增或移除裝置管理員"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"允許應用程式新增或移除有效的裝置管理員 (一般應用程式並不需要)。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"變更螢幕顯示方向"</string>
@@ -687,6 +691,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"允許應用程式監聽網路狀況觀察資訊 (一般應用程式並不需要)。"</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"變更輸入裝置校正設定"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"允許應用程式修改觸控螢幕的校正參數 (一般應用程式並不需要)。"</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"存取 DRM 憑證"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"允許應用程式佈建及使用 DRM 憑證 (一般應用程式並不需要)。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"設定密碼規則"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"控制螢幕解鎖密碼所允許的長度和字元。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"監視螢幕解鎖嘗試次數"</string>
@@ -1319,6 +1325,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"允許應用程式存取 Keyguard 安全儲存空間。"</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"控制鍵盤鎖的顯示和隱藏"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"允許應用程式控制鍵盤鎖。"</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"接聽信任狀態變更。"</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"允許應用程式接聽信任狀態變更。"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"繫結至信任的代理程式服務"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"允許應用程式繫結至信任的代理程式服務。"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"與更新和還原系統互動"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"允許應用程式與還原系統及系統更新互動。"</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"輕觸兩下即可控制縮放"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 1b12907..ccaf14c 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -384,6 +384,8 @@
     <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Ivumela umbambi ukuhlanganisa uxhumano nomsebenzisi kwezinga eliphezulu lensizakalo yesinqunjwana. Akusoze kwadingeka kwezinhlelo zokusebenza ezivamile."</string>
     <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"xhumana nomphathi wedivaysi"</string>
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ivumela ummeli ukuthumela okuqukethwe kumphathi wedivaysi. Akusoze kwadingeka kwizinhlelo zokusebenza ezivamile."</string>
+    <string name="permlab_bindTvInput" msgid="5601264742478168987">"bophezela kokokufaka kwe-TV"</string>
+    <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Ivumela umbambi ukuthi abophezele uxhumano nomsebenzisi kwezinga eliphezulu lokokufaka kwe-TV. Akumele kudingelwe izinhlelo zokusebenza ezijwayelekile."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"engeza noma susa umlawuli wedivayisi"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Ivumela umnikazi ukuthi angeze noma asuse abalawuli bedivayisi esebenzayo. Akumele idingelwe izinhlelo zokusebenza ezijwayelekile."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"shintsha ukujikeleza kwesikrini"</string>
@@ -687,6 +689,8 @@
     <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Ivumela uhlelo lokusebenza ukuthi lulalele okubonwa kuzimo zenethiwekhi. Akumele idingelwe izinhlelo zokusebenza ezijwayelekile."</string>
     <string name="permlab_setInputCalibration" msgid="4902620118878467615">"guqula ukulinganisa kokufaka kwedivayisi"</string>
     <string name="permdesc_setInputCalibration" msgid="4527511047549456929">"Ivumela uhlelo lokusebenza ukuthi lushintshe imingcele yokulinganisa yesikrini esithintwayo. Akumele idingelwe izinhlelo zokusebenza ezijwayelekile."</string>
+    <string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"finyelela izitifiketi ze-DRM"</string>
+    <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ivumela uhlelo lokusebenza ekunikezweni nokusetshenziswa kwezitifiketi ze-DRM. Akufanele kudingeke kuzinhlelo zokusebenza ezivamile."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Misa imithetho yephasiwedi"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Lawula ubude nezinhlamvu ezivunyelwe kumaphasiwedi okuvula isikrini"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gaka imizamo yokuvula isikrini"</string>
@@ -796,7 +800,7 @@
     <string name="imProtocolYahoo" msgid="8271439408469021273">"i-Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"i-Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="493902321140277304">"Ama-Hangout"</string>
+    <string name="imProtocolGoogleTalk" msgid="493902321140277304">"Hangouts"</string>
     <string name="imProtocolIcq" msgid="1574870433606517315">"i-ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"i-Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"Umhlangano we-Net"</string>
@@ -1319,6 +1323,10 @@
     <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Ivumela uhlelo lokusebenza ukuthi lufinyelele kusitoreji esiqashwa ngesikhiya esiphephile."</string>
     <string name="permlab_control_keyguard" msgid="172195184207828387">"Lawula ukubonisa nokufihla ukhiye wokuqapha"</string>
     <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Ivumela uhlelo lokusebenza ukuthi lulawule ukhiye wokuqapha."</string>
+    <string name="permlab_trust_listener" msgid="1765718054003704476">"Lalela izinguquko zesimo sokuthemba."</string>
+    <string name="permdesc_trust_listener" msgid="8233895334214716864">"Ivumela uhlelo lokusebenza ukuthi lilalelele izinguquko kusimo sethemba."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Bophezela kusevisi yomenzeli wethemba"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Ivumela uhlelo lokusebenza ukuthi libophezeleke kusevisi yomenzeli wethemba."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Ixhumana nesibuyekezo nesistimu yokutakula"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Ivumela uhlelo lokusebenza ukuthi lixhumane nesistimu yokutakula nezibuyekezo zesistimu."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Thinta kabili ukulawula ukusondeza"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 0cdaba8..f364bd0 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -245,6 +245,8 @@
 
         <!-- The preferred TextAppearance for the primary text of list items. -->
         <attr name="textAppearanceListItem" format="reference" />
+        <!-- The preferred TextAppearance for the secondary text of list items. -->
+        <attr name="textAppearanceListItemSecondary" format="reference" />
         <!-- The preferred TextAppearance for the primary text of small list items. -->
         <attr name="textAppearanceListItemSmall" format="reference" />
 
@@ -650,6 +652,8 @@
         <!-- Default ActivityChooserView style. -->
         <attr name="activityChooserViewStyle" format="reference" />
 
+        <attr name="toolbarStyle" format="reference" />
+
         <!-- Fast scroller styles -->
         <eat-comment />
 
@@ -677,8 +681,6 @@
         <!-- Action bar styles   -->
         <!-- =================== -->
         <eat-comment />
-        <!-- Theme override for the Action Bar -->
-        <attr name="actionBarTheme" format="reference" />
         <!-- Default style for tabs within an action bar -->
         <attr name="actionBarTabStyle" format="reference" />
         <attr name="actionBarTabBarStyle" format="reference" />
@@ -691,6 +693,10 @@
              buttons. actionBarStyle is still used for the primary
              bar. -->
         <attr name="actionBarSplitStyle" format="reference" />
+        <!-- Reference to a theme that should be used to inflate the
+             action bar. This will be inherited by any widget inflated
+             into the action bar. -->
+        <attr name="actionBarTheme" format="reference" />
         <!-- Reference to a theme that should be used to inflate widgets
              and layouts destined for the action bar. Most of the time
              this will be a reference to the current theme, but when
@@ -913,8 +919,14 @@
         <!-- ============= -->
         <!-- Color palette -->
         <!-- ============= -->
+        <attr name="colorPrimaryDark" format="color" />
+        <attr name="colorPrimary" format="color" />
+        <attr name="colorPrimaryLight" format="color" />
+        <attr name="colorAccent" format="color" />
+
         <attr name="colorControlNormal" format="color" />
         <attr name="colorControlActivated" format="color" />
+
         <attr name="colorButtonNormal" format="color" />
         <attr name="colorButtonPressed" format="color" />
         <attr name="colorButtonNormalColored" format="color" />
@@ -1677,6 +1689,7 @@
              that is, when in portrait. Can be either an absolute dimension
              or a fraction of the screen size in that dimension. -->
         <attr name="windowFixedHeightMajor" format="dimension|fraction" />
+        <attr name="windowOutsetBottom" format="dimension" />
     </declare-styleable>
 
     <!-- The set of attributes that describe a AlertDialog's theme. -->
@@ -4398,14 +4411,23 @@
         <!-- When a tint color is set, specifies its Porter-Duff blending mode. The
              default value is src_in, which treats the drawable as an alpha mask. -->
         <attr name="tintMode">
-            <!-- [Sa * Da, Sc * Da] -->
-            <enum name="src_in" value="0" />
-            <!-- [Da, Sc * Da + (1 - Sa) * Dc] -->
-            <enum name="src_atop" value="1" />
-            <!-- [Sa * Da, Sc * Dc] -->
-            <enum name="multiply" value="2" />
+            <!-- The tint is drawn on top of the drawable.
+                 [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] -->
+            <enum name="src_over" value="3" />
+            <!-- The tint is masked by the alpha channel of the drawable. The drawable’s
+                 color channels are thrown out. [Sa * Da, Sc * Da] -->
+            <enum name="src_in" value="5" />
+            <!-- The tint is drawn above the drawable, but with the drawable’s alpha
+                 channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc] -->
+            <enum name="src_atop" value="9" />
+            <!-- Multiplies the color and alpha channels of the drawable with those of
+                 the tint. [Sa * Da, Sc * Dc] -->
+            <enum name="multiply" value="14" />
             <!-- [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] -->
-            <enum name="screen" value="3" />
+            <enum name="screen" value="15" />
+            <!-- Combines the tint and drawable color and alpha channels, clamping the
+                 result to valid color values. Saturate(S + D) -->
+            <enum name="add" value="16" />
         </attr>
     </declare-styleable>
 
@@ -4436,16 +4458,12 @@
 
     <!-- Drawable used to show animated touch feedback. -->
     <declare-styleable name="TouchFeedbackDrawable">
-        <!-- The tint to use for feedback ripples. This attribute is mandatory. -->
+        <!-- The tint to use for feedback ripples. This attribute is required. -->
         <attr name="tint" />
         <!-- Specifies the Porter-Duff blending mode used to apply the tint. The default vlaue is src_atop, which draws over the opaque parts of the drawable. -->
         <attr name="tintMode" />
         <!-- Whether to pin feedback ripples to the center of the drawable. Default value is false. -->
         <attr name="pinned" format="boolean" />
-        <!-- Optional drawable used to mask ripple bounds before projection. -->
-        <attr name="mask" format="reference" />
-        <!-- Optional drawable onto which ripples are projected. -->
-        <attr name="drawable" />
     </declare-styleable>
 
     <declare-styleable name="ScaleDrawable">
@@ -4541,6 +4559,146 @@
     </declare-styleable>
 
     <!-- ========================== -->
+    <!--   Vector drawable class   -->
+    <!-- ========================== -->
+    <eat-comment />
+
+    <!-- Drawable used to draw Vector Drawables. -->
+    <declare-styleable name="VectorDrawable">
+           <!-- What event triggers the animation -->
+        <attr name="trigger" format="enum">
+            <enum name="state_pressed" value="1" />
+            <enum name="state_focused" value="2" />
+            <enum name="state_hovered" value="3" />
+            <enum name="state_selected" value="4" />
+            <enum name="state_checkable" value="5" />
+            <enum name="state_checked" value="6" />
+            <enum name="state_enabled" value="7" />
+            <enum name="state_activated" value="8" />
+            <enum name="state_window_focused" value="9" />
+        </attr>
+        <attr name="versionCode" />
+    </declare-styleable>
+
+    <!-- Define the virtual size of the drawing surface paths will draw to. -->
+    <declare-styleable name="VectorDrawableViewport">
+        <!-- The width of the canvas the drawing is on. -->
+        <attr name="viewportWidth" format="float"/>
+        <!-- The height of the canvas the drawing is on. -->
+        <attr name="viewportHeight" format="float"/>
+    </declare-styleable>
+
+    <!-- Define the size of the drawable -->
+    <declare-styleable name="VectorDrawableSize">
+        <!-- Width of the Vector Drawable. -->
+        <attr name="width" />
+        <!-- Height of the Vector Drawable. -->
+        <attr name="height" />
+    </declare-styleable>
+
+    <!-- Define the animations of drawable -->
+    <declare-styleable name="VectorDrawableAnimation">
+        <!-- Configures this animation sequence between the named paths  -->
+        <attr name="sequence" format="string"/>
+        <!-- Limits an animation to only interpolate the selected variable  -->
+        <attr name="limitTo" format="enum">
+            <enum name="unlimited" value="0"/>
+            <enum name="path" value="1"/>
+            <enum name="rotation" value="2"/>
+            <enum name="trimPathStart" value="3"/>
+            <enum name="trimPathEnd" value="4"/>
+            <enum name="trimPathOffset" value="5"/>
+        </attr>
+        <!-- Number of times to loop this aspect of the animation -->
+        <attr name="repeatCount"/>
+        <!-- A list of times in milliseconds to transision from on path to another.
+         List must contain one less than the number of named paths
+         e.g. given sequence="A,B,C,D" durations="100,0,100" implies 100ms for the
+         "A" to "B" transision instantanious switch to "C" and 100ms for "C" to "D". -->
+        <attr name="durations" format="string" />
+        <!-- The delay before stating this aspect of the animation in milli seconds -->
+        <attr name="startDelay" />
+        <!-- when repeating how does it repeat back and forth or a to b -->
+        <attr name="repeatStyle" format="enum">
+            <enum name="forward"  value="0"/>
+            <enum name="reverse"  value="1"/>[]
+        </attr>
+        <!-- how does the animation progress from start to finish -->
+        <attr name="animate" format="enum">
+            <enum name="linear"  value="0"/>
+            <enum name="easeIn"  value="1"/>
+            <enum name="easeOut"  value="2"/>
+            <enum name="easeInOut"  value="3"/>
+        </attr>
+    </declare-styleable>
+
+    <!-- Defines the path used in Vector Drawables. -->
+    <declare-styleable name="VectorDrawablePath">
+        <!-- The Name of this path -->
+        <attr name="name" />
+        <!-- The width a path stroke -->
+        <attr name="strokeWidth" format="float" />
+        <!-- The opacity of a path stroke -->
+        <attr name="strokeOpacity" format="float" />
+        <!-- The amount to rotate the path stroke -->
+        <attr name="rotation" />
+        <!-- The X coordinate of the center of rotation of a path -->
+        <attr name="pivotX" />
+        <!-- The Y coordinate of the center of rotation of a path -->
+        <attr name="pivotY" />
+        <!-- The color to stroke the path if not defined implies no stroke-->
+        <attr name="stroke" format="color" />
+        <!-- The color to fill the path if not defined implies no fill-->
+        <attr name="fill" format="color" />
+        <!-- The level of opacity of the filled area of the path -->
+        <attr name="fillOpacity" format="float" />
+        <!-- The specification of the operations that define the path  -->
+        <attr name="pathData" format="string" />
+        <!-- The fraction of the path to trim from the start from 0 to 1 -->
+        <attr name="trimPathStart" format="float" />
+        <!-- The fraction of the path to trim from the end from 0 to 1  -->
+        <attr name="trimPathEnd" format="float" />
+        <!-- Shift trim region (allows visible region to include the start and end) from 0 to 1  -->
+        <attr name="trimPathOffset" format="float" />
+        <!-- Path will set the current clip path -->
+        <attr name="clipToPath" format="boolean" />
+        <!-- sets the linecap for a stroked path -->
+        <attr name="strokeLineCap" format="enum">
+            <enum name="butt" value="0"/>
+            <enum name="round" value="1"/>
+            <enum name="square" value="2"/>
+        </attr>
+        <!-- sets the lineJoin for a stroked path -->
+        <attr name="strokeLineJoin" format="enum">
+            <enum name="miter" value="0"/>
+            <enum name="round" value="1"/>
+            <enum name="bevel" value="2"/>
+        </attr>
+        <!-- sets the Miter limit for a stroked path -->
+        <attr name="strokeMiterLimit" format="float"/>
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_pressed" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_focused" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_selected" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_window_focused" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_enabled" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_activated" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_accelerated" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_hovered" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_checked" />
+        <!-- sets a condition to be met to draw path -->
+        <attr name="state_checkable" />
+    </declare-styleable>
+
+    <!-- ========================== -->
     <!-- Animation class attributes -->
     <!-- ========================== -->
     <eat-comment />
@@ -4754,6 +4912,24 @@
         </attr>
     </declare-styleable>
 
+    <!-- Use <code>slide</code>as the root tag of the XML resource that
+         describes a {@link android.transition.Slide Slide} transition.
+         The attributes of the {@link android.R.styleable#Transition Transition}
+         resource are available in addition to the specific attributes of Slide
+         described here. -->
+    <declare-styleable name="Slide">
+        <attr name="slideEdge">
+            <!-- Slide to and from the bottom edge of the Scene. -->
+            <enum name="left" value="0" />
+            <!-- Slide to and from the bottom edge of the Scene. -->
+            <enum name="top" value="1" />
+            <!-- Slide to and from the bottom edge of the Scene. -->
+            <enum name="right" value="2" />
+            <!-- Slide to and from the bottom edge of the Scene. -->
+            <enum name="bottom" value="3" />
+        </attr>
+    </declare-styleable>
+
     <!-- Use <code>target</code> as the root tag of the XML resource that
      describes a {@link android.transition.Transition#addTarget(int)
      targetId} of a transition. There can be one or more targets inside
@@ -5790,6 +5966,16 @@
         <attr name="settingsActivity" />
     </declare-styleable>
 
+    <!-- Use <code>trust_agent</code> as the root tag of the XML resource that
+         describes an {@link android.service.trust.TrustAgentService}, which is
+         referenced from its {@link android.service.trust.TrustAgentService#TRUST_AGENT_META_DATA}
+         meta-data entry.  Described here are the attributes that can be included in that tag. -->
+    <declare-styleable name="TrustAgent">
+        <!-- Component name of an activity that allows the user to modify
+             the settings for this TrustAgent. -->
+        <attr name="settingsActivity" />
+    </declare-styleable>
+
     <!-- =============================== -->
     <!-- Accounts package class attributes -->
     <!-- =============================== -->
@@ -5898,16 +6084,16 @@
     <eat-comment />
     <declare-styleable name="GlowPadView">
         <!-- Reference to an array resource that be shown as targets around a circle. -->
-        <attr name="targetDrawables"/>
+        <attr name="targetDrawables" format="reference" />
 
         <!-- Reference to an array resource that be used as description for the targets around the circle. -->
-        <attr name="targetDescriptions"/>
+        <attr name="targetDescriptions" format="reference" />
 
         <!-- Reference to an array resource that be used to announce the directions with targets around the circle. -->
-        <attr name="directionDescriptions"/>
+        <attr name="directionDescriptions" format="reference" />
 
         <!-- Sets a drawable as the center. -->
-        <attr name="handleDrawable"/>
+        <attr name="handleDrawable" format="reference" />
 
         <!-- Drawable to use for wave ripple animation. -->
         <attr name="outerRingDrawable" format="reference"/>
@@ -5919,22 +6105,22 @@
         <attr name="innerRadius"/>
 
         <!-- Outer radius of glow area. Target icons will be drawn on this circle. -->
-        <attr name="outerRadius"/>
+        <attr name="outerRadius" format="dimension" />
 
         <!-- Radius of glow under finger. -->
         <attr name="glowRadius" format="dimension" />
 
         <!-- Tactile feedback duration for actions. Set to '0' for no vibration. -->
-        <attr name="vibrationDuration"/>
+        <attr name="vibrationDuration" format="integer" />
 
         <!-- How close we need to be before snapping to a target. -->
-        <attr name="snapMargin"/>
+        <attr name="snapMargin" format="dimension" />
 
         <!-- Number of waves/chevrons to show in animation. -->
-        <attr name="feedbackCount"/>
+        <attr name="feedbackCount" format="integer" />
 
         <!-- Used when the handle shouldn't wait to be hit before following the finger -->
-        <attr name="alwaysTrackFinger"/>
+        <attr name="alwaysTrackFinger" format="boolean" />
 
         <!-- Location along the circle of the first item, in degrees.-->
         <attr name="firstItemOffset" format="float" />
@@ -5951,45 +6137,6 @@
     </declare-styleable>
 
     <!-- =============================== -->
-    <!-- MultiWaveView class attributes -->
-    <!-- =============================== -->
-    <eat-comment />
-    <declare-styleable name="MultiWaveView">
-        <!-- Reference to an array resource that be shown as targets around a circle. -->
-        <attr name="targetDrawables" format="reference"/>
-
-        <!-- Reference to an array resource that be used as description for the targets around the circle. -->
-        <attr name="targetDescriptions" format="reference"/>
-
-        <!-- Reference to an array resource that be used to announce the directions with targets around the circle. -->
-        <attr name="directionDescriptions" format="reference"/>
-
-        <!-- Sets a drawable as the drag center. -->
-        <attr name="handleDrawable" format="reference" />
-
-        <!-- Drawables to use for chevron animations. May be null. -->
-        <attr name="chevronDrawables" format="reference"/>
-
-        <!-- Drawable to use for wave ripple animation. -->
-        <attr name="waveDrawable" format="reference" />
-
-        <!-- Outer radius of target circle. Icons will be drawn on this circle. -->
-        <attr name="outerRadius" format="dimension" />
-
-        <!-- Tactile feedback duration for actions. Set to '0' for no vibration. -->
-        <attr name="vibrationDuration" format="integer"/>
-
-        <!-- How close we need to be before snapping to a target. -->
-        <attr name="snapMargin" format="dimension" />
-
-        <!-- Number of waves/chevrons to show in animation. -->
-        <attr name="feedbackCount" format="integer" />
-
-        <!-- Used when the handle shouldn't wait to be hit before following the finger -->
-        <attr name="alwaysTrackFinger" format="boolean" />
-    </declare-styleable>
-
-    <!-- =============================== -->
     <!-- SizeAdaptiveLayout class attributes -->
     <!-- =============================== -->
     <eat-comment />
@@ -6032,6 +6179,8 @@
         <!-- Aspect to use when drawing LockPatternView. Choices are "square"(default), "lock_width"
              or "lock_height" -->
         <attr name="aspect" format="string" />
+        <!-- Color to use when drawing LockPatternView paths. -->
+        <attr name="pathColor" format="color|reference" />
     </declare-styleable>
 
     <!-- Use <code>recognition-service</code> as the root tag of the XML resource that
@@ -6127,10 +6276,6 @@
         <attr name="inputType" />
     </declare-styleable>
 
-    <declare-styleable name="ActionBar_LayoutParams">
-        <attr name="layout_gravity" />
-    </declare-styleable>
-
     <declare-styleable name="Switch">
         <!-- Drawable to use as the "thumb" that switches back and forth. -->
         <attr name="thumb" />
@@ -6339,4 +6484,25 @@
         <attr name="textView" format="reference" />
     </declare-styleable>
 
+    <declare-styleable name="Toolbar">
+        <attr name="titleTextAppearance" format="reference" />
+        <attr name="subtitleTextAppearance" format="reference" />
+        <attr name="title" />
+        <attr name="subtitle" />
+        <attr name="gravity" />
+        <attr name="titleMargins" format="dimension" />
+        <attr name="titleMarginStart" format="dimension" />
+        <attr name="titleMarginEnd" format="dimension" />
+        <attr name="titleMarginTop" format="dimension" />
+        <attr name="titleMarginBottom" format="dimension" />
+    </declare-styleable>
+
+    <declare-styleable name="Toolbar_LayoutParams">
+        <attr name="layout_gravity" />
+    </declare-styleable>
+
+    <declare-styleable name="ActionBar_LayoutParams">
+        <attr name="layout_gravity" />
+    </declare-styleable>
+
 </resources>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 39b8a6b..b14453a 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -866,6 +866,18 @@
     <!-- The name of the logical parent of the activity as it appears in the manifest. -->
     <attr name="parentActivityName" format="string" />
 
+    <!-- Define an activity that will persist across reboots. If such an activity is in the
+         Recents list when the device is shut off it will appear in the Recents list when
+         the device is next powered on. To be persisted all activities in the task from the
+         root activity up to the last activity before a <em>break</em> must be declared with
+         the persistable attribute. A <em>break</em> is the first activity after the root
+         started with Intent.FLAG_CLEAR_TASK_WHEN_RESET.
+
+         <p>Activities that are declared with the persistable attribute will be provided with a
+         forced-persistable Bundle in onCreate() and onSavedInstanceState(), and must only
+         be passed a persistable Bundle in their Intent.extras. -->
+    <attr name="persistable" format="boolean" />
+
     <!-- The <code>manifest</code> tag is the root of an
          <code>AndroidManifest.xml</code> file,
          describing the contents of an Android package (.apk) file.  One
@@ -1528,6 +1540,7 @@
         <!-- @hide This broacast receiver will only receive broadcasts for the
              primary user.  Can only be used with receivers. -->
         <attr name="primaryUserOnly" format="boolean" />
+        <attr name="persistable" />
     </declare-styleable>
     
     <!-- The <code>activity-alias</code> tag declares a new
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 1947c50..d0c455b 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -193,6 +193,9 @@
     <drawable name="notification_template_icon_bg">#3333B5E5</drawable>
     <drawable name="notification_template_icon_low_bg">#0cffffff</drawable>
 
+    <color name="notification_icon_legacy_bg_color">#ff4285F4</color>
+    <color name="notification_action_legacy_color_filter">#ff555555</color>
+
     <!-- Keyguard colors -->
     <color name="keyguard_avatar_frame_color">#ffffffff</color>
     <color name="keyguard_avatar_frame_shadow_color">#80000000</color>
diff --git a/core/res/res/values/colors_quantum.xml b/core/res/res/values/colors_quantum.xml
index d10f7c0..ebe4a49 100644
--- a/core/res/res/values/colors_quantum.xml
+++ b/core/res/res/values/colors_quantum.xml
@@ -16,16 +16,14 @@
 
 <resources>
     <color name="background_quantum_dark">@color/black</color>
-    <color name="background_quantum_light">@color/quantum_grey_50</color>
-    <color name="secondary_background_quantum_dark">@color/quantum_grey_700</color>
-    <color name="secondary_background_quantum_light">@color/quantum_grey_100</color>
+    <color name="background_quantum_light">@color/white</color>
 
     <color name="bright_foreground_quantum_dark">@color/background_quantum_light</color>
     <color name="bright_foreground_quantum_light">@color/background_quantum_dark</color>
     <!-- TODO: This is 50% alpha black -->
     <color name="bright_foreground_disabled_quantum_dark">#80000000</color>
-    <!-- TODO: This is 50% alpha grey_50 -->
-    <color name="bright_foreground_disabled_quantum_light">#80fafafa</color>
+    <!-- TODO: This is 50% alpha white -->
+    <color name="bright_foreground_disabled_quantum_light">#80ffffff</color>
     <color name="bright_foreground_inverse_quantum_dark">@color/bright_foreground_quantum_light</color>
     <color name="bright_foreground_inverse_quantum_light">@color/bright_foreground_quantum_dark</color>
 
@@ -34,41 +32,13 @@
     <color name="dim_foreground_disabled_quantum_dark">#80bebebe</color>
     <color name="dim_foreground_disabled_quantum_light">#80323232</color>
 
-    <!-- TODO: These should be theme attributes. -->
-    <color name="control_normal_foreground_quantum_light">@color/secondary_text_quantum_light</color>
-    <color name="control_activated_foreground_quantum_light">@color/quantum_teal_700</color>
-
-    <!-- TODO: These should be theme attributes. -->
-    <color name="control_normal_foreground_quantum_dark">@color/secondary_text_quantum_dark</color>
-    <color name="control_activated_foreground_quantum_dark">@color/quantum_lime_A200</color>
-
-    <!-- TODO: These should be theme attributes. -->
-    <color name="btn_default_normal_quantum_light">@color/quantum_grey_300</color>
-    <color name="btn_default_pressed_quantum_light">@color/quantum_grey_500</color>
-
-    <!-- TODO: These should be theme attributes. -->
-    <color name="btn_default_normal_quantum_dark">@color/quantum_grey_700</color>
-    <color name="btn_default_pressed_quantum_dark">@color/quantum_grey_500</color>
-
     <color name="hint_foreground_quantum_dark">@color/bright_foreground_disabled_quantum_dark</color>
     <color name="hint_foreground_quantum_light">@color/bright_foreground_disabled_quantum_light</color>
-    <!-- TODO: This is 40% alpha lime_A200 -->
-    <color name="highlighted_text_quantum_dark">#66eeff41</color>
-    <!-- TODO: This is 40% alpha teal_700 -->
+    <!-- TODO: This is 40% alpha teal_A200 -->
+    <color name="highlighted_text_quantum_dark">#660097a7</color>
+    <!-- TODO: This is 40% alpha teal_A200 -->
     <color name="highlighted_text_quantum_light">#660097a7</color>
 
-    <!-- TODO: These should all be pushed into a TimePicker widget style. -->
-    <color name="timepicker_default_background_quantum_dark">@color/background_quantum_dark</color>
-    <color name="timepicker_default_background_quantum_light">@color/background_quantum_light</color>
-    <color name="timepicker_default_text_color_quantum_dark">@color/bright_foreground_quantum_dark</color>
-    <color name="timepicker_default_text_color_quantum_light">@color/bright_foreground_quantum_light</color>
-    <color name="timepicker_default_disabled_color_quantum_dark">@color/bright_foreground_disabled_quantum_dark</color>
-    <color name="timepicker_default_disabled_color_quantum_light">@color/bright_foreground_disabled_quantum_light</color>
-    <color name="timepicker_default_ampm_selected_background_color_quantum_dark">@color/control_activated_foreground_quantum_dark</color>
-    <color name="timepicker_default_ampm_selected_background_color_quantum_light">@color/control_activated_foreground_quantum_light</color>
-    <color name="timepicker_default_ampm_unselected_background_color_quantum_dark">@color/transparent</color>
-    <color name="timepicker_default_ampm_unselected_background_color_quantum_light">@color/white</color>
-
     <!-- Primary & accent colors -->
 
     <color name="quantum_red_100">#fff4c7c3</color>
@@ -155,10 +125,4 @@
     <color name="primary_text_quantum_dark">#deffffff</color>
     <color name="secondary_text_quantum_dark">#8affffff</color>
     <color name="tertiary_text_quantum_dark">#4dffffff</color>
-
-    <!-- "Theme" colors to be replaced by attrs when available -->
-    <color name="theme_color_100">@color/quantum_teal_100</color>
-    <color name="theme_color_300">@color/quantum_teal_300</color>
-    <color name="theme_color_500">@color/quantum_teal_500</color>
-    <color name="theme_color_700">@color/quantum_teal_700</color>
 </resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 4656f32..d5e78a5 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -467,6 +467,7 @@
              1  UI_MODE_TYPE_NORMAL
              4  UI_MODE_TYPE_TELEVISION
              5  UI_MODE_TYPE_APPLIANCE
+             6  UI_MODE_TYPE_WATCH
          Any other values will have surprising consequences. -->
     <integer name="config_defaultUiModeType">1</integer>
 
@@ -950,7 +951,7 @@
     <!-- Max space (in MB) allocated to DownloadManager to store the downloaded
          files if they are to be stored in DownloadManager's data dir,
          which typically is /data/data/com.android.providers.downloads/files -->
-    <integer name="config_downloadDataDirSize">100</integer>
+    <integer name="config_downloadDataDirSize">200</integer>
 
     <!-- Max number of downloads allowed to proceed concurrently -->
     <integer name="config_MaxConcurrentDownloadsAllowed">5</integer>
@@ -1339,6 +1340,12 @@
          Example: com.google.android.myapp/.resolver.MyResolverActivity  -->
     <string name="config_customResolverActivity"></string>
 
+    <!-- Name of the activity that prompts the user to reject, accept, or whitelist
+         an adb host's public key, when an unwhitelisted host connects to the local adbd.
+         Can be customized for other product types -->
+    <string name="config_customAdbPublicKeyActivity"
+            >com.android.systemui/com.android.systemui.usb.UsbDebuggingActivity</string>
+
     <!-- Apps that are authorized to access shared accounts, overridden by product overlays -->
     <string name="config_appsAuthorizedForSharedAccounts">;com.android.settings;</string>
 
@@ -1363,7 +1370,7 @@
     </string-array>
 
     <string-array name="config_notificationScorers">
-        <item>com.android.internal.notification.DemoContactNotificationScorer</item>
+        <item>com.android.internal.notification.PeopleNotificationScorer</item>
     </string-array>
 
     <!-- Flag indicating that this device does not rotate and will always remain in its default
@@ -1421,4 +1428,5 @@
          1 - The device DOES have a permanent menu key; ignore autodetection.
          2 - The device DOES NOT have a permanent menu key; ignore autodetection. -->
     <integer name="config_overrideHasPermanentMenuKey">0</integer>
+
 </resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 8ec2e6f..6b2c788 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -201,7 +201,7 @@
     <dimen name="textview_error_popup_default_width">240dip</dimen>
 
     <!-- Volume panel y offset -->
-    <dimen name="volume_panel_top">80dp</dimen>
+    <dimen name="volume_panel_top">16dp</dimen>
 
     <!-- Default padding to apply to AppWidgetHostViews containing widgets targeting API level 14 and up. -->
     <dimen name="default_app_widget_padding_left">8dp</dimen>
@@ -366,4 +366,7 @@
     <!-- width of ImmersiveModeConfirmation (-1 for match_parent) -->
     <dimen name="immersive_mode_cling_width">-1px</dimen>
 
+    <!-- radius of the corners of the quantum rounded rect background -->
+    <dimen name="notification_quantum_rounded_rect_radius">2dp</dimen>
+
 </resources>
diff --git a/core/res/res/values/dimens_quantum.xml b/core/res/res/values/dimens_quantum.xml
index 3913752..02e61e2 100644
--- a/core/res/res/values/dimens_quantum.xml
+++ b/core/res/res/values/dimens_quantum.xml
@@ -17,6 +17,8 @@
 
     <!-- Default height of an action bar. -->
     <dimen name="action_bar_default_height_quantum">56dp</dimen>
+    <!-- Default padding of an action bar. -->
+    <dimen name="action_bar_default_padding_quantum">4dp</dimen>
     <!-- Vertical padding around action bar icons. -->
     <dimen name="action_bar_icon_vertical_padding_quantum">16dp</dimen>
     <!-- Text size for action bar titles -->
@@ -28,6 +30,10 @@
     <!-- Bottom margin for action bar subtitles -->
     <dimen name="action_bar_subtitle_bottom_margin_quantum">5dp</dimen>
 
+    <dimen name="action_button_min_width_quantum">48dp</dimen>
+    <dimen name="action_button_min_height_quantum">48dp</dimen>
+    <dimen name="action_overflow_min_width_quantum">36dp</dimen>
+
     <dimen name="text_size_display_4_quantum">112sp</dimen>
     <dimen name="text_size_display_3_quantum">56sp</dimen>
     <dimen name="text_size_display_2_quantum">45sp</dimen>
diff --git a/core/res/res/values/ids.xml b/core/res/res/values/ids.xml
index 56bb15f..a79e1fe 100644
--- a/core/res/res/values/ids.xml
+++ b/core/res/res/values/ids.xml
@@ -83,4 +83,5 @@
   <item type="id" name="current_scene" />
   <item type="id" name="scene_layoutid_cache" />
   <item type="id" name="shared_element_name" />
+  <item type="id" name="mask" />
 </resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index d0dadf3..32b674e 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2101,6 +2101,8 @@
      =============================================================== -->
   <eat-comment />
 
+  <public-padding type="attr" name="l_resource_pad" end="0x1010410" />
+
   <public type="attr" name="fragmentBreadCrumbsStyle" />
   <public type="attr" name="fastScrollStyle" />
   <public type="attr" name="windowContentTransitions" />
@@ -2113,6 +2115,26 @@
   <public type="attr" name="controlY2" />
   <public type="attr" name="sharedElementName" />
   <public type="attr" name="transitionGroup" />
+  <public type="attr" name="trigger" />
+  <public type="attr" name="viewportWidth" />
+  <public type="attr" name="viewportHeight" />
+  <public type="attr" name="fillOpacity" />
+  <public type="attr" name="fill" />
+  <public type="attr" name="pathData" />
+  <public type="attr" name="stroke" />
+  <public type="attr" name="strokeOpacity" />
+  <public type="attr" name="strokeWidth" />
+  <public type="attr" name="durations" />
+  <public type="attr" name="sequence" />
+  <public type="attr" name="repeatStyle" />
+  <public type="attr" name="trimPathStart" />
+  <public type="attr" name="trimPathEnd" />
+  <public type="attr" name="trimPathOffset" />
+  <public type="attr" name="strokeLineCap" />
+  <public type="attr" name="strokeLineJoin" />
+  <public type="attr" name="clipToPath" />
+  <public type="attr" name="animate" />
+  <public type="attr" name="limitTo" />
   <public type="attr" name="requiredForProfile"/>
   <public type="attr" name="pinned" />
   <public type="attr" name="colorControlNormal" />
@@ -2121,11 +2143,28 @@
   <public type="attr" name="colorButtonPressed" />
   <public type="attr" name="colorButtonNormalColored" />
   <public type="attr" name="colorButtonPressedColored" />
+  <public type="attr" name="persistable" />
+  <public type="attr" name="titleTextAppearance" />
+  <public type="attr" name="subtitleTextAppearance" />
+  <public type="attr" name="slideEdge" />
+  <public type="attr" name="actionBarTheme" />
+  <public type="attr" name="textAppearanceListItemSecondary" />
+  <public type="attr" name="colorPrimaryLight" />
+  <public type="attr" name="colorPrimary" />
+  <public type="attr" name="colorPrimaryDark" />
+  <public type="attr" name="colorAccent" />
+
+  <public-padding type="dimen" name="l_resource_pad" end="0x01050010" />
 
   <public type="dimen" name="recents_thumbnail_height" />
   <public type="dimen" name="recents_thumbnail_width" />
 
+  <public-padding type="id" name="l_resource_pad" end="0x01020040" />
+
   <public type="id" name="shared_element_name" />
+  <public type="id" name="mask" />
+
+  <public-padding type="style" name="l_resource_pad" end="0x01030200" />
 
   <public type="style" name="Widget.Holo.FragmentBreadCrumbs" />
   <public type="style" name="Widget.Holo.Light.FragmentBreadCrumbs" />
@@ -2153,9 +2192,13 @@
   <public type="style" name="TextAppearance.Quantum.Widget" />
   <public type="style" name="TextAppearance.Quantum.Widget.ActionBar.Menu" />
   <public type="style" name="TextAppearance.Quantum.Widget.ActionBar.Subtitle" />
+  <public type="style" name="TextAppearance.Quantum.Widget.ActionBar.Subtitle.Inverse" />
   <public type="style" name="TextAppearance.Quantum.Widget.ActionBar.Title" />
+  <public type="style" name="TextAppearance.Quantum.Widget.ActionBar.Title.Inverse" />
   <public type="style" name="TextAppearance.Quantum.Widget.ActionMode.Subtitle" />
+  <public type="style" name="TextAppearance.Quantum.Widget.ActionMode.Subtitle.Inverse" />
   <public type="style" name="TextAppearance.Quantum.Widget.ActionMode.Title" />
+  <public type="style" name="TextAppearance.Quantum.Widget.ActionMode.Title.Inverse" />
   <public type="style" name="TextAppearance.Quantum.Widget.Button" />
   <public type="style" name="TextAppearance.Quantum.Widget.DropDownHint" />
   <public type="style" name="TextAppearance.Quantum.Widget.DropDownItem" />
@@ -2324,4 +2367,26 @@
 
   <public type="style" name="Widget.Quantum.Light.Button.Paper" />
   <public type="style" name="Widget.Quantum.Light.Button.Paper.Color" />
+
+  <public type="style" name="TextAppearance.Quantum.Display4" />
+  <public type="style" name="TextAppearance.Quantum.Display3" />
+  <public type="style" name="TextAppearance.Quantum.Display2" />
+  <public type="style" name="TextAppearance.Quantum.Display1" />
+  <public type="style" name="TextAppearance.Quantum.Headline" />
+  <public type="style" name="TextAppearance.Quantum.Title" />
+  <public type="style" name="TextAppearance.Quantum.Subhead" />
+  <public type="style" name="TextAppearance.Quantum.Body2" />
+  <public type="style" name="TextAppearance.Quantum.Body1" />
+  <public type="style" name="TextAppearance.Quantum.Caption" />
+  <public type="style" name="TextAppearance.Quantum.Menu" />
+  <public type="style" name="TextAppearance.Quantum.Button" />
+
+  <public type="style" name="Widget.Holo.Light.Button.Borderless" />
+
+  <!-- An interpolator which accelerates fast but decelerates slowly. -->
+  <public type="interpolator" name="fast_out_slow_in" />
+  <!-- An interpolator which starts with a peak non-zero velocity and decelerates slowly. -->
+  <public type="interpolator" name="linear_out_slow_in" />
+  <!-- An interpolator which accelerates fast and keeps accelerating until the end. -->
+  <public type="interpolator" name="fast_out_linear_in" />
 </resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 0699e8b..35f761b 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -278,6 +278,8 @@
     <!-- If MMS discovers there isn't much space left on the device, it will show a toast with this message. -->
     <string name="low_memory" product="tablet">Tablet storage is full. Delete some files to free space.</string>
     <!-- If MMS discovers there isn't much space left on the device, it will show a toast with this message. -->
+    <string name="low_memory" product="watch">Watch storage is full. Delete some files to free space.</string>
+    <!-- If MMS discovers there isn't much space left on the device, it will show a toast with this message. -->
     <string name="low_memory" product="default">Phone storage is full. Delete some files to free space.</string>
 
     <!-- SSL CA cert notification --> <skip />
@@ -324,6 +326,9 @@
     <!-- Shutdown Confirmation Dialog.  When the user chooses to power off the phone, there will
          be a confirmation dialog.  This is the message. -->
     <string name="shutdown_confirm" product="tablet">Your tablet will shut down.</string>
+    <!-- Shutdown Confirmation Dialog.  When the user chooses to power off the watch, there will
+         be a confirmation dialog.  This is the message. -->
+    <string name="shutdown_confirm" product="watch">Your watch will shut down.</string>
     <!-- Shutdown Confirmation Dialog.  When the user chooses to power off the phone, there will
          be a confirmation dialog.  This is the message. -->
     <string name="shutdown_confirm" product="default">Your phone will shut down.</string>
@@ -830,6 +835,20 @@
          user consent.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_retrieveWindowToken">retrieve window token</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_retrieveWindowToken">Allows an application to retrieve
+        the window token. Malicious apps may perfrom unauthorized interaction with
+        the application window impersonating the system.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_frameStats">retrieve frame statistics</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_frameStats">Allows an application to collect
+        frame statistics. Malicious apps may observe the frame statistics
+        of windows from other apps.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_filter_events">filter events</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_filter_events">Allows an application to register an input filter
@@ -1056,6 +1075,12 @@
         a device administrator. Should never be needed for normal apps.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_bindTvInput">bind to a TV input</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_bindTvInput">Allows the holder to bind to the top-level
+        interface of a TV input. Should never be needed for normal apps.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_manageDeviceAdmins">add or remove a device admin</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_manageDeviceAdmins">Allows the holder to add or remove active device
@@ -1323,6 +1348,14 @@
       as your name and contact information.  This means the app can identify you
       and may send your profile information to others.</string>
 
+    <!-- Title of the body sensors permission, listed so the user can decide whether to allow the application to access body sensor data. [CHAR LIMIT=30] -->
+    <string name="permlab_bodySensors">body sensors (like heart rate monitors)
+    </string>
+    <!-- Description of the body sensors permission, listed so the user can decide whether to allow the application to access data from body sensors. [CHAR LIMIT=NONE] -->
+    <string name="permdesc_bodySensors" product="default">Allows the app to
+      access data from sensors you use to measure what’s happening inside your
+      body, such as heart rate.</string>
+
     <!-- Title of the read social stream permission, listed so the user can decide whether to allow the application to read information from the user's social stream. [CHAR LIMIT=30] -->
     <string name="permlab_readSocialStream" product="default">read your social stream</string>
     <string name="permdesc_readSocialStream" product="default">Allows the app
@@ -2002,6 +2035,11 @@
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_setInputCalibration">Allows the app to modify the calibration parameters of the touch screen. Should never be needed for normal apps.</string>
 
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_accessDrmCertificates">access DRM certificates</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_accessDrmCertificates">Allows an application to provision and use DRM certficates. Should never be needed for normal apps.</string>
+
     <!-- Policy administration -->
 
     <!-- Title of policy access to limiting the user's password choices -->
@@ -3651,6 +3689,16 @@
     <!-- Description of an application permission that lets it control keyguard. -->
     <string name="permdesc_control_keyguard">Allows an application to control keguard.</string>
 
+    <!-- Title of an application permission that lets it listen to trust state changes. -->
+    <string name="permlab_trust_listener">Listen to trust state changes.</string>
+    <!-- Description of an application permission that lets it listen to trust state changes. -->
+    <string name="permdesc_trust_listener">Allows an application to listen for changes in trust state.</string>
+
+    <!-- Title of an application permission that lets it bind to a trust agent service. -->
+    <string name="permlab_bind_trust_agent_service">Bind to a trust agent service</string>
+    <!-- Description of an application permission that lets it bind to a trust agent service. -->
+    <string name="permdesc_bind_trust_agent_service">Allows an application to bind to a trust agent service.</string>
+
     <!-- Title of an application permission that lets it interact with recovery. -->
     <string name="permlab_recovery">Interact with update and recovery system</string>
     <!-- Description of an application permission that lets it control keyguard. -->
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index be875ff..fc0fccc 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -1208,6 +1208,13 @@
         <item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Subtitle</item>
     </style>
 
+    <style name="Widget.Toolbar">
+        <item name="android:titleTextAppearance">@android:style/TextAppearance.Widget.Toolbar.Title</item>
+        <item name="android:subtitleTextAppearance">@android:style/TextAppearance.Widget.Toolbar.Subtitle</item>
+        <item name="android:minHeight">?android:attr/actionBarSize</item>
+        <item name="android:titleMargins">4dp</item>
+    </style>
+
     <style name="TextAppearance.Widget.ActionBar.Title"
            parent="@android:style/TextAppearance.Medium">
     </style>
@@ -1225,6 +1232,14 @@
         <item name="android:textColor">?android:attr/textColorSecondary</item>
     </style>
 
+    <style name="TextAppearance.Widget.Toolbar.Title"
+           parent="@android:style/TextAppearance.Widget.ActionBar.Title">
+    </style>
+
+    <style name="TextAppearance.Widget.Toolbar.Subtitle"
+           parent="@android:style/TextAppearance.Widget.ActionBar.Subtitle">
+    </style>
+
     <style name="Widget.ActionButton">
         <item name="android:background">?android:attr/actionBarItemBackground</item>
         <item name="android:paddingStart">12dip</item>
diff --git a/core/res/res/values/styles_device_defaults.xml b/core/res/res/values/styles_device_defaults.xml
index 512c9b8..629b2b7 100644
--- a/core/res/res/values/styles_device_defaults.xml
+++ b/core/res/res/values/styles_device_defaults.xml
@@ -32,731 +32,271 @@
  -->
 <resources>
     <!-- Widget Styles -->
-    <style name="Widget.DeviceDefault" parent="Widget.Holo" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Button" parent="Widget.Holo.Button" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Button.Small" parent="Widget.Holo.Button.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Button.Inset" parent="Widget.Holo.Button.Inset" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Button.Toggle" parent="Widget.Holo.Button.Toggle" >
-
-    </style>
-    <style name="Widget.DeviceDefault.TextView" parent="Widget.Holo.TextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.CheckedTextView" parent="Widget.Holo.CheckedTextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.AutoCompleteTextView" parent="Widget.Holo.AutoCompleteTextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.CompoundButton.CheckBox" parent="Widget.Holo.CompoundButton.CheckBox" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ListView.DropDown" parent="Widget.Holo.ListView.DropDown" >
-
-    </style>
-    <style name="Widget.DeviceDefault.EditText" parent="Widget.Holo.EditText" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ExpandableListView" parent="Widget.Holo.ExpandableListView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.GridView" parent="Widget.Holo.GridView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ImageButton" parent="Widget.Holo.ImageButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ListView" parent="Widget.Holo.ListView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.PopupWindow" parent="Widget.Holo.PopupWindow" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar" parent="Widget.Holo.ProgressBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Horizontal" parent="Widget.Holo.ProgressBar.Horizontal" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Small" parent="Widget.Holo.ProgressBar.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Small.Title" parent="Widget.Holo.ProgressBar.Small.Title" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Large" parent="Widget.Holo.ProgressBar.Large" >
-
-    </style>
-    <style name="Widget.DeviceDefault.SeekBar" parent="Widget.Holo.SeekBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.RatingBar" parent="Widget.Holo.RatingBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.RatingBar.Indicator" parent="Widget.Holo.RatingBar.Indicator" >
-
-    </style>
-    <style name="Widget.DeviceDefault.RatingBar.Small" parent="Widget.Holo.RatingBar.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.CompoundButton.RadioButton" parent="Widget.Holo.CompoundButton.RadioButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ScrollView" parent="Widget.Holo.ScrollView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.HorizontalScrollView" parent="Widget.Holo.HorizontalScrollView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Spinner" parent="Widget.Holo.Spinner" >
-
-    </style>
-    <style name="Widget.DeviceDefault.CompoundButton.Star" parent="Widget.Holo.CompoundButton.Star" >
-
-    </style>
-    <style name="Widget.DeviceDefault.TabWidget" parent="Widget.Holo.TabWidget" >
-
-    </style>
-    <style name="Widget.DeviceDefault.WebTextView" parent="Widget.Holo.WebTextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.WebView" parent="Widget.Holo.WebView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.DropDownItem" parent="Widget.Holo.DropDownItem" >
-
-    </style>
-    <style name="Widget.DeviceDefault.DropDownItem.Spinner" parent="Widget.Holo.DropDownItem.Spinner" >
-
-    </style>
-    <style name="Widget.DeviceDefault.TextView.SpinnerItem" parent="Widget.Holo.TextView.SpinnerItem" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ListPopupWindow" parent="Widget.Holo.ListPopupWindow" >
-
-    </style>
-    <style name="Widget.DeviceDefault.PopupMenu" parent="Widget.Holo.PopupMenu" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionButton" parent="Widget.Holo.ActionButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionButton.Overflow" parent="Widget.Holo.ActionButton.Overflow" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionButton.TextButton" parent="Widget.Holo.ActionButton.TextButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionMode" parent="Widget.Holo.ActionMode" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionButton.CloseMode" parent="Widget.Holo.ActionButton.CloseMode" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionBar" parent="Widget.Holo.ActionBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Button.Borderless" parent="Widget.Holo.Button.Borderless" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Tab" parent="Widget.Holo.Tab" >
-
-    </style>
-    <style name="Widget.DeviceDefault.CalendarView" parent="Widget.Holo.CalendarView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.DatePicker" parent="Widget.Holo.DatePicker" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionBar.TabView" parent="Widget.Holo.ActionBar.TabView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionBar.TabText" parent="Widget.Holo.ActionBar.TabText" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionBar.TabBar" parent="Widget.Holo.ActionBar.TabBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.ActionBar.Solid" parent="Widget.Holo.ActionBar.Solid" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Button.Borderless.Small" parent="Widget.Holo.Button.Borderless.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.AbsListView" parent="Widget.Holo.AbsListView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Spinner.DropDown.ActionBar" parent="Widget.Holo.Spinner.DropDown.ActionBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.PopupWindow.ActionMode" parent="Widget.Holo.PopupWindow.ActionMode" >
-
-    </style>
-    <style name="Widget.DeviceDefault.CompoundButton.Switch" parent="Widget.Holo.CompoundButton.Switch">
-
-    </style>
-    <style name="Widget.DeviceDefault.ExpandableListView.White" parent="Widget.Holo.ExpandableListView.White">
-
-    </style>
-    <style name="Widget.DeviceDefault.FastScroll" parent="Widget.Holo.FastScroll">
-
-    </style>
-    <style name="Widget.DeviceDefault.FragmentBreadCrumbs" parent="Widget.Holo.FragmentBreadCrumbs">
-
-    </style>
-    <style name="Widget.DeviceDefault.Gallery" parent="Widget.Holo.Gallery">
-
-    </style>
-    <style name="Widget.DeviceDefault.GestureOverlayView" parent="Widget.Holo.GestureOverlayView">
-
-    </style>
-    <style name="Widget.DeviceDefault.ImageWell" parent="Widget.Holo.ImageWell">
-
-    </style>
-    <style name="Widget.DeviceDefault.KeyboardView" parent="Widget.Holo.KeyboardView">
-
-    </style>
-    <style name="Widget.DeviceDefault.ListView.White" parent="Widget.Holo.ListView.White">
-
-    </style>
-    <style name="Widget.DeviceDefault.NumberPicker" parent="Widget.Holo.NumberPicker">
-
-    </style>
-    <style name="Widget.DeviceDefault.PreferenceFrameLayout" parent="Widget.Holo.PreferenceFrameLayout">
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Inverse" parent="Widget.Holo.ProgressBar.Inverse">
-
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Large.Inverse" parent="Widget.Holo.ProgressBar.Large.Inverse">
-
-    </style>
-    <style name="Widget.DeviceDefault.ProgressBar.Small.Inverse" parent="Widget.Holo.ProgressBar.Small.Inverse">
-
-    </style>
-    <style name="Widget.DeviceDefault.QuickContactBadge.WindowLarge" parent="Widget.Holo.QuickContactBadge.WindowLarge">
-
-    </style>
-    <style name="Widget.DeviceDefault.QuickContactBadge.WindowMedium" parent="Widget.Holo.QuickContactBadge.WindowMedium">
-
-    </style>
-    <style name="Widget.DeviceDefault.QuickContactBadge.WindowSmall" parent="Widget.Holo.QuickContactBadge.WindowSmall">
-
-    </style>
-    <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowLarge" parent="Widget.Holo.QuickContactBadgeSmall.WindowLarge">
-
-    </style>
-    <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowMedium" parent="Widget.Holo.QuickContactBadgeSmall.WindowMedium">
-
-    </style>
-    <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowSmall" parent="Widget.Holo.QuickContactBadgeSmall.WindowSmall">
-
-    </style>
-    <style name="Widget.DeviceDefault.Spinner.DropDown" parent="Widget.Holo.Spinner.DropDown">
-
-    </style>
-    <style name="Widget.DeviceDefault.StackView" parent="Widget.Holo.StackView">
-
-    </style>
-    <style name="Widget.DeviceDefault.TextSelectHandle" parent="Widget.Holo.TextSelectHandle">
-
-    </style>
-    <style name="Widget.DeviceDefault.TextSuggestionsPopupWindow" parent="Widget.Holo.TextSuggestionsPopupWindow">
-
-    </style>
-    <style name="Widget.DeviceDefault.TextView.ListSeparator" parent="Widget.Holo.TextView.ListSeparator">
-
-    </style>
-    <style name="Widget.DeviceDefault.TimePicker" parent="Widget.Holo.TimePicker">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light" parent="Widget.Holo.Light" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Button" parent="Widget.Holo.Light.Button" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Button.Small" parent="Widget.Holo.Light.Button.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Button.Inset" parent="Widget.Holo.Light.Button.Inset" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Button.Toggle" parent="Widget.Holo.Light.Button.Toggle" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.TextView" parent="Widget.Holo.Light.TextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.CheckedTextView" parent="Widget.Holo.Light.CheckedTextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.AutoCompleteTextView" parent="Widget.Holo.Light.AutoCompleteTextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.CompoundButton.CheckBox" parent="Widget.Holo.Light.CompoundButton.CheckBox" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ListView.DropDown" parent="Widget.Holo.Light.ListView.DropDown" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.EditText" parent="Widget.Holo.Light.EditText" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ExpandableListView" parent="Widget.Holo.Light.ExpandableListView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.FastScroll" parent="Widget.Holo.Light.FastScroll">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.FragmentBreadCrumbs" parent="Widget.Holo.Light.FragmentBreadCrumbs">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.GridView" parent="Widget.Holo.Light.GridView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ImageButton" parent="Widget.Holo.Light.ImageButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ListView" parent="Widget.Holo.Light.ListView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.PopupWindow" parent="Widget.Holo.Light.PopupWindow" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar" parent="Widget.Holo.Light.ProgressBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Horizontal" parent="Widget.Holo.Light.ProgressBar.Horizontal" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Small" parent="Widget.Holo.Light.ProgressBar.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Small.Title" parent="Widget.Holo.Light.ProgressBar.Small.Title" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Large" parent="Widget.Holo.Light.ProgressBar.Large" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Inverse" parent="Widget.Holo.Light.ProgressBar.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Small.Inverse" parent="Widget.Holo.Light.ProgressBar.Small.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ProgressBar.Large.Inverse" parent="Widget.Holo.Light.ProgressBar.Large.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.SeekBar" parent="Widget.Holo.Light.SeekBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.RatingBar" parent="Widget.Holo.Light.RatingBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.RatingBar.Indicator" parent="Widget.Holo.Light.RatingBar.Indicator" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.RatingBar.Small" parent="Widget.Holo.Light.RatingBar.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.CompoundButton.RadioButton" parent="Widget.Holo.Light.CompoundButton.RadioButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ScrollView" parent="Widget.Holo.Light.ScrollView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.HorizontalScrollView" parent="Widget.Holo.Light.HorizontalScrollView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Spinner" parent="Widget.Holo.Light.Spinner" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.CompoundButton.Star" parent="Widget.Holo.Light.CompoundButton.Star" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.TabWidget" parent="Widget.Holo.Light.TabWidget" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.WebTextView" parent="Widget.Holo.Light.WebTextView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.WebView" parent="Widget.Holo.Light.WebView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.DropDownItem" parent="Widget.Holo.Light.DropDownItem" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.DropDownItem.Spinner" parent="Widget.Holo.Light.DropDownItem.Spinner" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.TextView.SpinnerItem" parent="Widget.Holo.Light.TextView.SpinnerItem" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ListPopupWindow" parent="Widget.Holo.Light.ListPopupWindow" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.PopupMenu" parent="Widget.Holo.Light.PopupMenu" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Tab" parent="Widget.Holo.Light.Tab" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.CalendarView" parent="Widget.Holo.Light.CalendarView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Button.Borderless.Small" parent="Widget.Holo.Light.Button.Borderless.Small" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionButton" parent="Widget.Holo.Light.ActionButton" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionButton.Overflow" parent="Widget.Holo.Light.ActionButton.Overflow" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionMode" parent="Widget.Holo.Light.ActionMode" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionButton.CloseMode" parent="Widget.Holo.Light.ActionButton.CloseMode" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar" parent="Widget.Holo.Light.ActionBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.TabView" parent="Widget.Holo.Light.ActionBar.TabView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.TabText" parent="Widget.Holo.Light.ActionBar.TabText" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.TabBar" parent="Widget.Holo.Light.ActionBar.TabBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.Solid" parent="Widget.Holo.Light.ActionBar.Solid" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.Solid.Inverse" parent="Widget.Holo.Light.ActionBar.Solid.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.TabBar.Inverse" parent="Widget.Holo.Light.ActionBar.TabBar.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.TabView.Inverse" parent="Widget.Holo.Light.ActionBar.TabView.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionBar.TabText.Inverse" parent="Widget.Holo.Light.ActionBar.TabText.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ActionMode.Inverse" parent="Widget.Holo.Light.ActionMode.Inverse" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.AbsListView" parent="Widget.Holo.Light.AbsListView" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Spinner.DropDown.ActionBar" parent="Widget.Holo.Light.Spinner.DropDown.ActionBar" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.PopupWindow.ActionMode" parent="Widget.Holo.Light.PopupWindow.ActionMode" >
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Button.Borderless" parent="Widget.Holo.Light.Button.Borderless">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.DatePicker" parent="Widget.Holo.Light.DatePicker">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ExpandableListView.White" parent="Widget.Holo.Light.ExpandableListView.White">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Gallery" parent="Widget.Holo.Light.Gallery">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.GestureOverlayView" parent="Widget.Holo.Light.GestureOverlayView">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ImageWell" parent="Widget.Holo.Light.ImageWell">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.ListView.White" parent="Widget.Holo.Light.ListView.White">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.NumberPicker" parent="Widget.Holo.Light.NumberPicker">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.Spinner.DropDown" parent="Widget.Holo.Light.Spinner.DropDown">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.TextView.ListSeparator" parent="Widget.Holo.Light.TextView.ListSeparator">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.TimePicker" parent="Widget.Holo.Light.TimePicker">
-
-    </style>
-    <style name="Widget.DeviceDefault.Light.TextSuggestionsPopupWindow" parent="Widget.Holo.Light.TextSuggestionsPopupWindow">
-
-    </style>
+    <style name="Widget.DeviceDefault" parent="Widget.Quantum"/>
+    <style name="Widget.DeviceDefault.Button" parent="Widget.Quantum.Button"/>
+    <style name="Widget.DeviceDefault.Button.Small" parent="Widget.Quantum.Button.Small"/>
+    <style name="Widget.DeviceDefault.Button.Inset" parent="Widget.Quantum.Button.Inset"/>
+    <style name="Widget.DeviceDefault.Button.Toggle" parent="Widget.Quantum.Button.Toggle"/>
+    <style name="Widget.DeviceDefault.TextView" parent="Widget.Quantum.TextView"/>
+    <style name="Widget.DeviceDefault.CheckedTextView" parent="Widget.Quantum.CheckedTextView"/>
+    <style name="Widget.DeviceDefault.AutoCompleteTextView" parent="Widget.Quantum.AutoCompleteTextView"/>
+    <style name="Widget.DeviceDefault.CompoundButton.CheckBox" parent="Widget.Quantum.CompoundButton.CheckBox"/>
+    <style name="Widget.DeviceDefault.ListView.DropDown" parent="Widget.Quantum.ListView.DropDown"/>
+    <style name="Widget.DeviceDefault.EditText" parent="Widget.Quantum.EditText"/>
+    <style name="Widget.DeviceDefault.ExpandableListView" parent="Widget.Quantum.ExpandableListView"/>
+    <style name="Widget.DeviceDefault.GridView" parent="Widget.Quantum.GridView"/>
+    <style name="Widget.DeviceDefault.ImageButton" parent="Widget.Quantum.ImageButton"/>
+    <style name="Widget.DeviceDefault.ListView" parent="Widget.Quantum.ListView"/>
+    <style name="Widget.DeviceDefault.PopupWindow" parent="Widget.Quantum.PopupWindow"/>
+    <style name="Widget.DeviceDefault.ProgressBar" parent="Widget.Quantum.ProgressBar"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Horizontal" parent="Widget.Quantum.ProgressBar.Horizontal"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Small" parent="Widget.Quantum.ProgressBar.Small"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Small.Title" parent="Widget.Quantum.ProgressBar.Small.Title"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Large" parent="Widget.Quantum.ProgressBar.Large"/>
+    <style name="Widget.DeviceDefault.SeekBar" parent="Widget.Quantum.SeekBar"/>
+    <style name="Widget.DeviceDefault.RatingBar" parent="Widget.Quantum.RatingBar"/>
+    <style name="Widget.DeviceDefault.RatingBar.Indicator" parent="Widget.Quantum.RatingBar.Indicator"/>
+    <style name="Widget.DeviceDefault.RatingBar.Small" parent="Widget.Quantum.RatingBar.Small"/>
+    <style name="Widget.DeviceDefault.CompoundButton.RadioButton" parent="Widget.Quantum.CompoundButton.RadioButton"/>
+    <style name="Widget.DeviceDefault.ScrollView" parent="Widget.Quantum.ScrollView"/>
+    <style name="Widget.DeviceDefault.HorizontalScrollView" parent="Widget.Quantum.HorizontalScrollView"/>
+    <style name="Widget.DeviceDefault.Spinner" parent="Widget.Quantum.Spinner"/>
+    <style name="Widget.DeviceDefault.CompoundButton.Star" parent="Widget.Quantum.CompoundButton.Star"/>
+    <style name="Widget.DeviceDefault.TabWidget" parent="Widget.Quantum.TabWidget"/>
+    <style name="Widget.DeviceDefault.WebTextView" parent="Widget.Quantum.WebTextView"/>
+    <style name="Widget.DeviceDefault.WebView" parent="Widget.Quantum.WebView"/>
+    <style name="Widget.DeviceDefault.DropDownItem" parent="Widget.Quantum.DropDownItem"/>
+    <style name="Widget.DeviceDefault.DropDownItem.Spinner" parent="Widget.Quantum.DropDownItem.Spinner"/>
+    <style name="Widget.DeviceDefault.TextView.SpinnerItem" parent="Widget.Quantum.TextView.SpinnerItem"/>
+    <style name="Widget.DeviceDefault.ListPopupWindow" parent="Widget.Quantum.ListPopupWindow"/>
+    <style name="Widget.DeviceDefault.PopupMenu" parent="Widget.Quantum.PopupMenu"/>
+    <style name="Widget.DeviceDefault.ActionButton" parent="Widget.Quantum.ActionButton"/>
+    <style name="Widget.DeviceDefault.ActionButton.Overflow" parent="Widget.Quantum.ActionButton.Overflow"/>
+    <style name="Widget.DeviceDefault.ActionButton.TextButton" parent="Widget.Quantum.ActionButton.TextButton"/>
+    <style name="Widget.DeviceDefault.ActionMode" parent="Widget.Quantum.ActionMode"/>
+    <style name="Widget.DeviceDefault.ActionButton.CloseMode" parent="Widget.Quantum.ActionButton.CloseMode"/>
+    <style name="Widget.DeviceDefault.ActionBar" parent="Widget.Quantum.ActionBar"/>
+    <style name="Widget.DeviceDefault.Button.Borderless" parent="Widget.Quantum.Button.Borderless"/>
+    <style name="Widget.DeviceDefault.Tab" parent="Widget.Quantum.Tab"/>
+    <style name="Widget.DeviceDefault.CalendarView" parent="Widget.Quantum.CalendarView"/>
+    <style name="Widget.DeviceDefault.DatePicker" parent="Widget.Quantum.DatePicker"/>
+    <style name="Widget.DeviceDefault.ActionBar.TabView" parent="Widget.Quantum.ActionBar.TabView"/>
+    <style name="Widget.DeviceDefault.ActionBar.TabText" parent="Widget.Quantum.ActionBar.TabText"/>
+    <style name="Widget.DeviceDefault.ActionBar.TabBar" parent="Widget.Quantum.ActionBar.TabBar"/>
+    <style name="Widget.DeviceDefault.ActionBar.Solid" parent="Widget.Quantum.ActionBar.Solid"/>
+    <style name="Widget.DeviceDefault.Button.Borderless.Small" parent="Widget.Quantum.Button.Borderless.Small"/>
+    <style name="Widget.DeviceDefault.AbsListView" parent="Widget.Quantum.AbsListView"/>
+    <style name="Widget.DeviceDefault.Spinner.DropDown.ActionBar" parent="Widget.Quantum.Spinner.DropDown.ActionBar"/>
+    <style name="Widget.DeviceDefault.PopupWindow.ActionMode" parent="Widget.Quantum.PopupWindow.ActionMode"/>
+    <style name="Widget.DeviceDefault.CompoundButton.Switch" parent="Widget.Quantum.CompoundButton.Switch"/>
+    <style name="Widget.DeviceDefault.ExpandableListView.White" parent="Widget.Quantum.ExpandableListView.White"/>
+    <style name="Widget.DeviceDefault.FastScroll" parent="Widget.Quantum.FastScroll"/>
+    <style name="Widget.DeviceDefault.FragmentBreadCrumbs" parent="Widget.Quantum.FragmentBreadCrumbs"/>
+    <style name="Widget.DeviceDefault.Gallery" parent="Widget.Quantum.Gallery"/>
+    <style name="Widget.DeviceDefault.GestureOverlayView" parent="Widget.Quantum.GestureOverlayView"/>
+    <style name="Widget.DeviceDefault.ImageWell" parent="Widget.Quantum.ImageWell"/>
+    <style name="Widget.DeviceDefault.KeyboardView" parent="Widget.Quantum.KeyboardView"/>
+    <style name="Widget.DeviceDefault.ListView.White" parent="Widget.Quantum.ListView.White"/>
+    <style name="Widget.DeviceDefault.NumberPicker" parent="Widget.Quantum.NumberPicker"/>
+    <style name="Widget.DeviceDefault.PreferenceFrameLayout" parent="Widget.Quantum.PreferenceFrameLayout"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Inverse" parent="Widget.Quantum.ProgressBar.Inverse"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Large.Inverse" parent="Widget.Quantum.ProgressBar.Large.Inverse"/>
+    <style name="Widget.DeviceDefault.ProgressBar.Small.Inverse" parent="Widget.Quantum.ProgressBar.Small.Inverse"/>
+    <style name="Widget.DeviceDefault.QuickContactBadge.WindowLarge" parent="Widget.Quantum.QuickContactBadge.WindowLarge"/>
+    <style name="Widget.DeviceDefault.QuickContactBadge.WindowMedium" parent="Widget.Quantum.QuickContactBadge.WindowMedium"/>
+    <style name="Widget.DeviceDefault.QuickContactBadge.WindowSmall" parent="Widget.Quantum.QuickContactBadge.WindowSmall"/>
+    <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowLarge" parent="Widget.Quantum.QuickContactBadgeSmall.WindowLarge"/>
+    <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowMedium" parent="Widget.Quantum.QuickContactBadgeSmall.WindowMedium"/>
+    <style name="Widget.DeviceDefault.QuickContactBadgeSmall.WindowSmall" parent="Widget.Quantum.QuickContactBadgeSmall.WindowSmall"/>
+    <style name="Widget.DeviceDefault.Spinner.DropDown" parent="Widget.Quantum.Spinner.DropDown"/>
+    <style name="Widget.DeviceDefault.StackView" parent="Widget.Quantum.StackView"/>
+    <style name="Widget.DeviceDefault.TextSelectHandle" parent="Widget.Quantum.TextSelectHandle"/>
+    <style name="Widget.DeviceDefault.TextSuggestionsPopupWindow" parent="Widget.Quantum.TextSuggestionsPopupWindow"/>
+    <style name="Widget.DeviceDefault.TextView.ListSeparator" parent="Widget.Quantum.TextView.ListSeparator"/>
+    <style name="Widget.DeviceDefault.TimePicker" parent="Widget.Quantum.TimePicker"/>
+    <style name="Widget.DeviceDefault.Light" parent="Widget.Quantum.Light"/>
+    <style name="Widget.DeviceDefault.Light.Button" parent="Widget.Quantum.Light.Button"/>
+    <style name="Widget.DeviceDefault.Light.Button.Small" parent="Widget.Quantum.Light.Button.Small"/>
+    <style name="Widget.DeviceDefault.Light.Button.Inset" parent="Widget.Quantum.Light.Button.Inset"/>
+    <style name="Widget.DeviceDefault.Light.Button.Toggle" parent="Widget.Quantum.Light.Button.Toggle"/>
+    <style name="Widget.DeviceDefault.Light.TextView" parent="Widget.Quantum.Light.TextView"/>
+    <style name="Widget.DeviceDefault.Light.CheckedTextView" parent="Widget.Quantum.Light.CheckedTextView"/>
+    <style name="Widget.DeviceDefault.Light.AutoCompleteTextView" parent="Widget.Quantum.Light.AutoCompleteTextView"/>
+    <style name="Widget.DeviceDefault.Light.CompoundButton.CheckBox" parent="Widget.Quantum.Light.CompoundButton.CheckBox"/>
+    <style name="Widget.DeviceDefault.Light.ListView.DropDown" parent="Widget.Quantum.Light.ListView.DropDown"/>
+    <style name="Widget.DeviceDefault.Light.EditText" parent="Widget.Quantum.Light.EditText"/>
+    <style name="Widget.DeviceDefault.Light.ExpandableListView" parent="Widget.Quantum.Light.ExpandableListView"/>
+    <style name="Widget.DeviceDefault.Light.FastScroll" parent="Widget.Quantum.Light.FastScroll"/>
+    <style name="Widget.DeviceDefault.Light.FragmentBreadCrumbs" parent="Widget.Quantum.Light.FragmentBreadCrumbs"/>
+    <style name="Widget.DeviceDefault.Light.GridView" parent="Widget.Quantum.Light.GridView"/>
+    <style name="Widget.DeviceDefault.Light.ImageButton" parent="Widget.Quantum.Light.ImageButton"/>
+    <style name="Widget.DeviceDefault.Light.ListView" parent="Widget.Quantum.Light.ListView"/>
+    <style name="Widget.DeviceDefault.Light.PopupWindow" parent="Widget.Quantum.Light.PopupWindow"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar" parent="Widget.Quantum.Light.ProgressBar"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Horizontal" parent="Widget.Quantum.Light.ProgressBar.Horizontal"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Small" parent="Widget.Quantum.Light.ProgressBar.Small"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Small.Title" parent="Widget.Quantum.Light.ProgressBar.Small.Title"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Large" parent="Widget.Quantum.Light.ProgressBar.Large"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Inverse" parent="Widget.Quantum.Light.ProgressBar.Inverse"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Small.Inverse" parent="Widget.Quantum.Light.ProgressBar.Small.Inverse"/>
+    <style name="Widget.DeviceDefault.Light.ProgressBar.Large.Inverse" parent="Widget.Quantum.Light.ProgressBar.Large.Inverse"/>
+    <style name="Widget.DeviceDefault.Light.SeekBar" parent="Widget.Quantum.Light.SeekBar"/>
+    <style name="Widget.DeviceDefault.Light.RatingBar" parent="Widget.Quantum.Light.RatingBar"/>
+    <style name="Widget.DeviceDefault.Light.RatingBar.Indicator" parent="Widget.Quantum.Light.RatingBar.Indicator"/>
+    <style name="Widget.DeviceDefault.Light.RatingBar.Small" parent="Widget.Quantum.Light.RatingBar.Small"/>
+    <style name="Widget.DeviceDefault.Light.CompoundButton.RadioButton" parent="Widget.Quantum.Light.CompoundButton.RadioButton"/>
+    <style name="Widget.DeviceDefault.Light.ScrollView" parent="Widget.Quantum.Light.ScrollView"/>
+    <style name="Widget.DeviceDefault.Light.HorizontalScrollView" parent="Widget.Quantum.Light.HorizontalScrollView"/>
+    <style name="Widget.DeviceDefault.Light.Spinner" parent="Widget.Quantum.Light.Spinner"/>
+    <style name="Widget.DeviceDefault.Light.CompoundButton.Star" parent="Widget.Quantum.Light.CompoundButton.Star"/>
+    <style name="Widget.DeviceDefault.Light.TabWidget" parent="Widget.Quantum.Light.TabWidget"/>
+    <style name="Widget.DeviceDefault.Light.WebTextView" parent="Widget.Quantum.Light.WebTextView"/>
+    <style name="Widget.DeviceDefault.Light.WebView" parent="Widget.Quantum.Light.WebView"/>
+    <style name="Widget.DeviceDefault.Light.DropDownItem" parent="Widget.Quantum.Light.DropDownItem"/>
+    <style name="Widget.DeviceDefault.Light.DropDownItem.Spinner" parent="Widget.Quantum.Light.DropDownItem.Spinner"/>
+    <style name="Widget.DeviceDefault.Light.TextView.SpinnerItem" parent="Widget.Quantum.Light.TextView.SpinnerItem"/>
+    <style name="Widget.DeviceDefault.Light.ListPopupWindow" parent="Widget.Quantum.Light.ListPopupWindow"/>
+    <style name="Widget.DeviceDefault.Light.PopupMenu" parent="Widget.Quantum.Light.PopupMenu"/>
+    <style name="Widget.DeviceDefault.Light.Tab" parent="Widget.Quantum.Light.Tab"/>
+    <style name="Widget.DeviceDefault.Light.CalendarView" parent="Widget.Quantum.Light.CalendarView"/>
+    <style name="Widget.DeviceDefault.Light.Button.Borderless.Small" parent="Widget.Quantum.Light.Button.Borderless.Small"/>
+    <style name="Widget.DeviceDefault.Light.ActionButton" parent="Widget.Quantum.Light.ActionButton"/>
+    <style name="Widget.DeviceDefault.Light.ActionButton.Overflow" parent="Widget.Quantum.Light.ActionButton.Overflow"/>
+    <style name="Widget.DeviceDefault.Light.ActionMode" parent="Widget.Quantum.Light.ActionMode"/>
+    <style name="Widget.DeviceDefault.Light.ActionButton.CloseMode" parent="Widget.Quantum.Light.ActionButton.CloseMode"/>
+    <style name="Widget.DeviceDefault.Light.ActionBar" parent="Widget.Quantum.Light.ActionBar"/>
+    <style name="Widget.DeviceDefault.Light.ActionBar.TabView" parent="Widget.Quantum.Light.ActionBar.TabView"/>
+    <style name="Widget.DeviceDefault.Light.ActionBar.TabText" parent="Widget.Quantum.Light.ActionBar.TabText"/>
+    <style name="Widget.DeviceDefault.Light.ActionBar.TabBar" parent="Widget.Quantum.Light.ActionBar.TabBar"/>
+    <style name="Widget.DeviceDefault.Light.ActionBar.Solid" parent="Widget.Quantum.Light.ActionBar.Solid"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="Widget.DeviceDefault.Light.ActionBar.Solid.Inverse" parent="Widget.Holo.Light.ActionBar.Solid.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="Widget.DeviceDefault.Light.ActionBar.TabBar.Inverse" parent="Widget.Holo.Light.ActionBar.TabBar.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="Widget.DeviceDefault.Light.ActionBar.TabView.Inverse" parent="Widget.Holo.Light.ActionBar.TabView.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="Widget.DeviceDefault.Light.ActionBar.TabText.Inverse" parent="Widget.Holo.Light.ActionBar.TabText.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="Widget.DeviceDefault.Light.ActionMode.Inverse" parent="Widget.Holo.Light.ActionMode.Inverse"/>
+    <style name="Widget.DeviceDefault.Light.AbsListView" parent="Widget.Quantum.Light.AbsListView"/>
+    <style name="Widget.DeviceDefault.Light.Spinner.DropDown.ActionBar" parent="Widget.Quantum.Light.Spinner.DropDown.ActionBar"/>
+    <style name="Widget.DeviceDefault.Light.PopupWindow.ActionMode" parent="Widget.Quantum.Light.PopupWindow.ActionMode"/>
+    <style name="Widget.DeviceDefault.Light.Button.Borderless" parent="Widget.Quantum.Light.Button.Borderless"/>
+    <style name="Widget.DeviceDefault.Light.DatePicker" parent="Widget.Quantum.Light.DatePicker"/>
+    <style name="Widget.DeviceDefault.Light.ExpandableListView.White" parent="Widget.Quantum.Light.ExpandableListView.White"/>
+    <style name="Widget.DeviceDefault.Light.Gallery" parent="Widget.Quantum.Light.Gallery"/>
+    <style name="Widget.DeviceDefault.Light.GestureOverlayView" parent="Widget.Quantum.Light.GestureOverlayView"/>
+    <style name="Widget.DeviceDefault.Light.ImageWell" parent="Widget.Quantum.Light.ImageWell"/>
+    <style name="Widget.DeviceDefault.Light.ListView.White" parent="Widget.Quantum.Light.ListView.White"/>
+    <style name="Widget.DeviceDefault.Light.NumberPicker" parent="Widget.Quantum.Light.NumberPicker"/>
+    <style name="Widget.DeviceDefault.Light.Spinner.DropDown" parent="Widget.Quantum.Light.Spinner.DropDown"/>
+    <style name="Widget.DeviceDefault.Light.TextView.ListSeparator" parent="Widget.Quantum.Light.TextView.ListSeparator"/>
+    <style name="Widget.DeviceDefault.Light.TimePicker" parent="Widget.Quantum.Light.TimePicker"/>
+    <style name="Widget.DeviceDefault.Light.TextSuggestionsPopupWindow" parent="Widget.Quantum.Light.TextSuggestionsPopupWindow"/>
 
 
     <!-- Text Appearance Styles -->
-    <style name="TextAppearance.DeviceDefault" parent="TextAppearance.Holo" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Inverse" parent="TextAppearance.Holo.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Large" parent="TextAppearance.Holo.Large" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Large.Inverse" parent="TextAppearance.Holo.Large.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Medium" parent="TextAppearance.Holo.Medium" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Medium.Inverse" parent="TextAppearance.Holo.Medium.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Small" parent="TextAppearance.Holo.Small" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Small.Inverse" parent="TextAppearance.Holo.Small.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.SearchResult.Title" parent="TextAppearance.Holo.SearchResult.Title" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.SearchResult.Subtitle" parent="TextAppearance.Holo.SearchResult.Subtitle" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget" parent="TextAppearance.Holo.Widget" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.Button" parent="TextAppearance.Holo.Widget.Button" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.IconMenu.Item" parent="TextAppearance.Holo.Widget.IconMenu.Item" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.TabWidget" parent="TextAppearance.Holo.Widget.TabWidget" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.TextView" parent="TextAppearance.Holo.Widget.TextView" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.TextView.PopupMenu" parent="TextAppearance.Holo.Widget.TextView.PopupMenu" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.DropDownHint" parent="TextAppearance.Holo.Widget.DropDownHint" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.DropDownItem" parent="TextAppearance.Holo.Widget.DropDownItem" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.TextView.SpinnerItem" parent="TextAppearance.Holo.Widget.TextView.SpinnerItem" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.EditText" parent="TextAppearance.Holo.Widget.EditText" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.PopupMenu" parent="TextAppearance.Holo.Widget.PopupMenu" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.PopupMenu.Large" parent="TextAppearance.Holo.Widget.PopupMenu.Large" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.PopupMenu.Small" parent="TextAppearance.Holo.Widget.PopupMenu.Small" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Title" parent="TextAppearance.Holo.Widget.ActionBar.Title" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle" parent="TextAppearance.Holo.Widget.ActionBar.Subtitle" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Title" parent="TextAppearance.Holo.Widget.ActionMode.Title" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle" parent="TextAppearance.Holo.Widget.ActionMode.Subtitle" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.WindowTitle" parent="TextAppearance.Holo.WindowTitle" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.DialogWindowTitle" parent="TextAppearance.Holo.DialogWindowTitle" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Title.Inverse" parent="TextAppearance.Holo.Widget.ActionBar.Title.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle.Inverse" parent="TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Title.Inverse" parent="TextAppearance.Holo.Widget.ActionMode.Title.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.Holo.Widget.ActionMode.Subtitle.Inverse" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Menu" parent="TextAppearance.Holo.Widget.ActionBar.Menu" >
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light" parent="TextAppearance.Holo.Light">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Inverse" parent="TextAppearance.Holo.Light.Inverse">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Large" parent="TextAppearance.Holo.Light.Large">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Large.Inverse" parent="TextAppearance.Holo.Light.Large.Inverse">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Medium" parent="TextAppearance.Holo.Light.Medium">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Medium.Inverse" parent="TextAppearance.Holo.Light.Medium.Inverse">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.SearchResult.Subtitle" parent="TextAppearance.Holo.Light.SearchResult.Subtitle">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.SearchResult.Title" parent="TextAppearance.Holo.Light.SearchResult.Title">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Small" parent="TextAppearance.Holo.Light.Small">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Small.Inverse" parent="TextAppearance.Holo.Light.Small.Inverse">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Widget.Button" parent="TextAppearance.Holo.Light.Widget.Button">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Large" parent="TextAppearance.Holo.Light.Widget.PopupMenu.Large">
-
-    </style>
-    <style name="TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Small" parent="TextAppearance.Holo.Light.Widget.PopupMenu.Small">
-
-    </style>
+    <style name="TextAppearance.DeviceDefault" parent="TextAppearance.Quantum"/>
+    <style name="TextAppearance.DeviceDefault.Inverse" parent="TextAppearance.Quantum.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Large" parent="TextAppearance.Quantum.Large"/>
+    <style name="TextAppearance.DeviceDefault.Large.Inverse" parent="TextAppearance.Quantum.Large.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Medium" parent="TextAppearance.Quantum.Medium"/>
+    <style name="TextAppearance.DeviceDefault.Medium.Inverse" parent="TextAppearance.Quantum.Medium.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Small" parent="TextAppearance.Quantum.Small"/>
+    <style name="TextAppearance.DeviceDefault.Small.Inverse" parent="TextAppearance.Quantum.Small.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.SearchResult.Title" parent="TextAppearance.Quantum.SearchResult.Title"/>
+    <style name="TextAppearance.DeviceDefault.SearchResult.Subtitle" parent="TextAppearance.Quantum.SearchResult.Subtitle"/>
+    <style name="TextAppearance.DeviceDefault.Widget" parent="TextAppearance.Quantum.Widget"/>
+    <style name="TextAppearance.DeviceDefault.Widget.Button" parent="TextAppearance.Quantum.Widget.Button"/>
+    <style name="TextAppearance.DeviceDefault.Widget.IconMenu.Item" parent="TextAppearance.Quantum.Widget.IconMenu.Item"/>
+    <style name="TextAppearance.DeviceDefault.Widget.TabWidget" parent="TextAppearance.Quantum.Widget.TabWidget"/>
+    <style name="TextAppearance.DeviceDefault.Widget.TextView" parent="TextAppearance.Quantum.Widget.TextView"/>
+    <style name="TextAppearance.DeviceDefault.Widget.TextView.PopupMenu" parent="TextAppearance.Quantum.Widget.TextView.PopupMenu"/>
+    <style name="TextAppearance.DeviceDefault.Widget.DropDownHint" parent="TextAppearance.Quantum.Widget.DropDownHint"/>
+    <style name="TextAppearance.DeviceDefault.Widget.DropDownItem" parent="TextAppearance.Quantum.Widget.DropDownItem"/>
+    <style name="TextAppearance.DeviceDefault.Widget.TextView.SpinnerItem" parent="TextAppearance.Quantum.Widget.TextView.SpinnerItem"/>
+    <style name="TextAppearance.DeviceDefault.Widget.EditText" parent="TextAppearance.Quantum.Widget.EditText"/>
+    <style name="TextAppearance.DeviceDefault.Widget.PopupMenu" parent="TextAppearance.Quantum.Widget.PopupMenu"/>
+    <style name="TextAppearance.DeviceDefault.Widget.PopupMenu.Large" parent="TextAppearance.Quantum.Widget.PopupMenu.Large"/>
+    <style name="TextAppearance.DeviceDefault.Widget.PopupMenu.Small" parent="TextAppearance.Quantum.Widget.PopupMenu.Small"/>
+    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Title" parent="TextAppearance.Quantum.Widget.ActionBar.Title"/>
+    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle" parent="TextAppearance.Quantum.Widget.ActionBar.Subtitle"/>
+    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Title" parent="TextAppearance.Quantum.Widget.ActionMode.Title"/>
+    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle" parent="TextAppearance.Quantum.Widget.ActionMode.Subtitle"/>
+    <style name="TextAppearance.DeviceDefault.WindowTitle" parent="TextAppearance.Quantum.WindowTitle"/>
+    <style name="TextAppearance.DeviceDefault.DialogWindowTitle" parent="TextAppearance.Quantum.DialogWindowTitle"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Title.Inverse" parent="TextAppearance.Quantum.Widget.ActionBar.Title.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Subtitle.Inverse" parent="TextAppearance.Quantum.Widget.ActionBar.Subtitle.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Title.Inverse" parent="TextAppearance.Quantum.Widget.ActionMode.Title.Inverse"/>
+    <!-- @deprecated Action bars are now themed using the inheritable android:theme attribute. -->
+    <style name="TextAppearance.DeviceDefault.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.Quantum.Widget.ActionMode.Subtitle.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Widget.ActionBar.Menu" parent="TextAppearance.Quantum.Widget.ActionBar.Menu"/>
+    <style name="TextAppearance.DeviceDefault.Light" parent="TextAppearance.Quantum.Light"/>
+    <style name="TextAppearance.DeviceDefault.Light.Inverse" parent="TextAppearance.Quantum.Light.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Light.Large" parent="TextAppearance.Quantum.Light.Large"/>
+    <style name="TextAppearance.DeviceDefault.Light.Large.Inverse" parent="TextAppearance.Quantum.Light.Large.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Light.Medium" parent="TextAppearance.Quantum.Light.Medium"/>
+    <style name="TextAppearance.DeviceDefault.Light.Medium.Inverse" parent="TextAppearance.Quantum.Light.Medium.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Light.SearchResult.Subtitle" parent="TextAppearance.Quantum.Light.SearchResult.Subtitle"/>
+    <style name="TextAppearance.DeviceDefault.Light.SearchResult.Title" parent="TextAppearance.Quantum.Light.SearchResult.Title"/>
+    <style name="TextAppearance.DeviceDefault.Light.Small" parent="TextAppearance.Quantum.Light.Small"/>
+    <style name="TextAppearance.DeviceDefault.Light.Small.Inverse" parent="TextAppearance.Quantum.Light.Small.Inverse"/>
+    <style name="TextAppearance.DeviceDefault.Light.Widget.Button" parent="TextAppearance.Quantum.Light.Widget.Button"/>
+    <style name="TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Large" parent="TextAppearance.Quantum.Light.Widget.PopupMenu.Large"/>
+    <style name="TextAppearance.DeviceDefault.Light.Widget.PopupMenu.Small" parent="TextAppearance.Quantum.Light.Widget.PopupMenu.Small"/>
 
 
     <!-- Preference Styles -->
-    <style name="Preference.DeviceDefault" parent="Preference.Holo">
-
-    </style>
-    <style name="Preference.DeviceDefault.Category" parent="Preference.Holo.Category">
-
-    </style>
-    <style name="Preference.DeviceDefault.CheckBoxPreference" parent="Preference.Holo.CheckBoxPreference">
-
-    </style>
-    <style name="Preference.DeviceDefault.DialogPreference" parent="Preference.Holo.DialogPreference">
-
-    </style>
-    <style name="Preference.DeviceDefault.DialogPreference.EditTextPreference" parent="Preference.Holo.DialogPreference.EditTextPreference">
-
-    </style>
-    <style name="Preference.DeviceDefault.DialogPreference.YesNoPreference" parent="Preference.Holo.DialogPreference.YesNoPreference">
-
-    </style>
-    <style name="Preference.DeviceDefault.Information" parent="Preference.Holo.Information">
-
-    </style>
-    <style name="Preference.DeviceDefault.PreferenceScreen" parent="Preference.Holo.PreferenceScreen">
-
-    </style>
-    <style name="Preference.DeviceDefault.RingtonePreference" parent="Preference.Holo.RingtonePreference">
-
-    </style>
-    <style name="Preference.DeviceDefault.SwitchPreference" parent="Preference.Holo.SwitchPreference">
-
-    </style>
+    <style name="Preference.DeviceDefault" parent="Preference.Quantum"/>
+    <style name="Preference.DeviceDefault.Category" parent="Preference.Quantum.Category"/>
+    <style name="Preference.DeviceDefault.CheckBoxPreference" parent="Preference.Quantum.CheckBoxPreference"/>
+    <style name="Preference.DeviceDefault.DialogPreference" parent="Preference.Quantum.DialogPreference"/>
+    <style name="Preference.DeviceDefault.DialogPreference.EditTextPreference" parent="Preference.Quantum.DialogPreference.EditTextPreference"/>
+    <style name="Preference.DeviceDefault.DialogPreference.YesNoPreference" parent="Preference.Quantum.DialogPreference.YesNoPreference"/>
+    <style name="Preference.DeviceDefault.Information" parent="Preference.Quantum.Information"/>
+    <style name="Preference.DeviceDefault.PreferenceScreen" parent="Preference.Quantum.PreferenceScreen"/>
+    <style name="Preference.DeviceDefault.RingtonePreference" parent="Preference.Quantum.RingtonePreference"/>
+    <style name="Preference.DeviceDefault.SwitchPreference" parent="Preference.Quantum.SwitchPreference"/>
 
 
     <!-- AlertDialog Styles -->
-    <style name="AlertDialog.DeviceDefault" parent="AlertDialog.Holo">
-
-    </style>
-    <style name="AlertDialog.DeviceDefault.Light" parent="AlertDialog.Holo.Light" >
-
-    </style>
+    <style name="AlertDialog.DeviceDefault" parent="AlertDialog.Quantum"/>
+    <style name="AlertDialog.DeviceDefault.Light" parent="AlertDialog.Quantum.Light"/>
 
     <!-- Animation Styles -->
-    <style name="Animation.DeviceDefault.Activity" parent="Animation.Holo.Activity">
-
-    </style>
-    <style name="Animation.DeviceDefault.Dialog" parent="Animation.Holo.Dialog">
-
-    </style>
+    <style name="Animation.DeviceDefault.Activity" parent="Animation.Quantum.Activity"/>
+    <style name="Animation.DeviceDefault.Dialog" parent="Animation.Quantum.Dialog"/>
 
 
     <!-- DialogWindowTitle Styles -->
-    <style name="DialogWindowTitle.DeviceDefault" parent="DialogWindowTitle.Holo">
-
-    </style>
-    <style name="DialogWindowTitle.DeviceDefault.Light" parent="DialogWindowTitle.Holo.Light">
-
-    </style>
+    <style name="DialogWindowTitle.DeviceDefault" parent="DialogWindowTitle.Quantum"/>
+    <style name="DialogWindowTitle.DeviceDefault.Light" parent="DialogWindowTitle.Quantum.Light"/>
 
 
     <!-- WindowTitle Styles -->
-    <style name="WindowTitle.DeviceDefault" parent="WindowTitle.Holo">
-
-    </style>
-    <style name="WindowTitleBackground.DeviceDefault" parent="WindowTitleBackground.Holo">
-
-    </style>
+    <style name="WindowTitle.DeviceDefault" parent="WindowTitle.Quantum"/>
+    <style name="WindowTitleBackground.DeviceDefault" parent="WindowTitleBackground.Quantum"/>
 
 
     <!-- Other Styles -->
-    <style name="DeviceDefault.ButtonBar" parent="Holo.ButtonBar" >
+    <style name="DeviceDefault.ButtonBar" parent="Widget.Quantum.ButtonBar"/>
+    <style name="DeviceDefault.ButtonBar.AlertDialog" parent="Widget.Quantum.ButtonBar.AlertDialog"/>
+    <style name="DeviceDefault.SegmentedButton" parent="Widget.Quantum.SegmentedButton"/>
+    <style name="DeviceDefault.Light.ButtonBar" parent="Widget.Quantum.Light.ButtonBar"/>
+    <style name="DeviceDefault.Light.ButtonBar.AlertDialog" parent="Widget.Quantum.Light.ButtonBar.AlertDialog"/>
+    <style name="DeviceDefault.Light.SegmentedButton" parent="Widget.Quantum.Light.SegmentedButton"/>
 
-    </style>
-    <style name="DeviceDefault.ButtonBar.AlertDialog" parent="Holo.ButtonBar.AlertDialog" >
+    <style name="Widget.DeviceDefault.MediaRouteButton" parent="Widget.Quantum.MediaRouteButton" />
+    <style name="Widget.DeviceDefault.Light.MediaRouteButton" parent="Widget.Quantum.Light.MediaRouteButton" />
 
-    </style>
-    <style name="DeviceDefault.SegmentedButton" parent="Holo.SegmentedButton" >
-
-    </style>
-    <style name="DeviceDefault.Light.ButtonBar" parent="Holo.Light.ButtonBar" >
-
-    </style>
-    <style name="DeviceDefault.Light.ButtonBar.AlertDialog" parent="Holo.Light.ButtonBar.AlertDialog" >
-
-    </style>
-    <style name="DeviceDefault.Light.SegmentedButton" parent="Holo.Light.SegmentedButton" >
-
-    </style>
-
-    <style name="Widget.DeviceDefault.MediaRouteButton" parent="Widget.Holo.MediaRouteButton" />
-    <style name="Widget.DeviceDefault.Light.MediaRouteButton" parent="Widget.Holo.Light.MediaRouteButton" />
-
-    <style name="TextAppearance.DeviceDefault.TimePicker.TimeLabel" parent="TextAppearance.Holo.TimePicker.TimeLabel">
-    </style>
-
-    <style name="TextAppearance.DeviceDefault.Light.TimePicker.TimeLabel" parent="TextAppearance.Holo.Light.TimePicker.TimeLabel">
-    </style>
-
-    <style name="TextAppearance.DeviceDefault.TimePicker.AmPmLabel" parent="TextAppearance.Holo.TimePicker.AmPmLabel">
-    </style>
-
-    <style name="TextAppearance.DeviceDefault.Light.TimePicker.AmPmLabel" parent="TextAppearance.Holo.Light.TimePicker.AmPmLabel">
-    </style>
-
-    <style name="Theme.DeviceDefault.Dialog.TimePicker" parent="Theme.Holo.Dialog.TimePicker">
-    </style>
-
-    <style name="Theme.DeviceDefault.Light.Dialog.TimePicker" parent="Theme.Holo.Light.Dialog.TimePicker">
-    </style>
-
+    <style name="TextAppearance.DeviceDefault.TimePicker.TimeLabel" parent="TextAppearance.Quantum.TimePicker.TimeLabel"/>
+    <style name="TextAppearance.DeviceDefault.Light.TimePicker.TimeLabel" parent="TextAppearance.Quantum.Light.TimePicker.TimeLabel"/>
+    <style name="TextAppearance.DeviceDefault.TimePicker.AmPmLabel" parent="TextAppearance.Quantum.TimePicker.AmPmLabel"/>
+    <style name="TextAppearance.DeviceDefault.Light.TimePicker.AmPmLabel" parent="TextAppearance.Quantum.Light.TimePicker.AmPmLabel"/>
+    <style name="Theme.DeviceDefault.Dialog.TimePicker" parent="Theme.Quantum.Dialog.TimePicker"/>
+    <style name="Theme.DeviceDefault.Light.Dialog.TimePicker" parent="Theme.Quantum.Light.Dialog.TimePicker"/>
 </resources>
diff --git a/core/res/res/values/styles_quantum.xml b/core/res/res/values/styles_quantum.xml
index 2020fea..e42703e 100644
--- a/core/res/res/values/styles_quantum.xml
+++ b/core/res/res/values/styles_quantum.xml
@@ -33,7 +33,7 @@
     <eat-comment/>
 
     <style name="Preference.Quantum">
-        <item name="layout">@layout/preference_holo</item>
+        <item name="layout">@layout/preference_quantum</item>
     </style>
 
     <style name="PreferenceFragment.Quantum">
@@ -42,13 +42,13 @@
     </style>
 
     <style name="Preference.Quantum.Information">
-        <item name="layout">@layout/preference_information_holo</item>
+        <item name="layout">@layout/preference_information_quantum</item>
         <item name="enabled">false</item>
         <item name="shouldDisableView">false</item>
     </style>
 
     <style name="Preference.Quantum.Category">
-        <item name="layout">@layout/preference_category_holo</item>
+        <item name="layout">@layout/preference_category_quantum</item>
         <!-- The title should not dim if the category is disabled, instead only the preference children should dim. -->
         <item name="shouldDisableView">false</item>
         <item name="selectable">false</item>
@@ -277,20 +277,36 @@
         <item name="textSize">@dimen/action_bar_title_text_size_quantum</item>
     </style>
 
+    <style name="TextAppearance.Quantum.Widget.ActionMode.Title.Inverse" parent="TextAppearance.Quantum.Medium.Inverse">
+        <item name="textSize">@dimen/action_bar_title_text_size_quantum</item>
+    </style>
+
     <style name="TextAppearance.Quantum.Widget.ActionMode.Subtitle" parent="TextAppearance.Quantum.Small">
         <item name="textSize">@dimen/action_bar_subtitle_text_size_quantum</item>
     </style>
 
+    <style name="TextAppearance.Quantum.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.Quantum.Small.Inverse">
+        <item name="textSize">@dimen/action_bar_subtitle_text_size_quantum</item>
+    </style>
+
     <!-- Text styles with no light versions -->
 
     <style name="TextAppearance.Quantum.Widget.ActionBar.Title" parent="TextAppearance.Quantum.Medium">
         <item name="textSize">@dimen/action_bar_title_text_size_quantum</item>
     </style>
 
+    <style name="TextAppearance.Quantum.Widget.ActionBar.Title.Inverse" parent="TextAppearance.Quantum.Medium.Inverse">
+        <item name="textSize">@dimen/action_bar_title_text_size_quantum</item>
+    </style>
+
     <style name="TextAppearance.Quantum.Widget.ActionBar.Subtitle" parent="TextAppearance.Quantum.Small">
         <item name="textSize">@dimen/action_bar_subtitle_text_size_quantum</item>
     </style>
 
+    <style name="TextAppearance.Quantum.Widget.ActionBar.Subtitle.Inverse" parent="TextAppearance.Quantum.Small.Inverse">
+        <item name="textSize">@dimen/action_bar_subtitle_text_size_quantum</item>
+    </style>
+
     <style name="TextAppearance.Quantum.Widget.ActionBar.Menu" parent="TextAppearance.Quantum.Small">
         <item name="fontFamily">@string/font_family_menu_quantum</item>
         <item name="textSize">@dimen/text_size_menu_quantum</item>>
@@ -298,6 +314,13 @@
         <item name="textAllCaps">@bool/config_actionMenuItemAllCaps</item>
     </style>
 
+    <style name="TextAppearance.Quantum.Widget.ActionBar.Menu.Inverse" parent="TextAppearance.Quantum.Small.Inverse">
+        <item name="fontFamily">@string/font_family_menu_quantum</item>
+        <item name="textSize">@dimen/text_size_menu_quantum</item>>
+        <item name="textColor">?attr/actionMenuTextColor</item>
+        <item name="textAllCaps">@bool/config_actionMenuItemAllCaps</item>
+    </style>
+
     <style name="TextAppearance.Quantum.WindowTitle">
         <item name="textColor">?attr/textColorPrimary</item>
         <item name="fontFamily">@string/font_family_headline_quantum</item>
@@ -317,13 +340,13 @@
 
     <style name="TextAppearance.Quantum.TimePicker.TimeLabel" parent="TextAppearance.Quantum">
         <item name="textSize">@dimen/timepicker_time_label_size</item>
-        <item name="textColor">@color/timepicker_default_text_color_quantum_dark</item>
+        <item name="textColor">?attr/textColorSecondary</item>
     </style>
 
     <style name="TextAppearance.Quantum.TimePicker.AmPmLabel" parent="TextAppearance.Quantum">
         <item name="textSize">@dimen/timepicker_ampm_label_size</item>
         <item name="textAllCaps">true</item>
-        <item name="textColor">@color/timepicker_default_text_color_quantum_dark</item>
+        <item name="textColor">?attr/textColorSecondary</item>
         <item name="textStyle">bold</item>
     </style>
 
@@ -354,11 +377,11 @@
     <style name="TextAppearance.Quantum.Light.CalendarViewWeekDayView" parent="TextAppearance.Quantum.CalendarViewWeekDayView"/>
 
     <style name="TextAppearance.Quantum.Light.TimePicker.TimeLabel" parent="TextAppearance.Quantum.TimePicker.TimeLabel">
-        <item name="textColor">@color/timepicker_default_text_color_quantum_light</item>
+        <item name="textColor">?attr/textColorSecondary</item>
     </style>
 
     <style name="TextAppearance.Quantum.Light.TimePicker.AmPmLabel" parent="TextAppearance.Quantum.TimePicker.AmPmLabel">
-        <item name="textColor">@color/timepicker_default_text_color_quantum_light</item>
+        <item name="textColor">?attr/textColorSecondary</item>
     </style>
 
     <!-- Widget Styles -->
@@ -371,6 +394,7 @@
     <style name="Widget.Quantum.Button" parent="Widget.Button">
         <item name="background">@drawable/btn_default_quantum</item>
         <item name="textAppearance">?attr/textAppearanceButton</item>
+        <item name="textColor">?attr/textColorPrimary</item>
         <item name="minHeight">48dip</item>
         <item name="minWidth">96dip</item>
     </style>
@@ -420,23 +444,13 @@
     </style>
 
     <style name="Widget.Quantum.ButtonBar">
-        <item name="paddingTop">0dip</item>
-        <item name="paddingStart">0dip</item>
-        <item name="paddingEnd">0dip</item>
-        <item name="paddingBottom">0dip</item>
-        <item name="divider">?attr/dividerVertical</item>
-        <item name="showDividers">middle</item>
-        <item name="dividerPadding">12dip</item>
         <item name="background">@null</item>
     </style>
 
     <style name="Widget.Quantum.ButtonBar.AlertDialog">
         <item name="background">@null</item>
-        <item name="dividerPadding">0dp</item>
     </style>
 
-    <style name="Widget.Quantum.ButtonBar.Button"/>
-
     <style name="Widget.Quantum.SegmentedButton" parent="SegmentedButton">
         <item name="background">@drawable/btn_group_holo_dark</item>
     </style>
@@ -531,16 +545,16 @@
     <style name="Widget.Quantum.TimePicker" parent="Widget.TimePicker">
         <item name="legacyLayout">@layout/time_picker_legacy_holo</item>
         <item name="internalLayout">@layout/time_picker_holo</item>
-        <item name="disabledColor">@color/timepicker_default_disabled_color_quantum_dark</item>
-        <item name="headerSelectedTextColor">@color/holo_blue_light</item>
-        <item name="headerUnselectedTextColor">@color/timepicker_default_text_color_quantum_dark</item>
-        <item name="headerBackgroundColor">@color/timepicker_default_background_quantum_dark</item>
-        <item name="numbersTextColor">@color/timepicker_default_text_color_quantum_dark</item>
-        <item name="numbersBackgroundColor">@color/timepicker_default_background_quantum_dark</item>
-        <item name="amPmTextColor">@color/timepicker_default_text_color_quantum_dark</item>
-        <item name="amPmUnselectedBackgroundColor">@color/timepicker_default_background_quantum_dark</item>
-        <item name="amPmSelectedBackgroundColor">@color/holo_blue_light</item>
-        <item name="numbersSelectorColor">@color/holo_blue_light</item>
+        <item name="disabledColor">@color/bright_foreground_disabled_quantum_dark</item>
+        <item name="headerSelectedTextColor">?attr/colorControlActivated</item>
+        <item name="headerUnselectedTextColor">?attr/textColorPrimary</item>
+        <item name="headerBackgroundColor">?attr/colorBackground</item>
+        <item name="numbersTextColor">?attr/textColorSecondary</item>
+        <item name="numbersBackgroundColor">?attr/colorControlNormal</item>
+        <item name="amPmTextColor">?attr/textColorSecondary</item>
+        <item name="amPmUnselectedBackgroundColor">?attr/colorControlNormal</item>
+        <item name="amPmSelectedBackgroundColor">?attr/colorControlActivated</item>
+        <item name="numbersSelectorColor">?attr/colorControlActivated</item>
     </style>
 
     <style name="Widget.Quantum.DatePicker" parent="Widget.DatePicker">
@@ -607,8 +621,8 @@
     </style>
 
     <style name="Widget.Quantum.RatingBar" parent="Widget.RatingBar">
-        <item name="progressDrawable">@drawable/ratingbar_full_holo_dark</item>
-        <item name="indeterminateDrawable">@drawable/ratingbar_full_holo_dark</item>
+        <item name="progressDrawable">@drawable/ratingbar_full_quantum</item>
+        <item name="indeterminateDrawable">@drawable/ratingbar_full_quantum</item>
     </style>
 
     <style name="Widget.Quantum.RatingBar.Indicator" parent="Widget.RatingBar.Indicator">
@@ -654,7 +668,7 @@
         <item name="showDividers">middle</item>
         <item name="dividerPadding">8dip</item>
         <item name="measureWithLargestChild">true</item>
-        <item name="tabLayout">@layout/tab_indicator_holo</item>
+        <item name="tabLayout">@layout/tab_indicator_quantum</item>
     </style>
 
     <style name="Widget.Quantum.Tab" parent="Widget.Quantum.ActionBar.TabView">
@@ -699,25 +713,27 @@
     <style name="Widget.Quantum.PopupMenu" parent="Widget.Quantum.ListPopupWindow"/>
 
     <style name="Widget.Quantum.ActionButton" parent="Widget.ActionButton">
-        <item name="minWidth">@dimen/action_button_min_width</item>
+        <item name="minWidth">@dimen/action_button_min_width_quantum</item>
+        <item name="minHeight">@dimen/action_button_min_height_quantum</item>
         <item name="gravity">center</item>
-        <item name="paddingStart">12dip</item>
-        <item name="paddingEnd">12dip</item>
         <item name="scaleType">center</item>
         <item name="maxLines">2</item>
     </style>
 
     <style name="Widget.Quantum.ActionButton.CloseMode">
-        <item name="background">@drawable/btn_cab_done_holo_dark</item>
+        <item name="background">@drawable/btn_cab_done_quantum</item>
     </style>
 
     <style name="Widget.Quantum.ActionButton.Overflow">
         <item name="src">@drawable/ic_menu_moreoverflow_quantum</item>
         <item name="background">?attr/actionBarItemBackground</item>
         <item name="contentDescription">@string/action_menu_overflow_description</item>
+        <item name="minWidth">@dimen/action_overflow_min_width_quantum</item>
+        <item name="minHeight">@dimen/action_button_min_height_quantum</item>
+        <item name="scaleType">center</item>
     </style>
 
-    <style name="Widget.Quantum.ActionButton.TextButton" parent="Widget.Quantum.ButtonBar.Button"/>
+    <style name="Widget.Quantum.ActionButton.TextButton" parent="Widget.Quantum.ButtonBar"/>
 
     <style name="Widget.Quantum.ActionBar.TabView" parent="Widget.ActionBar.TabView">
         <item name="background">@drawable/tab_indicator_quantum</item>
@@ -742,29 +758,25 @@
     </style>
 
     <style name="Widget.Quantum.ActionBar" parent="Widget.ActionBar">
+        <item name="background">@null</item>
+        <item name="backgroundStacked">@null</item>
+        <item name="backgroundSplit">@null</item>
+        <item name="displayOptions">useLogo|showHome|showTitle</item>
+        <item name="divider">?attr/dividerVertical</item>
         <item name="titleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Title</item>
         <item name="subtitleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Subtitle</item>
-        <item name="background">@drawable/ab_transparent_quantum</item>
-        <item name="backgroundStacked">@drawable/ab_stacked_transparent_dark_holo</item>
-        <item name="backgroundSplit">@drawable/ab_bottom_transparent_dark_holo</item>
-        <item name="divider">?attr/dividerVertical</item>
         <item name="progressBarStyle">@style/Widget.Quantum.ProgressBar.Horizontal</item>
         <item name="indeterminateProgressStyle">@style/Widget.Quantum.ProgressBar</item>
         <item name="progressBarPadding">32dip</item>
         <item name="itemPadding">8dip</item>
+        <item name="homeLayout">@layout/action_bar_home_quantum</item>
+        <item name="gravity">center_vertical</item>
     </style>
 
     <style name="Widget.Quantum.ActionBar.Solid">
-        <item name="titleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Title</item>
-        <item name="subtitleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Subtitle</item>
-        <item name="background">@drawable/ab_solid_dark_holo</item>
-        <item name="backgroundStacked">@drawable/ab_stacked_solid_dark_holo</item>
-        <item name="backgroundSplit">@drawable/ab_bottom_solid_dark_holo</item>
-        <item name="divider">?attr/dividerVertical</item>
-        <item name="progressBarStyle">@style/Widget.Quantum.ProgressBar.Horizontal</item>
-        <item name="indeterminateProgressStyle">@style/Widget.Quantum.ProgressBar</item>
-        <item name="progressBarPadding">32dip</item>
-        <item name="itemPadding">8dip</item>
+        <item name="background">?attr/colorPrimary</item>
+        <item name="backgroundStacked">?attr/colorPrimary</item>
+        <item name="backgroundSplit">?attr/colorPrimary</item>
     </style>
 
     <style name="Widget.Quantum.ActionMode" parent="Widget.ActionMode">
@@ -786,7 +798,7 @@
 
     <style name="Widget.Quantum.MediaRouteButton">
         <item name="background">?attr/selectableItemBackground</item>
-        <item name="externalRouteEnabledDrawable">@drawable/ic_media_route_holo_dark</item>
+        <item name="externalRouteEnabledDrawable">@drawable/ic_media_route_quantum</item>
         <item name="minWidth">56dp</item>
         <item name="minHeight">48dp</item>
         <item name="focusable">true</item>
@@ -855,25 +867,16 @@
 
     <style name="Widget.Quantum.Light.NumberPicker" parent="Widget.Quantum.NumberPicker"/>
 
-    <style name="Widget.Quantum.Light.TimePicker" parent="Widget.TimePicker">
+    <style name="Widget.Quantum.Light.TimePicker" parent="Widget.Quantum.TimePicker">
         <item name="legacyLayout">@layout/time_picker_legacy_holo</item>
         <item name="internalLayout">@layout/time_picker_holo</item>
-        <item name="disabledColor">@color/timepicker_default_disabled_color_quantum_light</item>
-        <item name="headerSelectedTextColor">@color/holo_blue_light</item>
-        <item name="headerUnselectedTextColor">@color/timepicker_default_text_color_quantum_light</item>
-        <item name="headerBackgroundColor">@color/timepicker_default_background_quantum_light</item>
-        <item name="numbersTextColor">@color/timepicker_default_text_color_quantum_light</item>
-        <item name="numbersBackgroundColor">@color/timepicker_default_background_quantum_light</item>
-        <item name="amPmTextColor">@color/timepicker_default_text_color_quantum_light</item>
-        <item name="amPmUnselectedBackgroundColor">@color/timepicker_default_background_quantum_light</item>
-        <item name="amPmSelectedBackgroundColor">@color/holo_blue_light</item>
-        <item name="numbersSelectorColor">@color/holo_blue_light</item>
+        <item name="disabledColor">@color/bright_foreground_disabled_quantum_light</item>
     </style>
 
     <style name="Widget.Quantum.Light.DatePicker" parent="Widget.Quantum.DatePicker"/>
 
     <style name="Widget.Quantum.Light.ActivityChooserView" parent="Widget.Quantum.ActivityChooserView">
-        <item name="background">@drawable/ab_share_pack_holo_light</item>
+        <item name="background">@drawable/ab_share_pack_quantum</item>
     </style>
 
     <style name="Widget.Quantum.Light.ImageWell" parent="Widget.Quantum.ImageWell"/>
@@ -896,10 +899,7 @@
     <style name="Widget.Quantum.Light.ProgressBar.Large.Inverse" parent="Widget.Quantum.ProgressBar.Large.Inverse"/>
     <style name="Widget.Quantum.Light.SeekBar" parent="Widget.Quantum.SeekBar"/>
 
-    <style name="Widget.Quantum.Light.RatingBar" parent="Widget.RatingBar">
-        <item name="progressDrawable">@drawable/ratingbar_full_holo_light</item>
-        <item name="indeterminateDrawable">@drawable/ratingbar_full_holo_light</item>
-    </style>
+    <style name="Widget.Quantum.Light.RatingBar" parent="Widget.Quantum.RatingBar" />
 
     <style name="Widget.Quantum.Light.RatingBar.Indicator" parent="Widget.RatingBar.Indicator">
         <item name="progressDrawable">@drawable/ratingbar_holo_light</item>
@@ -968,31 +968,24 @@
     </style>
 
     <style name="Widget.Quantum.Light.ActionButton.CloseMode">
-        <item name="background">@drawable/btn_cab_done_holo_light</item>
+        <item name="background">@drawable/btn_cab_done_quantum</item>
     </style>
 
     <style name="Widget.Quantum.Light.ActionBar" parent="Widget.Quantum.ActionBar">
         <item name="titleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Title</item>
         <item name="subtitleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Subtitle</item>
-        <item name="background">@drawable/ab_transparent_quantum</item>
-        <item name="backgroundStacked">@drawable/ab_stacked_transparent_light_holo</item>
-        <item name="backgroundSplit">@drawable/ab_bottom_transparent_light_holo</item>
+        <item name="background">@null</item>
+        <item name="backgroundStacked">@null</item>
+        <item name="backgroundSplit">@null</item>
         <item name="homeAsUpIndicator">@drawable/ic_ab_back_quantum</item>
         <item name="progressBarStyle">@style/Widget.Quantum.Light.ProgressBar.Horizontal</item>
         <item name="indeterminateProgressStyle">@style/Widget.Quantum.Light.ProgressBar</item>
     </style>
 
     <style name="Widget.Quantum.Light.ActionBar.Solid">
-        <item name="titleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Title</item>
-        <item name="subtitleTextStyle">@style/TextAppearance.Quantum.Widget.ActionBar.Subtitle</item>
-        <item name="background">@drawable/ab_solid_light_holo</item>
-        <item name="backgroundStacked">@drawable/ab_stacked_solid_light_holo</item>
-        <item name="backgroundSplit">@drawable/ab_bottom_solid_light_holo</item>
-        <item name="divider">?attr/dividerVertical</item>
-        <item name="progressBarStyle">@style/Widget.Quantum.Light.ProgressBar.Horizontal</item>
-        <item name="indeterminateProgressStyle">@style/Widget.Quantum.Light.ProgressBar</item>
-        <item name="progressBarPadding">32dip</item>
-        <item name="itemPadding">8dip</item>
+        <item name="background">?attr/colorPrimary</item>
+        <item name="backgroundStacked">?attr/colorPrimary</item>
+        <item name="backgroundSplit">?attr/colorPrimary</item>
     </style>
 
     <style name="Widget.Quantum.Light.CompoundButton.Switch" parent="Widget.Quantum.CompoundButton.Switch">
@@ -1002,7 +995,7 @@
     <style name="Widget.Quantum.Light.FastScroll" parent="Widget.Quantum.FastScroll"/>
 
     <style name="Widget.Quantum.Light.MediaRouteButton" parent="Widget.Quantum.MediaRouteButton">
-        <item name="externalRouteEnabledDrawable">@drawable/ic_media_route_holo_light</item>
+        <item name="externalRouteEnabledDrawable">@drawable/ic_media_route_quantum</item>
     </style>
 
     <!-- Animation Styles -->
@@ -1024,13 +1017,13 @@
         <item name="bottomBright">?attr/colorBackground</item>
         <item name="bottomMedium">?attr/colorBackground</item>
         <item name="centerMedium">?attr/colorBackground</item>
-        <item name="layout">@layout/alert_dialog_holo</item>
-        <item name="listLayout">@layout/select_dialog_holo</item>
-        <item name="progressLayout">@layout/progress_dialog_holo</item>
-        <item name="horizontalProgressLayout">@layout/alert_dialog_progress_holo</item>
-        <item name="listItemLayout">@layout/select_dialog_item_holo</item>
-        <item name="multiChoiceItemLayout">@layout/select_dialog_multichoice_holo</item>
-        <item name="singleChoiceItemLayout">@layout/select_dialog_singlechoice_holo</item>
+        <item name="layout">@layout/alert_dialog_quantum</item>
+        <item name="listLayout">@layout/select_dialog_quantum</item>
+        <item name="progressLayout">@layout/progress_dialog_quantum</item>
+        <item name="horizontalProgressLayout">@layout/alert_dialog_progress_quantum</item>
+        <item name="listItemLayout">@layout/select_dialog_item_quantum</item>
+        <item name="multiChoiceItemLayout">@layout/select_dialog_multichoice_quantum</item>
+        <item name="singleChoiceItemLayout">@layout/select_dialog_singlechoice_quantum</item>
     </style>
 
     <style name="AlertDialog.Quantum.Light"/>
@@ -1043,8 +1036,7 @@
     <style name="WindowTitle.Quantum">
         <item name="singleLine">true</item>
         <item name="textAppearance">@style/TextAppearance.Quantum.WindowTitle</item>
-        <item name="shadowColor">#BB000000</item>
-        <item name="shadowRadius">2.75</item>
+        <item name="shadowRadius">0</item>
     </style>
 
     <style name="DialogWindowTitle.Quantum">
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index efa873d..ac708b8 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -346,6 +346,7 @@
   <java-symbol type="dimen" name="notification_title_text_size" />
   <java-symbol type="dimen" name="notification_subtext_size" />
   <java-symbol type="dimen" name="immersive_mode_cling_width" />
+  <java-symbol type="dimen" name="notification_quantum_rounded_rect_radius" />
 
   <java-symbol type="string" name="add_account_button_label" />
   <java-symbol type="string" name="addToDictionary" />
@@ -1091,6 +1092,7 @@
   <java-symbol type="drawable" name="unlock_ring" />
   <java-symbol type="drawable" name="unlock_wave" />
   <java-symbol type="drawable" name="notification_bg" />
+  <java-symbol type="drawable" name="notification_bg_dim" />
   <java-symbol type="drawable" name="notification_bg_low" />
   <java-symbol type="drawable" name="notification_template_icon_bg" />
   <java-symbol type="drawable" name="notification_template_icon_low_bg" />
@@ -1103,6 +1105,7 @@
   <java-symbol type="drawable" name="cling_button" />
   <java-symbol type="drawable" name="cling_arrow_up" />
   <java-symbol type="drawable" name="cling_bg" />
+  <java-symbol type="drawable" name="ic_corp_badge" />
 
   <java-symbol type="layout" name="action_bar_home" />
   <java-symbol type="layout" name="action_bar_title_item" />
@@ -1252,7 +1255,6 @@
   <java-symbol type="style" name="TextAppearance.SlidingTabNormal" />
   <java-symbol type="style" name="Theme.DeviceDefault.Dialog.NoFrame" />
   <java-symbol type="style" name="Theme.IconMenu" />
-  <java-symbol type="style" name="Theme.Panel.Volume" />
 
   <java-symbol type="attr" name="mediaRouteButtonStyle" />
   <java-symbol type="attr" name="externalRouteEnabledDrawable" />
@@ -1621,6 +1623,7 @@
   <java-symbol type="string" name="enable_explore_by_touch_warning_message" />
   <java-symbol type="bool" name="config_powerDecoupleAutoSuspendModeFromDisplay" />
   <java-symbol type="bool" name="config_powerDecoupleInteractiveModeFromDisplay" />
+  <java-symbol type="string" name="config_customAdbPublicKeyActivity" />
 
   <java-symbol type="layout" name="resolver_list" />
   <java-symbol type="id" name="resolver_list" />
@@ -1637,6 +1640,10 @@
   <java-symbol type="layout" name="notification_template_quantum_big_picture" />
   <java-symbol type="layout" name="notification_template_quantum_big_text" />
   <java-symbol type="layout" name="notification_template_quantum_inbox" />
+  <java-symbol type="color" name="notification_action_legacy_color_filter" />
+  <java-symbol type="drawable" name="notification_icon_legacy_bg_inset" />
+  <java-symbol type="drawable" name="notification_quantum_bg_dim" />
+  <java-symbol type="drawable" name="notification_quantum_bg" />
 
     <!-- From SystemUI -->
   <java-symbol type="anim" name="push_down_in" />
@@ -1825,4 +1832,12 @@
   <java-symbol type="color" name="timepicker_default_ampm_selected_background_color_holo_light" />
   <java-symbol type="array" name="config_clockTickVibePattern" />
 
+  <!-- From various Quantum changes -->
+  <java-symbol type="attr" name="toolbarStyle" />
+  <java-symbol type="attr" name="titleTextAppearance" />
+  <java-symbol type="attr" name="subtitleTextAppearance" />
+  <java-symbol type="drawable" name="ic_lock_bugreport" />
+  <java-symbol type="id" name="icon_frame" />
+  <java-symbol type="style" name="Animation.VolumePanel" />
+
 </resources>
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 3c4e848..7b3d5e3 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -126,6 +126,7 @@
         <item name="dropdownListPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
         <item name="textAppearanceListItem">?android:attr/textAppearanceLarge</item>
         <item name="textAppearanceListItemSmall">?android:attr/textAppearanceLarge</item>
+        <item name="textAppearanceListItemSecondary">?android:attr/textAppearanceSmall</item>
         <item name="listPreferredItemPaddingLeft">6dip</item>
         <item name="listPreferredItemPaddingRight">6dip</item>
         <item name="listPreferredItemPaddingStart">6dip</item>
@@ -349,9 +350,12 @@
         <item name="actionMenuTextAppearance">@android:style/TextAppearance.Holo.Widget.ActionBar.Menu</item>
         <item name="actionMenuTextColor">?android:attr/textColorPrimary</item>
         <item name="actionBarWidgetTheme">@null</item>
+        <item name="actionBarTheme">@null</item>
         <item name="actionBarDivider">?android:attr/dividerVertical</item>
         <item name="actionBarItemBackground">?android:attr/selectableItemBackground</item>
 
+        <item name="toolbarStyle">@android:style/Widget.Toolbar</item>
+
         <item name="dividerVertical">@drawable/divider_vertical_dark</item>
         <item name="dividerHorizontal">@drawable/divider_vertical_dark</item>
         <item name="buttonBarStyle">@android:style/ButtonBar</item>
@@ -699,6 +703,7 @@
         <item name="itemTextAppearance">@android:style/TextAppearance.Large.Inverse</item>
         <item name="textAppearanceListItem">@android:style/TextAppearance.Large.Inverse</item>
         <item name="textAppearanceListItemSmall">@android:style/TextAppearance.Large.Inverse</item>
+        <item name="textAppearanceListItemSecondary">@android:style/TextAppearance.Small.Inverse</item>
     </style>
 
     <!-- Default heme for the TimePicker dialog windows, which is used by the
@@ -887,11 +892,6 @@
         <item name="android:windowCloseOnTouchOutside">false</item>
     </style>
 
-    <style name="Theme.Panel.Volume">
-        <item name="android:windowAnimationStyle">@android:style/Animation.VolumePanel</item>
-        <item name="android:windowCloseOnTouchOutside">true</item>
-    </style>
-
     <!-- Default theme with an Action Bar. -->
     <style name="Theme.WithActionBar">
         <item name="android:windowActionBar">true</item>
@@ -1004,6 +1004,7 @@
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?android:attr/listPreferredItemHeightSmall</item>
         <item name="textAppearanceListItemSmall">?android:attr/textAppearanceMedium</item>
+        <item name="textAppearanceListItemSecondary">?android:attr/textAppearanceSmall</item>
         <item name="listPreferredItemPaddingLeft">8dip</item>
         <item name="listPreferredItemPaddingRight">8dip</item>
         <item name="listPreferredItemPaddingStart">8dip</item>
@@ -1192,6 +1193,7 @@
         <item name="actionBarSize">@dimen/action_bar_default_height</item>
         <item name="actionModePopupWindowStyle">@android:style/Widget.Holo.PopupWindow.ActionMode</item>
         <item name="actionBarWidgetTheme">@null</item>
+        <item name="actionBarTheme">@null</item>
 
         <item name="actionModeCutDrawable">@android:drawable/ic_menu_cut_holo_dark</item>
         <item name="actionModeCopyDrawable">@android:drawable/ic_menu_copy_holo_dark</item>
@@ -1333,6 +1335,7 @@
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?android:attr/listPreferredItemHeightSmall</item>
         <item name="textAppearanceListItemSmall">?android:attr/textAppearanceMedium</item>
+        <item name="textAppearanceListItemSecondary">?android:attr/textAppearanceSmall</item>
         <item name="listPreferredItemPaddingLeft">8dip</item>
         <item name="listPreferredItemPaddingRight">8dip</item>
         <item name="listPreferredItemPaddingStart">8dip</item>
@@ -1524,6 +1527,7 @@
         <item name="actionBarSize">@dimen/action_bar_default_height</item>
         <item name="actionModePopupWindowStyle">@android:style/Widget.Holo.Light.PopupWindow.ActionMode</item>
         <item name="actionBarWidgetTheme">@null</item>
+        <item name="actionBarTheme">@null</item>
 
         <item name="actionModeCutDrawable">@android:drawable/ic_menu_cut_holo_light</item>
         <item name="actionModeCopyDrawable">@android:drawable/ic_menu_copy_holo_light</item>
@@ -1583,6 +1587,7 @@
         <item name="android:windowContentOverlay">@android:drawable/ab_solid_shadow_holo</item>
         <item name="android:actionBarStyle">@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse</item>
         <item name="actionBarWidgetTheme">@android:style/Theme.Holo</item>
+        <item name="actionBarTheme">@null</item>
 
         <item name="actionDropDownStyle">@android:style/Widget.Holo.Spinner.DropDown.ActionBar</item>
         <item name="actionButtonStyle">@android:style/Widget.Holo.ActionButton</item>
diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml
index 19556a1..0ce5094 100644
--- a/core/res/res/values/themes_device_defaults.xml
+++ b/core/res/res/values/themes_device_defaults.xml
@@ -32,24 +32,24 @@
  -->
 <resources>
 
-    <!-- The default theme for apps that target API level 14 and higher.
+    <!-- The default theme for apps that target API level XX and higher.
          <p>The DeviceDefault themes are aliases for a specific device’s native look and feel. The
          DeviceDefault theme family and widget style family offer ways for you to target your app
          to a device’s native theme with all device customizations intact.</p>
-         <p>For example, when you set your app's {@code targetSdkVersion} to 14 or higher, this
+         <p>For example, when you set your app's {@code targetSdkVersion} to XX or higher, this
          theme is applied to your application by default. As such, your app might appear with the
-         {@link #Theme_Holo Holo} styles on one device, but with a different set of styles on
+         {@link #Theme_Quantum Quantum} styles on one device, but with a different set of styles on
          another device. This is great if you want your app to fit with the device's native look and
          feel. If, however, you prefer to keep your UI style the same across all devices, you should
-         apply a specific theme such as {@link #Theme_Holo Holo} or one of your own design. For more
-         information, read <a
-         href="http://android-developers.blogspot.com/2012/01/holo-everywhere.html">Holo
+         apply a specific theme such as {@link #Theme_Quantum Quantum} or one of your own design.
+         For more information, read <a
+         href="http://android-developers.blogspot.com/20XX/XX/quantum-everywhere.html">Quantum
          Everywhere</a>.</p>
          <p>Styles used by the DeviceDefault theme are named using the convention
          Type.DeviceDefault.Etc (for example, {@code Widget.DeviceDefault.Button} and
          {@code TextAppearance.DeviceDefault.Widget.PopupMenu.Large}).</p>
           -->
-    <style name="Theme.DeviceDefault" parent="Theme.Holo" >
+    <style name="Theme.DeviceDefault" parent="Theme.Quantum" >
         <!-- Text styles -->
         <item name="textAppearance">@android:style/TextAppearance.DeviceDefault</item>
         <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Inverse</item>
@@ -210,29 +210,29 @@
     </style>
 
     <!-- Variant of {@link #Theme_DeviceDefault} with no action bar -->
-    <style name="Theme.DeviceDefault.NoActionBar" parent="Theme.Holo.NoActionBar" >
+    <style name="Theme.DeviceDefault.NoActionBar" parent="Theme.Quantum.NoActionBar" >
     </style>
 
     <!-- Variant of {@link #Theme_DeviceDefault} with no action bar and no status bar.  This theme
          sets {@link android.R.attr#windowFullscreen} to true.  -->
-    <style name="Theme.DeviceDefault.NoActionBar.Fullscreen" parent="Theme.Holo.NoActionBar.Fullscreen" >
+    <style name="Theme.DeviceDefault.NoActionBar.Fullscreen" parent="Theme.Quantum.NoActionBar.Fullscreen" >
     </style>
 
     <!-- Variant of {@link #Theme_DeviceDefault} with no action bar and no status bar and
     extending in to overscan region.  This theme
     sets {@link android.R.attr#windowFullscreen} and {@link android.R.attr#windowOverscan}
     to true. -->
-    <style name="Theme.DeviceDefault.NoActionBar.Overscan" parent="Theme.Holo.NoActionBar.Overscan" >
+    <style name="Theme.DeviceDefault.NoActionBar.Overscan" parent="Theme.Quantum.NoActionBar.Overscan" >
     </style>
 
     <!-- Variant of {@link #Theme_DeviceDefault} that has no title bar and translucent
          system decor.  This theme sets {@link android.R.attr#windowTranslucentStatus} and
          {@link android.R.attr#windowTranslucentNavigation} to true. -->
-    <style name="Theme.DeviceDefault.NoActionBar.TranslucentDecor" parent="Theme.Holo.NoActionBar.TranslucentDecor" >
+    <style name="Theme.DeviceDefault.NoActionBar.TranslucentDecor" parent="Theme.Quantum.NoActionBar.TranslucentDecor" >
     </style>
 
     <!-- Variant of {@link #Theme_DeviceDefault} with a light-colored style -->
-    <style name="Theme.DeviceDefault.Light" parent="Theme.Holo.Light" >
+    <style name="Theme.DeviceDefault.Light" parent="Theme.Quantum.Light" >
         <!-- Text styles -->
         <item name="textAppearance">@android:style/TextAppearance.DeviceDefault.Light</item>
         <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Light.Inverse</item>
@@ -387,29 +387,29 @@
         <item name="mediaRouteButtonStyle">@android:style/Widget.DeviceDefault.Light.MediaRouteButton</item>
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Light} with no action bar -->
-    <style name="Theme.DeviceDefault.Light.NoActionBar" parent="Theme.Holo.Light.NoActionBar" >
+    <style name="Theme.DeviceDefault.Light.NoActionBar" parent="Theme.Quantum.Light.NoActionBar" >
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Light} with no action bar and no status bar.
          This theme sets {@link android.R.attr#windowFullscreen} to true.  -->
-    <style name="Theme.DeviceDefault.Light.NoActionBar.Fullscreen" parent="Theme.Holo.Light.NoActionBar.Fullscreen" >
+    <style name="Theme.DeviceDefault.Light.NoActionBar.Fullscreen" parent="Theme.Quantum.Light.NoActionBar.Fullscreen" >
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Light} with no action bar and no status bar
     and extending in to overscan region.  This theme
     sets {@link android.R.attr#windowFullscreen} and {@link android.R.attr#windowOverscan}
     to true. -->
     <style name="Theme.DeviceDefault.Light.NoActionBar.Overscan"
-           parent="Theme.Holo.Light.NoActionBar.Overscan" >
+           parent="Theme.Quantum.Light.NoActionBar.Overscan" >
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Light} that has no title bar and translucent
          system decor.  This theme sets {@link android.R.attr#windowTranslucentStatus} and
          {@link android.R.attr#windowTranslucentNavigation} to true. -->
     <style name="Theme.DeviceDefault.Light.NoActionBar.TranslucentDecor"
-           parent="Theme.Holo.Light.NoActionBar.TranslucentDecor" >
+           parent="Theme.Quantum.Light.NoActionBar.TranslucentDecor" >
     </style>
     <!-- DeviceDefault theme for dialog windows and activities. This changes the window to be
     floating (not fill the entire screen), and puts a frame around its contents. You can set this
     theme on an activity if you would like to make an activity that looks like a Dialog. -->
-    <style name="Theme.DeviceDefault.Dialog" parent="Theme.Holo.Dialog" >
+    <style name="Theme.DeviceDefault.Dialog" parent="Theme.Quantum.Dialog" >
         <item name="android:windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault</item>
         <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Dialog</item>
 
@@ -421,16 +421,16 @@
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Dialog} that has a nice minimum width for a
     regular dialog. -->
-    <style name="Theme.DeviceDefault.Dialog.MinWidth" parent="Theme.Holo.Dialog.MinWidth" >
+    <style name="Theme.DeviceDefault.Dialog.MinWidth" parent="Theme.Quantum.Dialog.MinWidth" >
 
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Dialog} without an action bar -->
-    <style name="Theme.DeviceDefault.Dialog.NoActionBar" parent="Theme.Holo.Dialog.NoActionBar" >
+    <style name="Theme.DeviceDefault.Dialog.NoActionBar" parent="Theme.Quantum.Dialog.NoActionBar" >
 
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Dialog_NoActionBar} that has a nice minimum width
     for a regular dialog. -->
-    <style name="Theme.DeviceDefault.Dialog.NoActionBar.MinWidth" parent="Theme.Holo.Dialog.NoActionBar.MinWidth" >
+    <style name="Theme.DeviceDefault.Dialog.NoActionBar.MinWidth" parent="Theme.Quantum.Dialog.NoActionBar.MinWidth" >
 
     </style>
 
@@ -453,7 +453,7 @@
     <!-- DeviceDefault light theme for dialog windows and activities. This changes the window to be
     floating (not fill the entire screen), and puts a frame around its contents. You can set this
     theme on an activity if you would like to make an activity that looks like a Dialog.-->
-    <style name="Theme.DeviceDefault.Light.Dialog" parent="Theme.Holo.Light.Dialog" >
+    <style name="Theme.DeviceDefault.Light.Dialog" parent="Theme.Quantum.Light.Dialog" >
         <item name="android:windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault.Light</item>
         <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Dialog</item>
 
@@ -465,16 +465,16 @@
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Light_Dialog} that has a nice minimum width for a
     regular dialog. -->
-    <style name="Theme.DeviceDefault.Light.Dialog.MinWidth" parent="Theme.Holo.Light.Dialog.MinWidth" >
+    <style name="Theme.DeviceDefault.Light.Dialog.MinWidth" parent="Theme.Quantum.Light.Dialog.MinWidth" >
 
     </style>
      <!-- Variant of {@link #Theme_DeviceDefault_Light_Dialog} without an action bar -->
-    <style name="Theme.DeviceDefault.Light.Dialog.NoActionBar" parent="Theme.Holo.Light.Dialog.NoActionBar" >
+    <style name="Theme.DeviceDefault.Light.Dialog.NoActionBar" parent="Theme.Quantum.Light.Dialog.NoActionBar" >
 
     </style>
     <!-- Variant of {@link #Theme_DeviceDefault_Light_Dialog_NoActionBar} that has a nice minimum
     width for a regular dialog. -->
-    <style name="Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth" parent="Theme.Holo.Light.Dialog.NoActionBar.MinWidth" >
+    <style name="Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth" parent="Theme.Quantum.Light.Dialog.NoActionBar.MinWidth" >
 
     </style>
 
@@ -496,65 +496,65 @@
 
     <!-- DeviceDefault theme for a window that will be displayed either full-screen on smaller
     screens (small, normal) or as a dialog on larger screens (large, xlarge). -->
-    <style name="Theme.DeviceDefault.DialogWhenLarge" parent="Theme.Holo.DialogWhenLarge" >
+    <style name="Theme.DeviceDefault.DialogWhenLarge" parent="Theme.Quantum.DialogWhenLarge" >
 
     </style>
     <!-- DeviceDefault theme for a window without an action bar that will be displayed either
     full-screen on smaller screens (small, normal) or as a dialog on larger screens (large,
     xlarge). -->
-    <style name="Theme.DeviceDefault.DialogWhenLarge.NoActionBar" parent="Theme.Holo.DialogWhenLarge.NoActionBar" >
+    <style name="Theme.DeviceDefault.DialogWhenLarge.NoActionBar" parent="Theme.Quantum.DialogWhenLarge.NoActionBar" >
 
     </style>
     <!-- DeviceDefault light theme for a window that will be displayed either full-screen on smaller
     screens (small, normal) or as a dialog on larger screens (large, xlarge). -->
-    <style name="Theme.DeviceDefault.Light.DialogWhenLarge" parent="Theme.Holo.Light.DialogWhenLarge" >
+    <style name="Theme.DeviceDefault.Light.DialogWhenLarge" parent="Theme.Quantum.Light.DialogWhenLarge" >
 
     </style>
     <!-- DeviceDefault light theme for a window without an action bar that will be displayed either
     full-screen on smaller screens (small, normal) or as a dialog on larger screens (large,
     xlarge). -->
-    <style name="Theme.DeviceDefault.Light.DialogWhenLarge.NoActionBar" parent="Theme.Holo.Light.DialogWhenLarge.NoActionBar" >
+    <style name="Theme.DeviceDefault.Light.DialogWhenLarge.NoActionBar" parent="Theme.Quantum.Light.DialogWhenLarge.NoActionBar" >
 
     </style>
 
     <!-- DeviceDefault theme for a presentation window on a secondary display. -->
-    <style name="Theme.DeviceDefault.Dialog.Presentation" parent="Theme.Holo.Dialog.Presentation">
+    <style name="Theme.DeviceDefault.Dialog.Presentation" parent="Theme.Quantum.Dialog.Presentation">
     </style>
 
     <!-- DeviceDefault light theme for a presentation window on a secondary display. -->
-    <style name="Theme.DeviceDefault.Light.Dialog.Presentation" parent="Theme.Holo.Light.Dialog.Presentation">
+    <style name="Theme.DeviceDefault.Light.Dialog.Presentation" parent="Theme.Quantum.Light.Dialog.Presentation">
     </style>
 
     <!-- DeviceDefault theme for panel windows. This removes all extraneous window
     decorations, so you basically have an empty rectangle in which to place your content. It makes
     the window floating, with a transparent background, and turns off dimming behind the window. -->
-    <style name="Theme.DeviceDefault.Panel" parent="Theme.Holo.Panel" >
+    <style name="Theme.DeviceDefault.Panel" parent="Theme.Quantum.Panel" >
 
     </style>
     <!-- DeviceDefault light theme for panel windows. This removes all extraneous window
     decorations, so you basically have an empty rectangle in which to place your content. It makes
     the window floating, with a transparent background, and turns off dimming behind the window. -->
-    <style name="Theme.DeviceDefault.Light.Panel" parent="Theme.Holo.Light.Panel" >
+    <style name="Theme.DeviceDefault.Light.Panel" parent="Theme.Quantum.Light.Panel" >
 
     </style>
     <!-- DeviceDefault theme for windows that want to have the user's selected wallpaper appear
     behind them. -->
-    <style name="Theme.DeviceDefault.Wallpaper" parent="Theme.Holo.Wallpaper" >
+    <style name="Theme.DeviceDefault.Wallpaper" parent="Theme.Quantum.Wallpaper" >
 
     </style>
     <!-- DeviceDefault theme for windows that want to have the user's selected wallpaper appear
     behind them and without an action bar. -->
-    <style name="Theme.DeviceDefault.Wallpaper.NoTitleBar" parent="Theme.Holo.Wallpaper.NoTitleBar" >
+    <style name="Theme.DeviceDefault.Wallpaper.NoTitleBar" parent="Theme.Quantum.Wallpaper.NoTitleBar" >
 
     </style>
     <!-- DeviceDefault style for input methods, which is used by the
          {@link android.inputmethodservice.InputMethodService} class.-->
-    <style name="Theme.DeviceDefault.InputMethod" parent="Theme.Holo.InputMethod" >
+    <style name="Theme.DeviceDefault.InputMethod" parent="Theme.Quantum.InputMethod" >
 
     </style>
     <!-- Variant of the DeviceDefault (light) theme that has a solid (opaque) action bar with an
     inverse color profile. -->
-    <style name="Theme.DeviceDefault.Light.DarkActionBar" parent="Theme.Holo.Light.DarkActionBar" >
+    <style name="Theme.DeviceDefault.Light.DarkActionBar" parent="Theme.Quantum.Light.DarkActionBar" >
         <item name="android:actionBarStyle">@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse</item>
 
         <item name="actionDropDownStyle">@android:style/Widget.DeviceDefault.Spinner.DropDown.ActionBar</item>
@@ -569,20 +569,20 @@
 
     </style>
 
-    <style name="Theme.DeviceDefault.Dialog.Alert" parent="Theme.Holo.Dialog.Alert">
+    <style name="Theme.DeviceDefault.Dialog.Alert" parent="Theme.Quantum.Dialog.Alert">
         <item name="windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault</item>
     </style>
-    <style name="Theme.DeviceDefault.Light.Dialog.Alert" parent="Theme.Holo.Light.Dialog.Alert">
+    <style name="Theme.DeviceDefault.Light.Dialog.Alert" parent="Theme.Quantum.Light.Dialog.Alert">
         <item name="windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault.Light</item>
     </style>
-    <style name="Theme.DeviceDefault.SearchBar" parent="Theme.Holo.SearchBar">
+    <style name="Theme.DeviceDefault.SearchBar" parent="Theme.Quantum.SearchBar">
 
     </style>
-    <style name="Theme.DeviceDefault.Light.SearchBar" parent="Theme.Holo.Light.SearchBar">
+    <style name="Theme.DeviceDefault.Light.SearchBar" parent="Theme.Quantum.Light.SearchBar">
 
     </style>
 
-    <style name="Theme.DeviceDefault.Dialog.NoFrame" parent="Theme.Holo.Dialog.NoFrame">
+    <style name="Theme.DeviceDefault.Dialog.NoFrame" parent="Theme.Quantum.Dialog.NoFrame">
     </style>
 
 </resources>
diff --git a/core/res/res/values/themes_quantum.xml b/core/res/res/values/themes_quantum.xml
index 24abd55..a28496e 100644
--- a/core/res/res/values/themes_quantum.xml
+++ b/core/res/res/values/themes_quantum.xml
@@ -109,11 +109,13 @@
         <item name="listPreferredItemHeightSmall">48dip</item>
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="textAppearanceListItemSmall">?attr/textAppearanceMedium</item>
-        <item name="listPreferredItemPaddingLeft">8dip</item>
-        <item name="listPreferredItemPaddingRight">8dip</item>
-        <item name="listPreferredItemPaddingStart">8dip</item>
-        <item name="listPreferredItemPaddingEnd">8dip</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.Quantum.Subhead</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.Quantum.Subhead</item>
+        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Quantum.Body1</item>
+        <item name="listPreferredItemPaddingLeft">16dip</item>
+        <item name="listPreferredItemPaddingRight">16dip</item>
+        <item name="listPreferredItemPaddingStart">16dip</item>
+        <item name="listPreferredItemPaddingEnd">16dip</item>
 
         <!-- @hide -->
         <item name="searchResultListItemHeight">58dip</item>
@@ -121,7 +123,7 @@
         <item name="listSeparatorTextViewStyle">@style/Widget.Quantum.TextView.ListSeparator</item>
 
         <item name="listChoiceIndicatorSingle">@drawable/btn_radio_quantum</item>
-        <item name="listChoiceIndicatorMultiple">@drawable/btn_check_quantum</item>
+        <item name="listChoiceIndicatorMultiple">@drawable/btn_check_quantum_anim</item>
 
         <item name="listChoiceBackgroundIndicator">@drawable/list_selector_holo_dark</item>
 
@@ -154,7 +156,7 @@
         <item name="windowTitleStyle">@style/WindowTitle.Quantum</item>
         <item name="windowTitleSize">25dip</item>
         <item name="windowTitleBackgroundStyle">@style/WindowTitleBackground.Quantum</item>
-        <item name="windowContentTransitions">true</item>
+        <item name="windowContentTransitions">false</item>
         <item name="windowAnimationStyle">@style/Animation.Quantum.Activity</item>
         <item name="windowSoftInputMode">stateUnspecified|adjustUnspecified</item>
         <item name="windowActionBar">true</item>
@@ -162,9 +164,9 @@
 
         <!-- Dialog attributes -->
         <item name="dialogTheme">@style/Theme.Quantum.Dialog</item>
-        <item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_holo</item>
-        <item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_holo</item>
-        <item name="dialogTitleDecorLayout">@layout/dialog_title_holo</item>
+        <item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_quantum</item>
+        <item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_quantum</item>
+        <item name="dialogTitleDecorLayout">@layout/dialog_title_quantum</item>
 
         <!-- AlertDialog attributes -->
         <item name="alertDialogTheme">@style/Theme.Quantum.Dialog.Alert</item>
@@ -200,9 +202,9 @@
         <item name="scrollbarTrackVertical">@null</item>
 
         <!-- Text selection handle attributes -->
-        <item name="textSelectHandleLeft">@drawable/text_select_handle_left</item>
-        <item name="textSelectHandleRight">@drawable/text_select_handle_right</item>
-        <item name="textSelectHandle">@drawable/text_select_handle_middle</item>
+        <item name="textSelectHandleLeft">@drawable/text_select_handle_left_quantum</item>
+        <item name="textSelectHandleRight">@drawable/text_select_handle_right_quantum</item>
+        <item name="textSelectHandle">@drawable/text_select_handle_middle_quantum</item>
         <item name="textSelectHandleWindowStyle">@style/Widget.Quantum.TextSelectHandle</item>
         <item name="textSuggestionsWindowStyle">@style/Widget.Quantum.TextSuggestionsPopupWindow</item>
         <item name="textCursorDrawable">@drawable/text_cursor_quantum</item>
@@ -269,6 +271,7 @@
         <!-- Preference styles -->
         <item name="preferenceScreenStyle">@style/Preference.Quantum.PreferenceScreen</item>
         <item name="preferenceFragmentStyle">@style/PreferenceFragment.Quantum</item>
+        <item name="preferenceFragmentPaddingSide">0dip</item>
         <item name="preferenceCategoryStyle">@style/Preference.Quantum.Category</item>
         <item name="preferenceStyle">@style/Preference.Quantum</item>
         <item name="preferenceInformationStyle">@style/Preference.Quantum.Information</item>
@@ -278,7 +281,7 @@
         <item name="dialogPreferenceStyle">@style/Preference.Quantum.DialogPreference</item>
         <item name="editTextPreferenceStyle">@style/Preference.Quantum.DialogPreference.EditTextPreference</item>
         <item name="ringtonePreferenceStyle">@style/Preference.Quantum.RingtonePreference</item>
-        <item name="preferenceLayoutChild">@layout/preference_child_holo</item>
+        <item name="preferenceLayoutChild">@layout/preference_child_quantum</item>
         <item name="detailsElementBackground">?attr/colorBackground</item>
 
         <!-- Search widget styles -->
@@ -288,18 +291,19 @@
         <item name="actionDropDownStyle">@style/Widget.Quantum.Spinner.DropDown.ActionBar</item>
         <item name="actionButtonStyle">@style/Widget.Quantum.ActionButton</item>
         <item name="actionOverflowButtonStyle">@style/Widget.Quantum.ActionButton.Overflow</item>
-        <item name="actionModeBackground">@color/theme_color_700</item>
-        <item name="actionModeSplitBackground">@color/theme_color_700</item>
+        <item name="actionModeBackground">?attr/colorPrimaryDark</item>
+        <item name="actionModeSplitBackground">?attr/colorPrimaryDark</item>
         <item name="actionModeCloseDrawable">@drawable/ic_cab_done_quantum</item>
         <item name="actionBarTabStyle">@style/Widget.Quantum.ActionBar.TabView</item>
         <item name="actionBarTabBarStyle">@style/Widget.Quantum.ActionBar.TabBar</item>
         <item name="actionBarTabTextStyle">@style/Widget.Quantum.ActionBar.TabText</item>
         <item name="actionModeStyle">@style/Widget.Quantum.ActionMode</item>
         <item name="actionModeCloseButtonStyle">@style/Widget.Quantum.ActionButton.CloseMode</item>
-        <item name="actionBarStyle">@style/Widget.Quantum.ActionBar</item>
-        <item name="actionBarSize">@dimen/action_bar_default_height</item>
+        <item name="actionBarStyle">@style/Widget.Quantum.ActionBar.Solid</item>
+        <item name="actionBarSize">@dimen/action_bar_default_height_quantum</item>
         <item name="actionModePopupWindowStyle">@style/Widget.Quantum.PopupWindow.ActionMode</item>
         <item name="actionBarWidgetTheme">@null</item>
+        <item name="actionBarTheme">@style/ThemeOverlay.Quantum.ActionBarWidget</item>
         <item name="actionBarItemBackground">@drawable/item_background_quantum</item>
 
         <item name="actionModeCutDrawable">@drawable/ic_menu_cut_quantum</item>
@@ -317,7 +321,14 @@
         <item name="segmentedButtonStyle">@style/Widget.Quantum.SegmentedButton</item>
 
         <!-- SearchView attributes -->
-        <item name="searchDropdownBackground">@drawable/search_dropdown_dark</item>
+        <item name="searchDropdownBackground">?attr/colorBackground</item>
+        <item name="searchViewTextField">@drawable/textfield_search_quantum</item>
+        <item name="searchViewTextFieldRight">@drawable/textfield_search_quantum</item>
+        <item name="searchViewCloseIcon">@android:drawable/ic_clear_quantum</item>
+        <item name="searchViewSearchIcon">@android:drawable/ic_search_api_quantum</item>
+        <item name="searchViewGoIcon">@android:drawable/ic_go_search_api_quantum</item>
+        <item name="searchViewVoiceIcon">@android:drawable/ic_voice_search_api_quantum</item>
+        <item name="searchViewEditQuery">@android:drawable/ic_commit_search_api_quantum</item>
 
         <item name="searchDialogTheme">@style/Theme.Quantum.SearchBar</item>
 
@@ -334,7 +345,7 @@
         <item name="timePickerStyle">@style/Widget.Quantum.TimePicker</item>
 
         <!-- TimePicker background color -->
-        <item name="timePickerHeaderBackgroundColor">@color/timepicker_default_background_quantum_dark</item>
+        <item name="timePickerHeaderBackgroundColor">?colorBackground</item>
 
         <!-- TimePicker Header time label text appearance -->
         <item name="timePickerHeaderTimeLabelTextAppearance">@style/TextAppearance.Quantum.TimePicker.TimeLabel</item>
@@ -356,13 +367,18 @@
         <item name="fastScrollOverlayPosition">atThumb</item>
 
         <!-- Color palette -->
-        <item name="colorControlNormal">@color/control_normal_foreground_quantum_dark</item>
-        <item name="colorControlActivated">@color/control_activated_foreground_quantum_dark</item>
-        <item name="colorButtonNormal">@color/btn_default_normal_quantum_dark</item>
-        <item name="colorButtonPressed">@color/btn_default_pressed_quantum_dark</item>
+        <item name="colorPrimaryDark">@color/quantum_blue_700</item>
+        <item name="colorPrimary">@color/quantum_blue_500</item>
+        <item name="colorPrimaryLight">@color/quantum_blue_100</item>
+        <item name="colorAccent">@color/quantum_teal_A200</item>
+
+        <item name="colorControlNormal">?attr/textColorSecondary</item>
+        <item name="colorControlActivated">?attr/colorPrimary</item>
+        <item name="colorButtonNormal">@color/quantum_grey_700</item>
+        <item name="colorButtonPressed">@color/quantum_grey_500</item>
         <!-- TODO: Remove these attrs and move into button style. -->
-        <item name="colorButtonNormalColored">@color/theme_color_500</item>
-        <item name="colorButtonPressedColored">@color/theme_color_300</item>
+        <item name="colorButtonNormalColored">?attr/colorPrimary</item>
+        <item name="colorButtonPressedColored">?attr/colorPrimaryLight</item>
     </style>
 
     <!-- Quantum Paper theme (light version). -->
@@ -436,11 +452,13 @@
         <item name="listPreferredItemHeightSmall">48dip</item>
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="textAppearanceListItemSmall">?attr/textAppearanceMedium</item>
-        <item name="listPreferredItemPaddingLeft">8dip</item>
-        <item name="listPreferredItemPaddingRight">8dip</item>
-        <item name="listPreferredItemPaddingStart">8dip</item>
-        <item name="listPreferredItemPaddingEnd">8dip</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.Quantum.Subhead</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.Quantum.Subhead</item>
+        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Quantum.Body1</item>
+        <item name="listPreferredItemPaddingLeft">16dip</item>
+        <item name="listPreferredItemPaddingRight">16dip</item>
+        <item name="listPreferredItemPaddingStart">16dip</item>
+        <item name="listPreferredItemPaddingEnd">16dip</item>
 
         <!-- @hide -->
         <item name="searchResultListItemHeight">58dip</item>
@@ -448,7 +466,7 @@
         <item name="listSeparatorTextViewStyle">@style/Widget.Quantum.Light.TextView.ListSeparator</item>
 
         <item name="listChoiceIndicatorSingle">@drawable/btn_radio_quantum</item>
-        <item name="listChoiceIndicatorMultiple">@drawable/btn_check_quantum</item>
+        <item name="listChoiceIndicatorMultiple">@drawable/btn_check_quantum_anim</item>
 
         <item name="listChoiceBackgroundIndicator">@drawable/list_selector_holo_light</item>
 
@@ -476,7 +494,7 @@
         <item name="windowFullscreen">false</item>
         <item name="windowOverscan">false</item>
         <item name="windowIsFloating">false</item>
-        <item name="windowContentOverlay">@drawable/ab_solid_shadow_qntm</item>
+        <item name="windowContentOverlay">@drawable/ab_solid_shadow_quantum</item>
         <item name="windowShowWallpaper">false</item>
         <item name="windowTitleStyle">@style/WindowTitle.Quantum</item>
         <item name="windowTitleSize">25dip</item>
@@ -488,9 +506,9 @@
 
         <!-- Dialog attributes -->
         <item name="dialogTheme">@style/Theme.Quantum.Light.Dialog</item>
-        <item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_holo</item>
-        <item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_holo</item>
-        <item name="dialogTitleDecorLayout">@layout/dialog_title_holo</item>
+        <item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_quantum</item>
+        <item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_quantum</item>
+        <item name="dialogTitleDecorLayout">@layout/dialog_title_quantum</item>
 
         <!-- AlertDialog attributes -->
         <item name="alertDialogTheme">@style/Theme.Quantum.Light.Dialog.Alert</item>
@@ -526,9 +544,9 @@
         <item name="scrollbarTrackVertical">@null</item>
 
         <!-- Text selection handle attributes -->
-        <item name="textSelectHandleLeft">@drawable/text_select_handle_left</item>
-        <item name="textSelectHandleRight">@drawable/text_select_handle_right</item>
-        <item name="textSelectHandle">@drawable/text_select_handle_middle</item>
+        <item name="textSelectHandleLeft">@drawable/text_select_handle_left_quantum</item>
+        <item name="textSelectHandleRight">@drawable/text_select_handle_right_quantum</item>
+        <item name="textSelectHandle">@drawable/text_select_handle_middle_quantum</item>
         <item name="textSelectHandleWindowStyle">@style/Widget.Quantum.TextSelectHandle</item>
         <item name="textSuggestionsWindowStyle">@style/Widget.Quantum.Light.TextSuggestionsPopupWindow</item>
         <item name="textCursorDrawable">@drawable/text_cursor_quantum</item>
@@ -595,6 +613,7 @@
         <!-- Preference styles -->
         <item name="preferenceScreenStyle">@style/Preference.Quantum.PreferenceScreen</item>
         <item name="preferenceFragmentStyle">@style/PreferenceFragment.Quantum</item>
+        <item name="preferenceFragmentPaddingSide">0dip</item>
         <item name="preferenceCategoryStyle">@style/Preference.Quantum.Category</item>
         <item name="preferenceStyle">@style/Preference.Quantum</item>
         <item name="preferenceInformationStyle">@style/Preference.Quantum.Information</item>
@@ -604,7 +623,7 @@
         <item name="dialogPreferenceStyle">@style/Preference.Quantum.DialogPreference</item>
         <item name="editTextPreferenceStyle">@style/Preference.Quantum.DialogPreference.EditTextPreference</item>
         <item name="ringtonePreferenceStyle">@style/Preference.Quantum.RingtonePreference</item>
-        <item name="preferenceLayoutChild">@layout/preference_child_holo</item>
+        <item name="preferenceLayoutChild">@layout/preference_child_quantum</item>
         <item name="detailsElementBackground">?attr/colorBackground</item>
 
         <!-- PreferenceFrameLayout attributes -->
@@ -626,9 +645,10 @@
         <item name="actionModeStyle">@style/Widget.Quantum.Light.ActionMode</item>
         <item name="actionModeCloseButtonStyle">@style/Widget.Quantum.Light.ActionButton.CloseMode</item>
         <item name="actionBarStyle">@style/Widget.Quantum.Light.ActionBar.Solid</item>
-        <item name="actionBarSize">@dimen/action_bar_default_height</item>
+        <item name="actionBarSize">@dimen/action_bar_default_height_quantum</item>
         <item name="actionModePopupWindowStyle">@style/Widget.Quantum.Light.PopupWindow.ActionMode</item>
         <item name="actionBarWidgetTheme">@null</item>
+        <item name="actionBarTheme">@style/ThemeOverlay.Quantum.Light.ActionBarWidget</item>
         <item name="actionBarItemBackground">@drawable/item_background_quantum</item>
 
         <item name="actionModeCutDrawable">@drawable/ic_menu_cut_quantum</item>
@@ -646,7 +666,14 @@
         <item name="segmentedButtonStyle">@style/Widget.Quantum.Light.SegmentedButton</item>
 
         <!-- SearchView attributes -->
-        <item name="searchDropdownBackground">@drawable/search_dropdown_light</item>
+        <item name="searchDropdownBackground">?attr/colorBackground</item>
+        <item name="searchViewTextField">@drawable/textfield_search_quantum</item>
+        <item name="searchViewTextFieldRight">@drawable/textfield_search_quantum</item>
+        <item name="searchViewCloseIcon">@android:drawable/ic_clear_quantum</item>
+        <item name="searchViewSearchIcon">@android:drawable/ic_search_api_quantum</item>
+        <item name="searchViewGoIcon">@android:drawable/ic_go_search_api_quantum</item>
+        <item name="searchViewVoiceIcon">@android:drawable/ic_voice_search_api_quantum</item>
+        <item name="searchViewEditQuery">@android:drawable/ic_commit_search_api_quantum</item>
 
         <item name="searchDialogTheme">@style/Theme.Quantum.Light.SearchBar</item>
 
@@ -660,7 +687,7 @@
         <item name="timePickerStyle">@style/Widget.Quantum.Light.TimePicker</item>
 
         <!-- TimePicker Header background color -->
-        <item name="timePickerHeaderBackgroundColor">@color/timepicker_default_background_quantum_light</item>
+        <item name="timePickerHeaderBackgroundColor">?attr/colorBackground</item>
 
         <!-- TimePicker Header time label text appearance -->
         <item name="timePickerHeaderTimeLabelTextAppearance">@style/TextAppearance.Quantum.Light.TimePicker.TimeLabel</item>
@@ -681,20 +708,43 @@
         <item name="fastScrollOverlayPosition">atThumb</item>
 
         <!-- Color palette -->
-        <item name="colorControlNormal">@color/control_normal_foreground_quantum_light</item>
-        <item name="colorControlActivated">@color/control_activated_foreground_quantum_light</item>
-        <item name="colorButtonNormal">@color/btn_default_normal_quantum_light</item>
-        <item name="colorButtonPressed">@color/btn_default_pressed_quantum_light</item>
+        <item name="colorPrimaryDark">@color/quantum_blue_700</item>
+        <item name="colorPrimary">@color/quantum_blue_500</item>
+        <item name="colorPrimaryLight">@color/quantum_blue_100</item>
+        <item name="colorAccent">@color/quantum_teal_A200</item>
+
+        <item name="colorControlNormal">?attr/textColorSecondary</item>
+        <item name="colorControlActivated">?attr/colorPrimary</item>
+        <item name="colorButtonNormal">@color/quantum_grey_100</item>
+        <item name="colorButtonPressed">@color/quantum_grey_500</item>
         <!-- TODO: Remove these attrs and move into button style. -->
-        <item name="colorButtonNormalColored">@color/theme_color_500</item>
-        <item name="colorButtonPressedColored">@color/theme_color_700</item>
+        <item name="colorButtonNormalColored">?attr/colorPrimary</item>
+        <item name="colorButtonPressedColored">?attr/colorPrimaryDark</item>
+    </style>
+
+    <style name="ThemeOverlay" />
+    <style name="ThemeOverlay.Quantum" />
+    <style name="ThemeOverlay.Quantum.Light" />
+
+    <!-- Variant of the quantum theme that replaces the activated control color
+         (which by default is identical to the action bar background color) with
+         the normal control color . -->
+    <style name="ThemeOverlay.Quantum.ActionBarWidget">
+        <item name="colorControlActivated">?attr/colorControlNormal</item>
+    </style>
+
+    <!-- Variant of the quantum (light) theme that replaces the activated control
+         color (which by default is identical to the action bar background color)
+         with the normal control color . -->
+    <style name="ThemeOverlay.Quantum.Light.ActionBarWidget">
+        <item name="colorControlActivated">?attr/colorControlNormal</item>
     </style>
 
     <!-- Variant of the quantum (light) theme that has a solid (opaque) action bar
          with an inverse color profile. The dark action bar sharply stands out against
          the light content. -->
     <style name="Theme.Quantum.Light.DarkActionBar">
-        <item name="actionBarTheme">@style/Theme.Quantum</item>
+        <!-- TODO -->
     </style>
 
     <!-- Variant of the quantum (dark) theme with no action bar. -->
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index 04f8009..e77564f 100644
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
@@ -21,6 +21,7 @@
 import com.android.frameworks.coretests.R;
 import com.android.internal.content.PackageHelper;
 
+import android.app.PackageInstallObserver;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -31,6 +32,7 @@
 import android.content.res.Resources;
 import android.content.res.Resources.NotFoundException;
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.Environment;
 import android.os.FileUtils;
 import android.os.IBinder;
@@ -117,12 +119,12 @@
         super.tearDown();
     }
 
-    private class PackageInstallObserver extends IPackageInstallObserver.Stub {
+    private class TestInstallObserver extends PackageInstallObserver {
         public int returnCode;
 
         private boolean doneFlag = false;
 
-        public void packageInstalled(String packageName, int returnCode) {
+        public void packageInstalled(String packageName, Bundle extras, int returnCode) {
             synchronized (this) {
                 this.returnCode = returnCode;
                 doneFlag = true;
@@ -203,7 +205,7 @@
 
     public void invokeInstallPackage(Uri packageURI, int flags, GenericReceiver receiver,
             boolean shouldSucceed) {
-        PackageInstallObserver observer = new PackageInstallObserver();
+        TestInstallObserver observer = new TestInstallObserver();
         mContext.registerReceiver(receiver, receiver.filter);
         try {
             // Wait on observer
@@ -261,7 +263,7 @@
     }
 
     public void invokeInstallPackageFail(Uri packageURI, int flags, int expectedResult) {
-        PackageInstallObserver observer = new PackageInstallObserver();
+        TestInstallObserver observer = new TestInstallObserver();
         try {
             // Wait on observer
             synchronized (observer) {
diff --git a/core/tests/coretests/src/com/android/internal/widget/SizeAdaptiveLayoutTest.java b/core/tests/coretests/src/com/android/internal/widget/SizeAdaptiveLayoutTest.java
index efd06bf..18411b0 100644
--- a/core/tests/coretests/src/com/android/internal/widget/SizeAdaptiveLayoutTest.java
+++ b/core/tests/coretests/src/com/android/internal/widget/SizeAdaptiveLayoutTest.java
@@ -438,17 +438,6 @@
         assertEquals("ModestyPanel color should match the SizeAdaptiveLayout",
                      panelColor.getColor(), Color.RED);
     }
-
-    @SmallTest
-    public void testModestyPanelHasDefault() {
-        inflate(R.layout.size_adaptive);
-        View panel = mSizeAdaptiveLayout.getModestyPanel();
-        assertNull("SizeAdaptiveLayout should have no background for this test",
-                     mSizeAdaptiveLayout.getBackground());
-        assertTrue("ModestyPanel should have a ColorDrawable background",
-                   panel.getBackground() instanceof ColorDrawable);
-    }
-
     @SmallTest
     public void testOpenSmallEvenWhenLargeIsActuallySmall() {
         inflate(R.layout.size_adaptive_lies);
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java
index fc2897f..f4bab43 100644
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java
+++ b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java
@@ -466,15 +466,16 @@
      * bytes downloaded so far.
      *
      * @param id DownloadManager download id that needs to be checked.
+     * @param bytesToReceive how many bytes do we need to wait to receive.
      * @throws Exception if timed out while waiting for the file to grow in size.
      */
-    protected void waitToReceiveData(long id) throws Exception {
+    protected void waitToReceiveData(long id, long bytesToReceive) throws Exception {
         int currentWaitTime = 0;
-        long originalSize = getBytesDownloaded(id);
+        long expectedSize = getBytesDownloaded(id) + bytesToReceive;
         long currentSize = 0;
-        while ((currentSize = getBytesDownloaded(id)) <= originalSize) {
-            Log.i(LOG_TAG, String.format("orig: %d, cur: %d. Waiting for file to be written to...",
-                    originalSize, currentSize));
+        while ((currentSize = getBytesDownloaded(id)) <= expectedSize) {
+            Log.i(LOG_TAG, String.format("expect: %d, cur: %d. Waiting for file to be written to...",
+                    expectedSize, currentSize));
             currentWaitTime = timeoutWait(currentWaitTime, WAIT_FOR_DOWNLOAD_POLL_TIME,
                     MAX_WAIT_FOR_DOWNLOAD_TIME, "Timed out waiting for file to be written to.");
         }
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java
index ef48a18..bcf2e45 100644
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java
+++ b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java
@@ -40,6 +40,9 @@
 
     protected static final String DOWNLOAD_FILENAME = "External93mb.apk";
     protected static final long DOWNLOAD_FILESIZE = 95251708;
+    // Wait until download manager actually start downloading something
+    // Will wait for 1 MB to be downloaded.
+    private static final long EXPECTED_PROGRESS = 1024 * 1024;
 
     private static final String FILE_CONCURRENT_DOWNLOAD_FILE_PREFIX = "file";
     private static final String FILE_CONCURRENT_DOWNLOAD_FILE_EXTENSION = ".bin";
@@ -284,7 +287,7 @@
             dlRequest = mDownloadManager.enqueue(request);
             waitForDownloadToStart(dlRequest);
             // make sure we're starting to download some data...
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             setWiFiStateOn(false);
@@ -292,27 +295,29 @@
             // download disable
             Log.i(LOG_TAG, "Turning on airplane mode...");
             setAirplaneModeOn(true);
-            Thread.sleep(30 * 1000);  // wait 30 secs
+            Thread.sleep(5 * 1000);  // wait 5 secs
 
             // download disable
             setWiFiStateOn(true);
-            Thread.sleep(30 * 1000);  // wait 30 secs
+            Thread.sleep(5 * 1000);  // wait 5 secs
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download enable
             Log.i(LOG_TAG, "Turning off airplane mode...");
             setAirplaneModeOn(false);
             Thread.sleep(5 * 1000);  // wait 5 seconds
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning off WiFi...");
             setWiFiStateOn(false);
-            Thread.sleep(30 * 1000);  // wait 30 secs
+            Thread.sleep(5 * 1000);  // wait 5 secs
 
             // finally, turn WiFi back on and finish up the download
             Log.i(LOG_TAG, "Turning on WiFi...");
             setWiFiStateOn(true);
-            Log.i(LOG_TAG, "Waiting up to 3 minutes for download to complete...");
-            assertTrue(waitForDownload(dlRequest, 3 * 60 * 1000));
+            Log.i(LOG_TAG, "Waiting up to 10 minutes for download to complete...");
+            assertTrue(waitForDownload(dlRequest, 10 * 60 * 1000));
             ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
             verifyFileSize(pfd, filesize);
         } finally {
@@ -358,7 +363,7 @@
             dlRequest = mDownloadManager.enqueue(request);
             waitForDownloadToStart(dlRequest);
             // are we making any progress?
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning off WiFi...");
@@ -368,7 +373,7 @@
             // enable download...
             Log.i(LOG_TAG, "Turning on WiFi again...");
             setWiFiStateOn(true);
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning off WiFi...");
@@ -379,8 +384,8 @@
             Log.i(LOG_TAG, "Turning on WiFi again...");
             setWiFiStateOn(true);
 
-            Log.i(LOG_TAG, "Waiting up to 3 minutes for download to complete...");
-            assertTrue(waitForDownload(dlRequest, 3 * 60 * 1000));
+            Log.i(LOG_TAG, "Waiting up to 10 minutes for download to complete...");
+            assertTrue(waitForDownload(dlRequest, 10 * 60 * 1000));
             ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
             verifyFileSize(pfd, filesize);
         } finally {
@@ -428,7 +433,7 @@
             dlRequest = mDownloadManager.enqueue(request);
             waitForDownloadToStart(dlRequest);
             // are we making any progress?
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning on Airplane mode...");
@@ -439,7 +444,7 @@
             Log.i(LOG_TAG, "Turning off Airplane mode...");
             setAirplaneModeOn(false);
             // make sure we're starting to download some data...
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // reenable the connection to start up the download again
             Log.i(LOG_TAG, "Turning on Airplane mode again...");
@@ -450,8 +455,8 @@
             Log.i(LOG_TAG, "Turning off Airplane mode again...");
             setAirplaneModeOn(false);
 
-            Log.i(LOG_TAG, "Waiting up to 3 minutes for donwload to complete...");
-            assertTrue(waitForDownload(dlRequest, 180 * 1000));  // wait up to 3 mins before timeout
+            Log.i(LOG_TAG, "Waiting up to 10 minutes for donwload to complete...");
+            assertTrue(waitForDownload(dlRequest, 10 * 60 * 1000)); // wait up to 10 mins
             ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
             verifyFileSize(pfd, filesize);
         } finally {
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk
new file mode 100644
index 0000000..c97df59
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk
@@ -0,0 +1,40 @@
+# 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_TAGS := tests
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_SDK_VERSION := 9
+
+LOCAL_PACKAGE_NAME := MultiDexLegacyTestServices
+
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-multidex
+
+mainDexList:= \
+	$(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list
+
+LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex
+
+include $(BUILD_PACKAGE)
+
+$(mainDexList): $(full_classes_proguard_jar) | $(HOST_OUT_EXECUTABLES)/mainDexClasses
+	$(HOST_OUT_EXECUTABLES)/mainDexClasses $< 1>$@
+
+$(built_dex_intermediate): $(mainDexList)
+
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/AndroidManifest.xml b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/AndroidManifest.xml
new file mode 100644
index 0000000..e3068920
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/AndroidManifest.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.framework.multidexlegacytestservices"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="9"
+        android:targetSdkVersion="19" />
+
+    <application
+        android:label="MultiDexLegacyTestServices">
+
+        <service android:name=".Service1" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices1">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service1" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service2" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices2">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service2" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service3" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices3">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service3" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service4" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices4">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service4" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service5" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices5">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service5" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service6" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices6">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service6" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service7" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices7">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service7" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service8" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices8">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service8" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service9" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices9">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service9" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service10" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices10">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service10" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service11" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices11">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service11" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service12" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices12">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service12" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service13" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices13">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service13" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service14" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices14">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service14" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service15" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices15">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service15" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service16" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices16">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service16" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service17" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices17">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service17" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service18" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices18">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service18" />
+            </intent-filter>
+        </service>
+
+        <service android:name=".Service19" android:exported="true" android:process=":com.android.framework.multidexlegacytestservices19">
+            <intent-filter>
+                <action android:name="com.android.framework.multidexlegacytestservices.action.Service19" />
+            </intent-filter>
+        </service>
+        </application>
+
+</manifest>
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/AbstractService.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/AbstractService.java
new file mode 100644
index 0000000..20fe465
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/AbstractService.java
@@ -0,0 +1,167 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+import android.support.multidex.MultiDex;
+import android.util.Log;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+
+/**
+ * Empty service for testing legacy multidex. Access more than 64k methods but some are required at
+ * init, some only at verification and others during execution.
+ */
+public abstract class AbstractService extends Service {
+    private final String TAG = "MultidexLegacyTestService" + getId();
+
+    private int instanceFieldNotInited;
+    private int instanceFieldInited =
+            new com.android.framework.multidexlegacytestservices.manymethods.Big043().get43();
+    private static int staticField =
+            new com.android.framework.multidexlegacytestservices.manymethods.Big044().get44();
+
+    public AbstractService() {
+        instanceFieldNotInited = new com.android.framework.multidexlegacytestservices.manymethods.Big042().get42();
+    }
+
+    @Override
+    public void onCreate() {
+        Log.i(TAG, "onCreate");
+        Context applicationContext = getApplicationContext();
+        File resultFile = new File(applicationContext.getFilesDir(), getId());
+        try {
+            // Append a constant value in result file, if services crashed and is relaunched, size
+            // of the result file will be too big.
+            RandomAccessFile raf = new RandomAccessFile(resultFile, "rw");
+            raf.seek(raf.length());
+            Log.i(TAG, "Writing 0x42434445 at " + raf.length() + " in " + resultFile.getPath());
+            raf.writeInt(0x42434445);
+            raf.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        MultiDex.install(applicationContext);
+        Log.i(TAG, "Multi dex installation done.");
+
+        int value = getValue();
+        Log.i(TAG, "Saving the result (" + value + ") to " + resultFile.getPath());
+        try {
+            // Append the check value in result file, keeping the constant values already written.
+            RandomAccessFile raf = new RandomAccessFile(resultFile, "rw");
+            raf.seek(raf.length());
+            Log.i(TAG, "Writing result at " + raf.length() + " in " + resultFile.getPath());
+            raf.writeInt(value);
+            raf.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        try {
+            // Writing end of processing flags, the existence of the file is the criteria
+            RandomAccessFile raf = new RandomAccessFile(new File(applicationContext.getFilesDir(), getId() + ".complete"), "rw");
+            Log.i(TAG, "creating complete file " + resultFile.getPath());
+            raf.writeInt(0x32333435);
+            raf.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        Log.i("Service" + getId(), "Received start id " + startId + ": " + intent);
+        // We want this service to continue running until it is explicitly
+        // stopped, so return sticky.
+        return START_STICKY;
+    }
+
+    private String getId() {
+        return this.getClass().getSimpleName();
+    }
+
+    @Override
+    public void onDestroy() {
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+
+    public int getValue() {
+        int intermediate = -1;
+        try {
+            intermediate = ReflectIntermediateClass.get(45, 80, 20 /* 5 seems enough on a nakasi,
+                using 20 to get some margin */);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        int value = new com.android.framework.multidexlegacytestservices.manymethods.Big001().get1() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big002().get2() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big003().get3() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big004().get4() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big005().get5() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big006().get6() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big007().get7() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big008().get8() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big009().get9() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big010().get10() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big011().get11() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big012().get12() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big013().get13() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big014().get14() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big015().get15() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big016().get16() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big017().get17() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big018().get18() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big019().get19() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big020().get20() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big021().get21() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big022().get22() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big023().get23() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big024().get24() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big025().get25() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big026().get26() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big027().get27() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big028().get28() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big029().get29() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big030().get30() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big031().get31() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big032().get32() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big033().get33() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big034().get34() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big035().get35() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big036().get36() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big037().get37() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big038().get38() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big039().get39() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big040().get40() +
+                new com.android.framework.multidexlegacytestservices.manymethods.Big041().get41() +
+                instanceFieldNotInited +
+                instanceFieldInited +
+                staticField +
+                intermediate;
+        return value;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/ReflectIntermediateClass.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/ReflectIntermediateClass.java
new file mode 100644
index 0000000..9b8e1b8
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/ReflectIntermediateClass.java
@@ -0,0 +1,46 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * Offer an indirection to some Big0xx classes and have their initialization
+ * spread along a period of time.
+ */
+public class ReflectIntermediateClass {
+
+    public static int get(int from, int to, int sleepMillis) throws ClassNotFoundException,
+            SecurityException, NoSuchMethodException, IllegalArgumentException,
+            IllegalAccessException, InvocationTargetException, InstantiationException {
+        int value = 0;
+        for (int i = from; i <= to; i++) {
+            Class<?> bigClass = Class.forName(
+                    "com.android.framework.multidexlegacytestservices.manymethods.Big0" + i);
+            Method get = bigClass.getMethod("get" + i);
+            value += ((Integer) get.invoke(bigClass.newInstance())).intValue();
+            try {
+                Thread.sleep(sleepMillis);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        return value;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service1.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service1.java
new file mode 100644
index 0000000..332cdb5
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service1.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service1 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service10.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service10.java
new file mode 100644
index 0000000..aa63ea8
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service10.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service10 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service11.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service11.java
new file mode 100644
index 0000000..2472605
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service11.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service11 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service12.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service12.java
new file mode 100644
index 0000000..f27ac2e
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service12.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service12 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service13.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service13.java
new file mode 100644
index 0000000..a550764
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service13.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service13 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service14.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service14.java
new file mode 100644
index 0000000..e08ac84
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service14.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service14 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service15.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service15.java
new file mode 100644
index 0000000..0d9be45
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service15.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service15 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service16.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service16.java
new file mode 100644
index 0000000..559ab54
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service16.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service16 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service17.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service17.java
new file mode 100644
index 0000000..3d19e59
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service17.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service17 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service18.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service18.java
new file mode 100644
index 0000000..5c55e9a
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service18.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service18 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service19.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service19.java
new file mode 100644
index 0000000..c6b71b3
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service19.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service19 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service2.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service2.java
new file mode 100644
index 0000000..292cf95
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service2.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service2 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service3.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service3.java
new file mode 100644
index 0000000..a0e61bb
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service3.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service3 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service4.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service4.java
new file mode 100644
index 0000000..0a38df2
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service4.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service4 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service5.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service5.java
new file mode 100644
index 0000000..12a5bff2
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service5.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service5 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service6.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service6.java
new file mode 100644
index 0000000..5faca6d
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service6.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service6 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service7.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service7.java
new file mode 100644
index 0000000..07235c9
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service7.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service7 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service8.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service8.java
new file mode 100644
index 0000000..6472140
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service8.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service8 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service9.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service9.java
new file mode 100644
index 0000000..d07c068
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/Service9.java
@@ -0,0 +1,24 @@
+/*
+ * 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.android.framework.multidexlegacytestservices;
+
+
+/**
+ * Empty service for testing legacy multidex
+ */
+public class Service9 extends AbstractService {
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big001.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big001.java
new file mode 100644
index 0000000..8813952
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big001.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big001 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big002.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big002.java
new file mode 100644
index 0000000..bc3084f
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big002.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big002 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big003.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big003.java
new file mode 100644
index 0000000..d9a3eaa
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big003.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big003 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big004.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big004.java
new file mode 100644
index 0000000..fb6efcc
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big004.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big004 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big005.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big005.java
new file mode 100644
index 0000000..37ed8c8
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big005.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big005 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big006.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big006.java
new file mode 100644
index 0000000..eb64e6a
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big006.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big006 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big007.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big007.java
new file mode 100644
index 0000000..99e5664
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big007.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big007 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big008.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big008.java
new file mode 100644
index 0000000..34e3c1d
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big008.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big008 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big009.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big009.java
new file mode 100644
index 0000000..563d5fb
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big009.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big009 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big010.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big010.java
new file mode 100644
index 0000000..66d0577
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big010.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big010 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big011.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big011.java
new file mode 100644
index 0000000..9b65c3d
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big011.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big011 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big012.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big012.java
new file mode 100644
index 0000000..32f6ef0
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big012.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big012 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big013.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big013.java
new file mode 100644
index 0000000..1b50943
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big013.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big013 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big014.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big014.java
new file mode 100644
index 0000000..4c798e8
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big014.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big014 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big015.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big015.java
new file mode 100644
index 0000000..e667100
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big015.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big015 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big016.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big016.java
new file mode 100644
index 0000000..6b2445b
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big016.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big016 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big017.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big017.java
new file mode 100644
index 0000000..20a09f3
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big017.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big017 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big018.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big018.java
new file mode 100644
index 0000000..bab138d
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big018.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big018 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big019.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big019.java
new file mode 100644
index 0000000..9a2723e
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big019.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big019 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big020.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big020.java
new file mode 100644
index 0000000..5fb2973d
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big020.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big020 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big021.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big021.java
new file mode 100644
index 0000000..dd78896
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big021.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big021 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big022.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big022.java
new file mode 100644
index 0000000..0a6f051
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big022.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big022 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big023.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big023.java
new file mode 100644
index 0000000..fd262c0
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big023.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big023 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big024.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big024.java
new file mode 100644
index 0000000..d99d2ec
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big024.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big024 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big025.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big025.java
new file mode 100644
index 0000000..82a4e17
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big025.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big025 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big026.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big026.java
new file mode 100644
index 0000000..5999f12
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big026.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big026 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big027.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big027.java
new file mode 100644
index 0000000..492aa35
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big027.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big027 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big028.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big028.java
new file mode 100644
index 0000000..10d0978
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big028.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big028 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big029.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big029.java
new file mode 100644
index 0000000..caaa539
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big029.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big029 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big030.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big030.java
new file mode 100644
index 0000000..fbc60ff
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big030.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big030 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big031.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big031.java
new file mode 100644
index 0000000..7a611b0
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big031.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big031 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big032.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big032.java
new file mode 100644
index 0000000..d21ce2f
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big032.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big032 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big033.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big033.java
new file mode 100644
index 0000000..92deb32
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big033.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big033 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big034.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big034.java
new file mode 100644
index 0000000..dbee98f
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big034.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big034 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big035.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big035.java
new file mode 100644
index 0000000..6b39e98
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big035.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big035 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big036.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big036.java
new file mode 100644
index 0000000..22fecdd
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big036.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big036 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big037.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big037.java
new file mode 100644
index 0000000..6d57125
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big037.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big037 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big038.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big038.java
new file mode 100644
index 0000000..65c309f
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big038.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big038 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big039.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big039.java
new file mode 100644
index 0000000..9093c7c
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big039.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big039 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big040.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big040.java
new file mode 100644
index 0000000..061e866
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big040.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big040 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big041.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big041.java
new file mode 100644
index 0000000..79001b2
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big041.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big041 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big042.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big042.java
new file mode 100644
index 0000000..5886431
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big042.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big042 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big043.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big043.java
new file mode 100644
index 0000000..1bb2cff
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big043.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big043 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big044.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big044.java
new file mode 100644
index 0000000..80e88b8
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big044.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big044 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big045.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big045.java
new file mode 100644
index 0000000..e8cd26f
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big045.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big045 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big046.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big046.java
new file mode 100644
index 0000000..ff26a2b
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big046.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big046 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big047.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big047.java
new file mode 100644
index 0000000..88cf184
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big047.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big047 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big048.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big048.java
new file mode 100644
index 0000000..d2a37f6
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big048.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big048 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big049.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big049.java
new file mode 100644
index 0000000..54f4cbf
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big049.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big049 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big050.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big050.java
new file mode 100644
index 0000000..91784c98
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big050.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big050 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big051.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big051.java
new file mode 100644
index 0000000..1c048d9
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big051.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big051 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big052.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big052.java
new file mode 100644
index 0000000..8cda487
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big052.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big052 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big053.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big053.java
new file mode 100644
index 0000000..4c78914
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big053.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big053 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big054.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big054.java
new file mode 100644
index 0000000..64521f9
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big054.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big054 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big055.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big055.java
new file mode 100644
index 0000000..6ed736e
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big055.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big055 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big056.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big056.java
new file mode 100644
index 0000000..347ea57
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big056.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big056 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big057.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big057.java
new file mode 100644
index 0000000..0e3daa8
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big057.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big057 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big058.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big058.java
new file mode 100644
index 0000000..74b5132
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big058.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big058 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big059.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big059.java
new file mode 100644
index 0000000..599b658
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big059.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big059 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big060.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big060.java
new file mode 100644
index 0000000..551ddb87
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big060.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big060 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big061.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big061.java
new file mode 100644
index 0000000..5ba6c9e
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big061.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big061 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big062.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big062.java
new file mode 100644
index 0000000..f50eb81
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big062.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big062 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big063.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big063.java
new file mode 100644
index 0000000..caf3083
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big063.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big063 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big064.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big064.java
new file mode 100644
index 0000000..f4732fb
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big064.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big064 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big065.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big065.java
new file mode 100644
index 0000000..84fcf84
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big065.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big065 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big066.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big066.java
new file mode 100644
index 0000000..a4f2dac
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big066.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big066 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big067.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big067.java
new file mode 100644
index 0000000..befe22d
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big067.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big067 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big068.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big068.java
new file mode 100644
index 0000000..5dc7659
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big068.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big068 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big069.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big069.java
new file mode 100644
index 0000000..1a6d8c1
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big069.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big069 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big070.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big070.java
new file mode 100644
index 0000000..6113542
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big070.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big070 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big071.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big071.java
new file mode 100644
index 0000000..816303f
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big071.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big071 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big072.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big072.java
new file mode 100644
index 0000000..305ef06
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big072.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big072 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big073.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big073.java
new file mode 100644
index 0000000..80790a1
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big073.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big073 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big074.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big074.java
new file mode 100644
index 0000000..7add74b
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big074.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big074 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big075.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big075.java
new file mode 100644
index 0000000..dbe0306c
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big075.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big075 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big076.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big076.java
new file mode 100644
index 0000000..1cbd204
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big076.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big076 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big077.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big077.java
new file mode 100644
index 0000000..fa11ced
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big077.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big077 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big078.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big078.java
new file mode 100644
index 0000000..756e1eb
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big078.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big078 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big079.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big079.java
new file mode 100644
index 0000000..dfb37ae
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big079.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big079 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big080.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big080.java
new file mode 100644
index 0000000..4a82a87
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/src/com/android/framework/multidexlegacytestservices/manymethods/Big080.java
@@ -0,0 +1,4020 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.manymethods;
+
+public class Big080 {
+
+    public int get0() {
+        return 0;
+    }
+
+    public int get1() {
+        return 1;
+    }
+
+    public int get2() {
+        return 2;
+    }
+
+    public int get3() {
+        return 3;
+    }
+
+    public int get4() {
+        return 4;
+    }
+
+    public int get5() {
+        return 5;
+    }
+
+    public int get6() {
+        return 6;
+    }
+
+    public int get7() {
+        return 7;
+    }
+
+    public int get8() {
+        return 8;
+    }
+
+    public int get9() {
+        return 9;
+    }
+
+    public int get10() {
+        return 10;
+    }
+
+    public int get11() {
+        return 11;
+    }
+
+    public int get12() {
+        return 12;
+    }
+
+    public int get13() {
+        return 13;
+    }
+
+    public int get14() {
+        return 14;
+    }
+
+    public int get15() {
+        return 15;
+    }
+
+    public int get16() {
+        return 16;
+    }
+
+    public int get17() {
+        return 17;
+    }
+
+    public int get18() {
+        return 18;
+    }
+
+    public int get19() {
+        return 19;
+    }
+
+    public int get20() {
+        return 20;
+    }
+
+    public int get21() {
+        return 21;
+    }
+
+    public int get22() {
+        return 22;
+    }
+
+    public int get23() {
+        return 23;
+    }
+
+    public int get24() {
+        return 24;
+    }
+
+    public int get25() {
+        return 25;
+    }
+
+    public int get26() {
+        return 26;
+    }
+
+    public int get27() {
+        return 27;
+    }
+
+    public int get28() {
+        return 28;
+    }
+
+    public int get29() {
+        return 29;
+    }
+
+    public int get30() {
+        return 30;
+    }
+
+    public int get31() {
+        return 31;
+    }
+
+    public int get32() {
+        return 32;
+    }
+
+    public int get33() {
+        return 33;
+    }
+
+    public int get34() {
+        return 34;
+    }
+
+    public int get35() {
+        return 35;
+    }
+
+    public int get36() {
+        return 36;
+    }
+
+    public int get37() {
+        return 37;
+    }
+
+    public int get38() {
+        return 38;
+    }
+
+    public int get39() {
+        return 39;
+    }
+
+    public int get40() {
+        return 40;
+    }
+
+    public int get41() {
+        return 41;
+    }
+
+    public int get42() {
+        return 42;
+    }
+
+    public int get43() {
+        return 43;
+    }
+
+    public int get44() {
+        return 44;
+    }
+
+    public int get45() {
+        return 45;
+    }
+
+    public int get46() {
+        return 46;
+    }
+
+    public int get47() {
+        return 47;
+    }
+
+    public int get48() {
+        return 48;
+    }
+
+    public int get49() {
+        return 49;
+    }
+
+    public int get50() {
+        return 50;
+    }
+
+    public int get51() {
+        return 51;
+    }
+
+    public int get52() {
+        return 52;
+    }
+
+    public int get53() {
+        return 53;
+    }
+
+    public int get54() {
+        return 54;
+    }
+
+    public int get55() {
+        return 55;
+    }
+
+    public int get56() {
+        return 56;
+    }
+
+    public int get57() {
+        return 57;
+    }
+
+    public int get58() {
+        return 58;
+    }
+
+    public int get59() {
+        return 59;
+    }
+
+    public int get60() {
+        return 60;
+    }
+
+    public int get61() {
+        return 61;
+    }
+
+    public int get62() {
+        return 62;
+    }
+
+    public int get63() {
+        return 63;
+    }
+
+    public int get64() {
+        return 64;
+    }
+
+    public int get65() {
+        return 65;
+    }
+
+    public int get66() {
+        return 66;
+    }
+
+    public int get67() {
+        return 67;
+    }
+
+    public int get68() {
+        return 68;
+    }
+
+    public int get69() {
+        return 69;
+    }
+
+    public int get70() {
+        return 70;
+    }
+
+    public int get71() {
+        return 71;
+    }
+
+    public int get72() {
+        return 72;
+    }
+
+    public int get73() {
+        return 73;
+    }
+
+    public int get74() {
+        return 74;
+    }
+
+    public int get75() {
+        return 75;
+    }
+
+    public int get76() {
+        return 76;
+    }
+
+    public int get77() {
+        return 77;
+    }
+
+    public int get78() {
+        return 78;
+    }
+
+    public int get79() {
+        return 79;
+    }
+
+    public int get80() {
+        return 80;
+    }
+
+    public int get81() {
+        return 81;
+    }
+
+    public int get82() {
+        return 82;
+    }
+
+    public int get83() {
+        return 83;
+    }
+
+    public int get84() {
+        return 84;
+    }
+
+    public int get85() {
+        return 85;
+    }
+
+    public int get86() {
+        return 86;
+    }
+
+    public int get87() {
+        return 87;
+    }
+
+    public int get88() {
+        return 88;
+    }
+
+    public int get89() {
+        return 89;
+    }
+
+    public int get90() {
+        return 90;
+    }
+
+    public int get91() {
+        return 91;
+    }
+
+    public int get92() {
+        return 92;
+    }
+
+    public int get93() {
+        return 93;
+    }
+
+    public int get94() {
+        return 94;
+    }
+
+    public int get95() {
+        return 95;
+    }
+
+    public int get96() {
+        return 96;
+    }
+
+    public int get97() {
+        return 97;
+    }
+
+    public int get98() {
+        return 98;
+    }
+
+    public int get99() {
+        return 99;
+    }
+
+    public int get100() {
+        return 100;
+    }
+
+    public int get101() {
+        return 101;
+    }
+
+    public int get102() {
+        return 102;
+    }
+
+    public int get103() {
+        return 103;
+    }
+
+    public int get104() {
+        return 104;
+    }
+
+    public int get105() {
+        return 105;
+    }
+
+    public int get106() {
+        return 106;
+    }
+
+    public int get107() {
+        return 107;
+    }
+
+    public int get108() {
+        return 108;
+    }
+
+    public int get109() {
+        return 109;
+    }
+
+    public int get110() {
+        return 110;
+    }
+
+    public int get111() {
+        return 111;
+    }
+
+    public int get112() {
+        return 112;
+    }
+
+    public int get113() {
+        return 113;
+    }
+
+    public int get114() {
+        return 114;
+    }
+
+    public int get115() {
+        return 115;
+    }
+
+    public int get116() {
+        return 116;
+    }
+
+    public int get117() {
+        return 117;
+    }
+
+    public int get118() {
+        return 118;
+    }
+
+    public int get119() {
+        return 119;
+    }
+
+    public int get120() {
+        return 120;
+    }
+
+    public int get121() {
+        return 121;
+    }
+
+    public int get122() {
+        return 122;
+    }
+
+    public int get123() {
+        return 123;
+    }
+
+    public int get124() {
+        return 124;
+    }
+
+    public int get125() {
+        return 125;
+    }
+
+    public int get126() {
+        return 126;
+    }
+
+    public int get127() {
+        return 127;
+    }
+
+    public int get128() {
+        return 128;
+    }
+
+    public int get129() {
+        return 129;
+    }
+
+    public int get130() {
+        return 130;
+    }
+
+    public int get131() {
+        return 131;
+    }
+
+    public int get132() {
+        return 132;
+    }
+
+    public int get133() {
+        return 133;
+    }
+
+    public int get134() {
+        return 134;
+    }
+
+    public int get135() {
+        return 135;
+    }
+
+    public int get136() {
+        return 136;
+    }
+
+    public int get137() {
+        return 137;
+    }
+
+    public int get138() {
+        return 138;
+    }
+
+    public int get139() {
+        return 139;
+    }
+
+    public int get140() {
+        return 140;
+    }
+
+    public int get141() {
+        return 141;
+    }
+
+    public int get142() {
+        return 142;
+    }
+
+    public int get143() {
+        return 143;
+    }
+
+    public int get144() {
+        return 144;
+    }
+
+    public int get145() {
+        return 145;
+    }
+
+    public int get146() {
+        return 146;
+    }
+
+    public int get147() {
+        return 147;
+    }
+
+    public int get148() {
+        return 148;
+    }
+
+    public int get149() {
+        return 149;
+    }
+
+    public int get150() {
+        return 150;
+    }
+
+    public int get151() {
+        return 151;
+    }
+
+    public int get152() {
+        return 152;
+    }
+
+    public int get153() {
+        return 153;
+    }
+
+    public int get154() {
+        return 154;
+    }
+
+    public int get155() {
+        return 155;
+    }
+
+    public int get156() {
+        return 156;
+    }
+
+    public int get157() {
+        return 157;
+    }
+
+    public int get158() {
+        return 158;
+    }
+
+    public int get159() {
+        return 159;
+    }
+
+    public int get160() {
+        return 160;
+    }
+
+    public int get161() {
+        return 161;
+    }
+
+    public int get162() {
+        return 162;
+    }
+
+    public int get163() {
+        return 163;
+    }
+
+    public int get164() {
+        return 164;
+    }
+
+    public int get165() {
+        return 165;
+    }
+
+    public int get166() {
+        return 166;
+    }
+
+    public int get167() {
+        return 167;
+    }
+
+    public int get168() {
+        return 168;
+    }
+
+    public int get169() {
+        return 169;
+    }
+
+    public int get170() {
+        return 170;
+    }
+
+    public int get171() {
+        return 171;
+    }
+
+    public int get172() {
+        return 172;
+    }
+
+    public int get173() {
+        return 173;
+    }
+
+    public int get174() {
+        return 174;
+    }
+
+    public int get175() {
+        return 175;
+    }
+
+    public int get176() {
+        return 176;
+    }
+
+    public int get177() {
+        return 177;
+    }
+
+    public int get178() {
+        return 178;
+    }
+
+    public int get179() {
+        return 179;
+    }
+
+    public int get180() {
+        return 180;
+    }
+
+    public int get181() {
+        return 181;
+    }
+
+    public int get182() {
+        return 182;
+    }
+
+    public int get183() {
+        return 183;
+    }
+
+    public int get184() {
+        return 184;
+    }
+
+    public int get185() {
+        return 185;
+    }
+
+    public int get186() {
+        return 186;
+    }
+
+    public int get187() {
+        return 187;
+    }
+
+    public int get188() {
+        return 188;
+    }
+
+    public int get189() {
+        return 189;
+    }
+
+    public int get190() {
+        return 190;
+    }
+
+    public int get191() {
+        return 191;
+    }
+
+    public int get192() {
+        return 192;
+    }
+
+    public int get193() {
+        return 193;
+    }
+
+    public int get194() {
+        return 194;
+    }
+
+    public int get195() {
+        return 195;
+    }
+
+    public int get196() {
+        return 196;
+    }
+
+    public int get197() {
+        return 197;
+    }
+
+    public int get198() {
+        return 198;
+    }
+
+    public int get199() {
+        return 199;
+    }
+
+    public int get200() {
+        return 200;
+    }
+
+    public int get201() {
+        return 201;
+    }
+
+    public int get202() {
+        return 202;
+    }
+
+    public int get203() {
+        return 203;
+    }
+
+    public int get204() {
+        return 204;
+    }
+
+    public int get205() {
+        return 205;
+    }
+
+    public int get206() {
+        return 206;
+    }
+
+    public int get207() {
+        return 207;
+    }
+
+    public int get208() {
+        return 208;
+    }
+
+    public int get209() {
+        return 209;
+    }
+
+    public int get210() {
+        return 210;
+    }
+
+    public int get211() {
+        return 211;
+    }
+
+    public int get212() {
+        return 212;
+    }
+
+    public int get213() {
+        return 213;
+    }
+
+    public int get214() {
+        return 214;
+    }
+
+    public int get215() {
+        return 215;
+    }
+
+    public int get216() {
+        return 216;
+    }
+
+    public int get217() {
+        return 217;
+    }
+
+    public int get218() {
+        return 218;
+    }
+
+    public int get219() {
+        return 219;
+    }
+
+    public int get220() {
+        return 220;
+    }
+
+    public int get221() {
+        return 221;
+    }
+
+    public int get222() {
+        return 222;
+    }
+
+    public int get223() {
+        return 223;
+    }
+
+    public int get224() {
+        return 224;
+    }
+
+    public int get225() {
+        return 225;
+    }
+
+    public int get226() {
+        return 226;
+    }
+
+    public int get227() {
+        return 227;
+    }
+
+    public int get228() {
+        return 228;
+    }
+
+    public int get229() {
+        return 229;
+    }
+
+    public int get230() {
+        return 230;
+    }
+
+    public int get231() {
+        return 231;
+    }
+
+    public int get232() {
+        return 232;
+    }
+
+    public int get233() {
+        return 233;
+    }
+
+    public int get234() {
+        return 234;
+    }
+
+    public int get235() {
+        return 235;
+    }
+
+    public int get236() {
+        return 236;
+    }
+
+    public int get237() {
+        return 237;
+    }
+
+    public int get238() {
+        return 238;
+    }
+
+    public int get239() {
+        return 239;
+    }
+
+    public int get240() {
+        return 240;
+    }
+
+    public int get241() {
+        return 241;
+    }
+
+    public int get242() {
+        return 242;
+    }
+
+    public int get243() {
+        return 243;
+    }
+
+    public int get244() {
+        return 244;
+    }
+
+    public int get245() {
+        return 245;
+    }
+
+    public int get246() {
+        return 246;
+    }
+
+    public int get247() {
+        return 247;
+    }
+
+    public int get248() {
+        return 248;
+    }
+
+    public int get249() {
+        return 249;
+    }
+
+    public int get250() {
+        return 250;
+    }
+
+    public int get251() {
+        return 251;
+    }
+
+    public int get252() {
+        return 252;
+    }
+
+    public int get253() {
+        return 253;
+    }
+
+    public int get254() {
+        return 254;
+    }
+
+    public int get255() {
+        return 255;
+    }
+
+    public int get256() {
+        return 256;
+    }
+
+    public int get257() {
+        return 257;
+    }
+
+    public int get258() {
+        return 258;
+    }
+
+    public int get259() {
+        return 259;
+    }
+
+    public int get260() {
+        return 260;
+    }
+
+    public int get261() {
+        return 261;
+    }
+
+    public int get262() {
+        return 262;
+    }
+
+    public int get263() {
+        return 263;
+    }
+
+    public int get264() {
+        return 264;
+    }
+
+    public int get265() {
+        return 265;
+    }
+
+    public int get266() {
+        return 266;
+    }
+
+    public int get267() {
+        return 267;
+    }
+
+    public int get268() {
+        return 268;
+    }
+
+    public int get269() {
+        return 269;
+    }
+
+    public int get270() {
+        return 270;
+    }
+
+    public int get271() {
+        return 271;
+    }
+
+    public int get272() {
+        return 272;
+    }
+
+    public int get273() {
+        return 273;
+    }
+
+    public int get274() {
+        return 274;
+    }
+
+    public int get275() {
+        return 275;
+    }
+
+    public int get276() {
+        return 276;
+    }
+
+    public int get277() {
+        return 277;
+    }
+
+    public int get278() {
+        return 278;
+    }
+
+    public int get279() {
+        return 279;
+    }
+
+    public int get280() {
+        return 280;
+    }
+
+    public int get281() {
+        return 281;
+    }
+
+    public int get282() {
+        return 282;
+    }
+
+    public int get283() {
+        return 283;
+    }
+
+    public int get284() {
+        return 284;
+    }
+
+    public int get285() {
+        return 285;
+    }
+
+    public int get286() {
+        return 286;
+    }
+
+    public int get287() {
+        return 287;
+    }
+
+    public int get288() {
+        return 288;
+    }
+
+    public int get289() {
+        return 289;
+    }
+
+    public int get290() {
+        return 290;
+    }
+
+    public int get291() {
+        return 291;
+    }
+
+    public int get292() {
+        return 292;
+    }
+
+    public int get293() {
+        return 293;
+    }
+
+    public int get294() {
+        return 294;
+    }
+
+    public int get295() {
+        return 295;
+    }
+
+    public int get296() {
+        return 296;
+    }
+
+    public int get297() {
+        return 297;
+    }
+
+    public int get298() {
+        return 298;
+    }
+
+    public int get299() {
+        return 299;
+    }
+
+    public int get300() {
+        return 300;
+    }
+
+    public int get301() {
+        return 301;
+    }
+
+    public int get302() {
+        return 302;
+    }
+
+    public int get303() {
+        return 303;
+    }
+
+    public int get304() {
+        return 304;
+    }
+
+    public int get305() {
+        return 305;
+    }
+
+    public int get306() {
+        return 306;
+    }
+
+    public int get307() {
+        return 307;
+    }
+
+    public int get308() {
+        return 308;
+    }
+
+    public int get309() {
+        return 309;
+    }
+
+    public int get310() {
+        return 310;
+    }
+
+    public int get311() {
+        return 311;
+    }
+
+    public int get312() {
+        return 312;
+    }
+
+    public int get313() {
+        return 313;
+    }
+
+    public int get314() {
+        return 314;
+    }
+
+    public int get315() {
+        return 315;
+    }
+
+    public int get316() {
+        return 316;
+    }
+
+    public int get317() {
+        return 317;
+    }
+
+    public int get318() {
+        return 318;
+    }
+
+    public int get319() {
+        return 319;
+    }
+
+    public int get320() {
+        return 320;
+    }
+
+    public int get321() {
+        return 321;
+    }
+
+    public int get322() {
+        return 322;
+    }
+
+    public int get323() {
+        return 323;
+    }
+
+    public int get324() {
+        return 324;
+    }
+
+    public int get325() {
+        return 325;
+    }
+
+    public int get326() {
+        return 326;
+    }
+
+    public int get327() {
+        return 327;
+    }
+
+    public int get328() {
+        return 328;
+    }
+
+    public int get329() {
+        return 329;
+    }
+
+    public int get330() {
+        return 330;
+    }
+
+    public int get331() {
+        return 331;
+    }
+
+    public int get332() {
+        return 332;
+    }
+
+    public int get333() {
+        return 333;
+    }
+
+    public int get334() {
+        return 334;
+    }
+
+    public int get335() {
+        return 335;
+    }
+
+    public int get336() {
+        return 336;
+    }
+
+    public int get337() {
+        return 337;
+    }
+
+    public int get338() {
+        return 338;
+    }
+
+    public int get339() {
+        return 339;
+    }
+
+    public int get340() {
+        return 340;
+    }
+
+    public int get341() {
+        return 341;
+    }
+
+    public int get342() {
+        return 342;
+    }
+
+    public int get343() {
+        return 343;
+    }
+
+    public int get344() {
+        return 344;
+    }
+
+    public int get345() {
+        return 345;
+    }
+
+    public int get346() {
+        return 346;
+    }
+
+    public int get347() {
+        return 347;
+    }
+
+    public int get348() {
+        return 348;
+    }
+
+    public int get349() {
+        return 349;
+    }
+
+    public int get350() {
+        return 350;
+    }
+
+    public int get351() {
+        return 351;
+    }
+
+    public int get352() {
+        return 352;
+    }
+
+    public int get353() {
+        return 353;
+    }
+
+    public int get354() {
+        return 354;
+    }
+
+    public int get355() {
+        return 355;
+    }
+
+    public int get356() {
+        return 356;
+    }
+
+    public int get357() {
+        return 357;
+    }
+
+    public int get358() {
+        return 358;
+    }
+
+    public int get359() {
+        return 359;
+    }
+
+    public int get360() {
+        return 360;
+    }
+
+    public int get361() {
+        return 361;
+    }
+
+    public int get362() {
+        return 362;
+    }
+
+    public int get363() {
+        return 363;
+    }
+
+    public int get364() {
+        return 364;
+    }
+
+    public int get365() {
+        return 365;
+    }
+
+    public int get366() {
+        return 366;
+    }
+
+    public int get367() {
+        return 367;
+    }
+
+    public int get368() {
+        return 368;
+    }
+
+    public int get369() {
+        return 369;
+    }
+
+    public int get370() {
+        return 370;
+    }
+
+    public int get371() {
+        return 371;
+    }
+
+    public int get372() {
+        return 372;
+    }
+
+    public int get373() {
+        return 373;
+    }
+
+    public int get374() {
+        return 374;
+    }
+
+    public int get375() {
+        return 375;
+    }
+
+    public int get376() {
+        return 376;
+    }
+
+    public int get377() {
+        return 377;
+    }
+
+    public int get378() {
+        return 378;
+    }
+
+    public int get379() {
+        return 379;
+    }
+
+    public int get380() {
+        return 380;
+    }
+
+    public int get381() {
+        return 381;
+    }
+
+    public int get382() {
+        return 382;
+    }
+
+    public int get383() {
+        return 383;
+    }
+
+    public int get384() {
+        return 384;
+    }
+
+    public int get385() {
+        return 385;
+    }
+
+    public int get386() {
+        return 386;
+    }
+
+    public int get387() {
+        return 387;
+    }
+
+    public int get388() {
+        return 388;
+    }
+
+    public int get389() {
+        return 389;
+    }
+
+    public int get390() {
+        return 390;
+    }
+
+    public int get391() {
+        return 391;
+    }
+
+    public int get392() {
+        return 392;
+    }
+
+    public int get393() {
+        return 393;
+    }
+
+    public int get394() {
+        return 394;
+    }
+
+    public int get395() {
+        return 395;
+    }
+
+    public int get396() {
+        return 396;
+    }
+
+    public int get397() {
+        return 397;
+    }
+
+    public int get398() {
+        return 398;
+    }
+
+    public int get399() {
+        return 399;
+    }
+
+    public int get400() {
+        return 400;
+    }
+
+    public int get401() {
+        return 401;
+    }
+
+    public int get402() {
+        return 402;
+    }
+
+    public int get403() {
+        return 403;
+    }
+
+    public int get404() {
+        return 404;
+    }
+
+    public int get405() {
+        return 405;
+    }
+
+    public int get406() {
+        return 406;
+    }
+
+    public int get407() {
+        return 407;
+    }
+
+    public int get408() {
+        return 408;
+    }
+
+    public int get409() {
+        return 409;
+    }
+
+    public int get410() {
+        return 410;
+    }
+
+    public int get411() {
+        return 411;
+    }
+
+    public int get412() {
+        return 412;
+    }
+
+    public int get413() {
+        return 413;
+    }
+
+    public int get414() {
+        return 414;
+    }
+
+    public int get415() {
+        return 415;
+    }
+
+    public int get416() {
+        return 416;
+    }
+
+    public int get417() {
+        return 417;
+    }
+
+    public int get418() {
+        return 418;
+    }
+
+    public int get419() {
+        return 419;
+    }
+
+    public int get420() {
+        return 420;
+    }
+
+    public int get421() {
+        return 421;
+    }
+
+    public int get422() {
+        return 422;
+    }
+
+    public int get423() {
+        return 423;
+    }
+
+    public int get424() {
+        return 424;
+    }
+
+    public int get425() {
+        return 425;
+    }
+
+    public int get426() {
+        return 426;
+    }
+
+    public int get427() {
+        return 427;
+    }
+
+    public int get428() {
+        return 428;
+    }
+
+    public int get429() {
+        return 429;
+    }
+
+    public int get430() {
+        return 430;
+    }
+
+    public int get431() {
+        return 431;
+    }
+
+    public int get432() {
+        return 432;
+    }
+
+    public int get433() {
+        return 433;
+    }
+
+    public int get434() {
+        return 434;
+    }
+
+    public int get435() {
+        return 435;
+    }
+
+    public int get436() {
+        return 436;
+    }
+
+    public int get437() {
+        return 437;
+    }
+
+    public int get438() {
+        return 438;
+    }
+
+    public int get439() {
+        return 439;
+    }
+
+    public int get440() {
+        return 440;
+    }
+
+    public int get441() {
+        return 441;
+    }
+
+    public int get442() {
+        return 442;
+    }
+
+    public int get443() {
+        return 443;
+    }
+
+    public int get444() {
+        return 444;
+    }
+
+    public int get445() {
+        return 445;
+    }
+
+    public int get446() {
+        return 446;
+    }
+
+    public int get447() {
+        return 447;
+    }
+
+    public int get448() {
+        return 448;
+    }
+
+    public int get449() {
+        return 449;
+    }
+
+    public int get450() {
+        return 450;
+    }
+
+    public int get451() {
+        return 451;
+    }
+
+    public int get452() {
+        return 452;
+    }
+
+    public int get453() {
+        return 453;
+    }
+
+    public int get454() {
+        return 454;
+    }
+
+    public int get455() {
+        return 455;
+    }
+
+    public int get456() {
+        return 456;
+    }
+
+    public int get457() {
+        return 457;
+    }
+
+    public int get458() {
+        return 458;
+    }
+
+    public int get459() {
+        return 459;
+    }
+
+    public int get460() {
+        return 460;
+    }
+
+    public int get461() {
+        return 461;
+    }
+
+    public int get462() {
+        return 462;
+    }
+
+    public int get463() {
+        return 463;
+    }
+
+    public int get464() {
+        return 464;
+    }
+
+    public int get465() {
+        return 465;
+    }
+
+    public int get466() {
+        return 466;
+    }
+
+    public int get467() {
+        return 467;
+    }
+
+    public int get468() {
+        return 468;
+    }
+
+    public int get469() {
+        return 469;
+    }
+
+    public int get470() {
+        return 470;
+    }
+
+    public int get471() {
+        return 471;
+    }
+
+    public int get472() {
+        return 472;
+    }
+
+    public int get473() {
+        return 473;
+    }
+
+    public int get474() {
+        return 474;
+    }
+
+    public int get475() {
+        return 475;
+    }
+
+    public int get476() {
+        return 476;
+    }
+
+    public int get477() {
+        return 477;
+    }
+
+    public int get478() {
+        return 478;
+    }
+
+    public int get479() {
+        return 479;
+    }
+
+    public int get480() {
+        return 480;
+    }
+
+    public int get481() {
+        return 481;
+    }
+
+    public int get482() {
+        return 482;
+    }
+
+    public int get483() {
+        return 483;
+    }
+
+    public int get484() {
+        return 484;
+    }
+
+    public int get485() {
+        return 485;
+    }
+
+    public int get486() {
+        return 486;
+    }
+
+    public int get487() {
+        return 487;
+    }
+
+    public int get488() {
+        return 488;
+    }
+
+    public int get489() {
+        return 489;
+    }
+
+    public int get490() {
+        return 490;
+    }
+
+    public int get491() {
+        return 491;
+    }
+
+    public int get492() {
+        return 492;
+    }
+
+    public int get493() {
+        return 493;
+    }
+
+    public int get494() {
+        return 494;
+    }
+
+    public int get495() {
+        return 495;
+    }
+
+    public int get496() {
+        return 496;
+    }
+
+    public int get497() {
+        return 497;
+    }
+
+    public int get498() {
+        return 498;
+    }
+
+    public int get499() {
+        return 499;
+    }
+
+    public int get500() {
+        return 500;
+    }
+
+    public int get501() {
+        return 501;
+    }
+
+    public int get502() {
+        return 502;
+    }
+
+    public int get503() {
+        return 503;
+    }
+
+    public int get504() {
+        return 504;
+    }
+
+    public int get505() {
+        return 505;
+    }
+
+    public int get506() {
+        return 506;
+    }
+
+    public int get507() {
+        return 507;
+    }
+
+    public int get508() {
+        return 508;
+    }
+
+    public int get509() {
+        return 509;
+    }
+
+    public int get510() {
+        return 510;
+    }
+
+    public int get511() {
+        return 511;
+    }
+
+    public int get512() {
+        return 512;
+    }
+
+    public int get513() {
+        return 513;
+    }
+
+    public int get514() {
+        return 514;
+    }
+
+    public int get515() {
+        return 515;
+    }
+
+    public int get516() {
+        return 516;
+    }
+
+    public int get517() {
+        return 517;
+    }
+
+    public int get518() {
+        return 518;
+    }
+
+    public int get519() {
+        return 519;
+    }
+
+    public int get520() {
+        return 520;
+    }
+
+    public int get521() {
+        return 521;
+    }
+
+    public int get522() {
+        return 522;
+    }
+
+    public int get523() {
+        return 523;
+    }
+
+    public int get524() {
+        return 524;
+    }
+
+    public int get525() {
+        return 525;
+    }
+
+    public int get526() {
+        return 526;
+    }
+
+    public int get527() {
+        return 527;
+    }
+
+    public int get528() {
+        return 528;
+    }
+
+    public int get529() {
+        return 529;
+    }
+
+    public int get530() {
+        return 530;
+    }
+
+    public int get531() {
+        return 531;
+    }
+
+    public int get532() {
+        return 532;
+    }
+
+    public int get533() {
+        return 533;
+    }
+
+    public int get534() {
+        return 534;
+    }
+
+    public int get535() {
+        return 535;
+    }
+
+    public int get536() {
+        return 536;
+    }
+
+    public int get537() {
+        return 537;
+    }
+
+    public int get538() {
+        return 538;
+    }
+
+    public int get539() {
+        return 539;
+    }
+
+    public int get540() {
+        return 540;
+    }
+
+    public int get541() {
+        return 541;
+    }
+
+    public int get542() {
+        return 542;
+    }
+
+    public int get543() {
+        return 543;
+    }
+
+    public int get544() {
+        return 544;
+    }
+
+    public int get545() {
+        return 545;
+    }
+
+    public int get546() {
+        return 546;
+    }
+
+    public int get547() {
+        return 547;
+    }
+
+    public int get548() {
+        return 548;
+    }
+
+    public int get549() {
+        return 549;
+    }
+
+    public int get550() {
+        return 550;
+    }
+
+    public int get551() {
+        return 551;
+    }
+
+    public int get552() {
+        return 552;
+    }
+
+    public int get553() {
+        return 553;
+    }
+
+    public int get554() {
+        return 554;
+    }
+
+    public int get555() {
+        return 555;
+    }
+
+    public int get556() {
+        return 556;
+    }
+
+    public int get557() {
+        return 557;
+    }
+
+    public int get558() {
+        return 558;
+    }
+
+    public int get559() {
+        return 559;
+    }
+
+    public int get560() {
+        return 560;
+    }
+
+    public int get561() {
+        return 561;
+    }
+
+    public int get562() {
+        return 562;
+    }
+
+    public int get563() {
+        return 563;
+    }
+
+    public int get564() {
+        return 564;
+    }
+
+    public int get565() {
+        return 565;
+    }
+
+    public int get566() {
+        return 566;
+    }
+
+    public int get567() {
+        return 567;
+    }
+
+    public int get568() {
+        return 568;
+    }
+
+    public int get569() {
+        return 569;
+    }
+
+    public int get570() {
+        return 570;
+    }
+
+    public int get571() {
+        return 571;
+    }
+
+    public int get572() {
+        return 572;
+    }
+
+    public int get573() {
+        return 573;
+    }
+
+    public int get574() {
+        return 574;
+    }
+
+    public int get575() {
+        return 575;
+    }
+
+    public int get576() {
+        return 576;
+    }
+
+    public int get577() {
+        return 577;
+    }
+
+    public int get578() {
+        return 578;
+    }
+
+    public int get579() {
+        return 579;
+    }
+
+    public int get580() {
+        return 580;
+    }
+
+    public int get581() {
+        return 581;
+    }
+
+    public int get582() {
+        return 582;
+    }
+
+    public int get583() {
+        return 583;
+    }
+
+    public int get584() {
+        return 584;
+    }
+
+    public int get585() {
+        return 585;
+    }
+
+    public int get586() {
+        return 586;
+    }
+
+    public int get587() {
+        return 587;
+    }
+
+    public int get588() {
+        return 588;
+    }
+
+    public int get589() {
+        return 589;
+    }
+
+    public int get590() {
+        return 590;
+    }
+
+    public int get591() {
+        return 591;
+    }
+
+    public int get592() {
+        return 592;
+    }
+
+    public int get593() {
+        return 593;
+    }
+
+    public int get594() {
+        return 594;
+    }
+
+    public int get595() {
+        return 595;
+    }
+
+    public int get596() {
+        return 596;
+    }
+
+    public int get597() {
+        return 597;
+    }
+
+    public int get598() {
+        return 598;
+    }
+
+    public int get599() {
+        return 599;
+    }
+
+    public int get600() {
+        return 600;
+    }
+
+    public int get601() {
+        return 601;
+    }
+
+    public int get602() {
+        return 602;
+    }
+
+    public int get603() {
+        return 603;
+    }
+
+    public int get604() {
+        return 604;
+    }
+
+    public int get605() {
+        return 605;
+    }
+
+    public int get606() {
+        return 606;
+    }
+
+    public int get607() {
+        return 607;
+    }
+
+    public int get608() {
+        return 608;
+    }
+
+    public int get609() {
+        return 609;
+    }
+
+    public int get610() {
+        return 610;
+    }
+
+    public int get611() {
+        return 611;
+    }
+
+    public int get612() {
+        return 612;
+    }
+
+    public int get613() {
+        return 613;
+    }
+
+    public int get614() {
+        return 614;
+    }
+
+    public int get615() {
+        return 615;
+    }
+
+    public int get616() {
+        return 616;
+    }
+
+    public int get617() {
+        return 617;
+    }
+
+    public int get618() {
+        return 618;
+    }
+
+    public int get619() {
+        return 619;
+    }
+
+    public int get620() {
+        return 620;
+    }
+
+    public int get621() {
+        return 621;
+    }
+
+    public int get622() {
+        return 622;
+    }
+
+    public int get623() {
+        return 623;
+    }
+
+    public int get624() {
+        return 624;
+    }
+
+    public int get625() {
+        return 625;
+    }
+
+    public int get626() {
+        return 626;
+    }
+
+    public int get627() {
+        return 627;
+    }
+
+    public int get628() {
+        return 628;
+    }
+
+    public int get629() {
+        return 629;
+    }
+
+    public int get630() {
+        return 630;
+    }
+
+    public int get631() {
+        return 631;
+    }
+
+    public int get632() {
+        return 632;
+    }
+
+    public int get633() {
+        return 633;
+    }
+
+    public int get634() {
+        return 634;
+    }
+
+    public int get635() {
+        return 635;
+    }
+
+    public int get636() {
+        return 636;
+    }
+
+    public int get637() {
+        return 637;
+    }
+
+    public int get638() {
+        return 638;
+    }
+
+    public int get639() {
+        return 639;
+    }
+
+    public int get640() {
+        return 640;
+    }
+
+    public int get641() {
+        return 641;
+    }
+
+    public int get642() {
+        return 642;
+    }
+
+    public int get643() {
+        return 643;
+    }
+
+    public int get644() {
+        return 644;
+    }
+
+    public int get645() {
+        return 645;
+    }
+
+    public int get646() {
+        return 646;
+    }
+
+    public int get647() {
+        return 647;
+    }
+
+    public int get648() {
+        return 648;
+    }
+
+    public int get649() {
+        return 649;
+    }
+
+    public int get650() {
+        return 650;
+    }
+
+    public int get651() {
+        return 651;
+    }
+
+    public int get652() {
+        return 652;
+    }
+
+    public int get653() {
+        return 653;
+    }
+
+    public int get654() {
+        return 654;
+    }
+
+    public int get655() {
+        return 655;
+    }
+
+    public int get656() {
+        return 656;
+    }
+
+    public int get657() {
+        return 657;
+    }
+
+    public int get658() {
+        return 658;
+    }
+
+    public int get659() {
+        return 659;
+    }
+
+    public int get660() {
+        return 660;
+    }
+
+    public int get661() {
+        return 661;
+    }
+
+    public int get662() {
+        return 662;
+    }
+
+    public int get663() {
+        return 663;
+    }
+
+    public int get664() {
+        return 664;
+    }
+
+    public int get665() {
+        return 665;
+    }
+
+    public int get666() {
+        return 666;
+    }
+
+    public int get667() {
+        return 667;
+    }
+
+    public int get668() {
+        return 668;
+    }
+
+    public int get669() {
+        return 669;
+    }
+
+    public int get670() {
+        return 670;
+    }
+
+    public int get671() {
+        return 671;
+    }
+
+    public int get672() {
+        return 672;
+    }
+
+    public int get673() {
+        return 673;
+    }
+
+    public int get674() {
+        return 674;
+    }
+
+    public int get675() {
+        return 675;
+    }
+
+    public int get676() {
+        return 676;
+    }
+
+    public int get677() {
+        return 677;
+    }
+
+    public int get678() {
+        return 678;
+    }
+
+    public int get679() {
+        return 679;
+    }
+
+    public int get680() {
+        return 680;
+    }
+
+    public int get681() {
+        return 681;
+    }
+
+    public int get682() {
+        return 682;
+    }
+
+    public int get683() {
+        return 683;
+    }
+
+    public int get684() {
+        return 684;
+    }
+
+    public int get685() {
+        return 685;
+    }
+
+    public int get686() {
+        return 686;
+    }
+
+    public int get687() {
+        return 687;
+    }
+
+    public int get688() {
+        return 688;
+    }
+
+    public int get689() {
+        return 689;
+    }
+
+    public int get690() {
+        return 690;
+    }
+
+    public int get691() {
+        return 691;
+    }
+
+    public int get692() {
+        return 692;
+    }
+
+    public int get693() {
+        return 693;
+    }
+
+    public int get694() {
+        return 694;
+    }
+
+    public int get695() {
+        return 695;
+    }
+
+    public int get696() {
+        return 696;
+    }
+
+    public int get697() {
+        return 697;
+    }
+
+    public int get698() {
+        return 698;
+    }
+
+    public int get699() {
+        return 699;
+    }
+
+    public int get700() {
+        return 700;
+    }
+
+    public int get701() {
+        return 701;
+    }
+
+    public int get702() {
+        return 702;
+    }
+
+    public int get703() {
+        return 703;
+    }
+
+    public int get704() {
+        return 704;
+    }
+
+    public int get705() {
+        return 705;
+    }
+
+    public int get706() {
+        return 706;
+    }
+
+    public int get707() {
+        return 707;
+    }
+
+    public int get708() {
+        return 708;
+    }
+
+    public int get709() {
+        return 709;
+    }
+
+    public int get710() {
+        return 710;
+    }
+
+    public int get711() {
+        return 711;
+    }
+
+    public int get712() {
+        return 712;
+    }
+
+    public int get713() {
+        return 713;
+    }
+
+    public int get714() {
+        return 714;
+    }
+
+    public int get715() {
+        return 715;
+    }
+
+    public int get716() {
+        return 716;
+    }
+
+    public int get717() {
+        return 717;
+    }
+
+    public int get718() {
+        return 718;
+    }
+
+    public int get719() {
+        return 719;
+    }
+
+    public int get720() {
+        return 720;
+    }
+
+    public int get721() {
+        return 721;
+    }
+
+    public int get722() {
+        return 722;
+    }
+
+    public int get723() {
+        return 723;
+    }
+
+    public int get724() {
+        return 724;
+    }
+
+    public int get725() {
+        return 725;
+    }
+
+    public int get726() {
+        return 726;
+    }
+
+    public int get727() {
+        return 727;
+    }
+
+    public int get728() {
+        return 728;
+    }
+
+    public int get729() {
+        return 729;
+    }
+
+    public int get730() {
+        return 730;
+    }
+
+    public int get731() {
+        return 731;
+    }
+
+    public int get732() {
+        return 732;
+    }
+
+    public int get733() {
+        return 733;
+    }
+
+    public int get734() {
+        return 734;
+    }
+
+    public int get735() {
+        return 735;
+    }
+
+    public int get736() {
+        return 736;
+    }
+
+    public int get737() {
+        return 737;
+    }
+
+    public int get738() {
+        return 738;
+    }
+
+    public int get739() {
+        return 739;
+    }
+
+    public int get740() {
+        return 740;
+    }
+
+    public int get741() {
+        return 741;
+    }
+
+    public int get742() {
+        return 742;
+    }
+
+    public int get743() {
+        return 743;
+    }
+
+    public int get744() {
+        return 744;
+    }
+
+    public int get745() {
+        return 745;
+    }
+
+    public int get746() {
+        return 746;
+    }
+
+    public int get747() {
+        return 747;
+    }
+
+    public int get748() {
+        return 748;
+    }
+
+    public int get749() {
+        return 749;
+    }
+
+    public int get750() {
+        return 750;
+    }
+
+    public int get751() {
+        return 751;
+    }
+
+    public int get752() {
+        return 752;
+    }
+
+    public int get753() {
+        return 753;
+    }
+
+    public int get754() {
+        return 754;
+    }
+
+    public int get755() {
+        return 755;
+    }
+
+    public int get756() {
+        return 756;
+    }
+
+    public int get757() {
+        return 757;
+    }
+
+    public int get758() {
+        return 758;
+    }
+
+    public int get759() {
+        return 759;
+    }
+
+    public int get760() {
+        return 760;
+    }
+
+    public int get761() {
+        return 761;
+    }
+
+    public int get762() {
+        return 762;
+    }
+
+    public int get763() {
+        return 763;
+    }
+
+    public int get764() {
+        return 764;
+    }
+
+    public int get765() {
+        return 765;
+    }
+
+    public int get766() {
+        return 766;
+    }
+
+    public int get767() {
+        return 767;
+    }
+
+    public int get768() {
+        return 768;
+    }
+
+    public int get769() {
+        return 769;
+    }
+
+    public int get770() {
+        return 770;
+    }
+
+    public int get771() {
+        return 771;
+    }
+
+    public int get772() {
+        return 772;
+    }
+
+    public int get773() {
+        return 773;
+    }
+
+    public int get774() {
+        return 774;
+    }
+
+    public int get775() {
+        return 775;
+    }
+
+    public int get776() {
+        return 776;
+    }
+
+    public int get777() {
+        return 777;
+    }
+
+    public int get778() {
+        return 778;
+    }
+
+    public int get779() {
+        return 779;
+    }
+
+    public int get780() {
+        return 780;
+    }
+
+    public int get781() {
+        return 781;
+    }
+
+    public int get782() {
+        return 782;
+    }
+
+    public int get783() {
+        return 783;
+    }
+
+    public int get784() {
+        return 784;
+    }
+
+    public int get785() {
+        return 785;
+    }
+
+    public int get786() {
+        return 786;
+    }
+
+    public int get787() {
+        return 787;
+    }
+
+    public int get788() {
+        return 788;
+    }
+
+    public int get789() {
+        return 789;
+    }
+
+    public int get790() {
+        return 790;
+    }
+
+    public int get791() {
+        return 791;
+    }
+
+    public int get792() {
+        return 792;
+    }
+
+    public int get793() {
+        return 793;
+    }
+
+    public int get794() {
+        return 794;
+    }
+
+    public int get795() {
+        return 795;
+    }
+
+    public int get796() {
+        return 796;
+    }
+
+    public int get797() {
+        return 797;
+    }
+
+    public int get798() {
+        return 798;
+    }
+
+    public int get799() {
+        return 799;
+    }
+
+    public int get800() {
+        return 800;
+    }
+
+    public int get801() {
+        return 801;
+    }
+
+    public int get802() {
+        return 802;
+    }
+
+    public int get803() {
+        return 803;
+    }
+
+    public int get804() {
+        return 804;
+    }
+
+    public int get805() {
+        return 805;
+    }
+
+    public int get806() {
+        return 806;
+    }
+
+    public int get807() {
+        return 807;
+    }
+
+    public int get808() {
+        return 808;
+    }
+
+    public int get809() {
+        return 809;
+    }
+
+    public int get810() {
+        return 810;
+    }
+
+    public int get811() {
+        return 811;
+    }
+
+    public int get812() {
+        return 812;
+    }
+
+    public int get813() {
+        return 813;
+    }
+
+    public int get814() {
+        return 814;
+    }
+
+    public int get815() {
+        return 815;
+    }
+
+    public int get816() {
+        return 816;
+    }
+
+    public int get817() {
+        return 817;
+    }
+
+    public int get818() {
+        return 818;
+    }
+
+    public int get819() {
+        return 819;
+    }
+
+    public int get820() {
+        return 820;
+    }
+
+    public int get821() {
+        return 821;
+    }
+
+    public int get822() {
+        return 822;
+    }
+
+    public int get823() {
+        return 823;
+    }
+
+    public int get824() {
+        return 824;
+    }
+
+    public int get825() {
+        return 825;
+    }
+
+    public int get826() {
+        return 826;
+    }
+
+    public int get827() {
+        return 827;
+    }
+
+    public int get828() {
+        return 828;
+    }
+
+    public int get829() {
+        return 829;
+    }
+
+    public int get830() {
+        return 830;
+    }
+
+    public int get831() {
+        return 831;
+    }
+
+    public int get832() {
+        return 832;
+    }
+
+    public int get833() {
+        return 833;
+    }
+
+    public int get834() {
+        return 834;
+    }
+
+    public int get835() {
+        return 835;
+    }
+
+    public int get836() {
+        return 836;
+    }
+
+    public int get837() {
+        return 837;
+    }
+
+    public int get838() {
+        return 838;
+    }
+
+    public int get839() {
+        return 839;
+    }
+
+    public int get840() {
+        return 840;
+    }
+
+    public int get841() {
+        return 841;
+    }
+
+    public int get842() {
+        return 842;
+    }
+
+    public int get843() {
+        return 843;
+    }
+
+    public int get844() {
+        return 844;
+    }
+
+    public int get845() {
+        return 845;
+    }
+
+    public int get846() {
+        return 846;
+    }
+
+    public int get847() {
+        return 847;
+    }
+
+    public int get848() {
+        return 848;
+    }
+
+    public int get849() {
+        return 849;
+    }
+
+    public int get850() {
+        return 850;
+    }
+
+    public int get851() {
+        return 851;
+    }
+
+    public int get852() {
+        return 852;
+    }
+
+    public int get853() {
+        return 853;
+    }
+
+    public int get854() {
+        return 854;
+    }
+
+    public int get855() {
+        return 855;
+    }
+
+    public int get856() {
+        return 856;
+    }
+
+    public int get857() {
+        return 857;
+    }
+
+    public int get858() {
+        return 858;
+    }
+
+    public int get859() {
+        return 859;
+    }
+
+    public int get860() {
+        return 860;
+    }
+
+    public int get861() {
+        return 861;
+    }
+
+    public int get862() {
+        return 862;
+    }
+
+    public int get863() {
+        return 863;
+    }
+
+    public int get864() {
+        return 864;
+    }
+
+    public int get865() {
+        return 865;
+    }
+
+    public int get866() {
+        return 866;
+    }
+
+    public int get867() {
+        return 867;
+    }
+
+    public int get868() {
+        return 868;
+    }
+
+    public int get869() {
+        return 869;
+    }
+
+    public int get870() {
+        return 870;
+    }
+
+    public int get871() {
+        return 871;
+    }
+
+    public int get872() {
+        return 872;
+    }
+
+    public int get873() {
+        return 873;
+    }
+
+    public int get874() {
+        return 874;
+    }
+
+    public int get875() {
+        return 875;
+    }
+
+    public int get876() {
+        return 876;
+    }
+
+    public int get877() {
+        return 877;
+    }
+
+    public int get878() {
+        return 878;
+    }
+
+    public int get879() {
+        return 879;
+    }
+
+    public int get880() {
+        return 880;
+    }
+
+    public int get881() {
+        return 881;
+    }
+
+    public int get882() {
+        return 882;
+    }
+
+    public int get883() {
+        return 883;
+    }
+
+    public int get884() {
+        return 884;
+    }
+
+    public int get885() {
+        return 885;
+    }
+
+    public int get886() {
+        return 886;
+    }
+
+    public int get887() {
+        return 887;
+    }
+
+    public int get888() {
+        return 888;
+    }
+
+    public int get889() {
+        return 889;
+    }
+
+    public int get890() {
+        return 890;
+    }
+
+    public int get891() {
+        return 891;
+    }
+
+    public int get892() {
+        return 892;
+    }
+
+    public int get893() {
+        return 893;
+    }
+
+    public int get894() {
+        return 894;
+    }
+
+    public int get895() {
+        return 895;
+    }
+
+    public int get896() {
+        return 896;
+    }
+
+    public int get897() {
+        return 897;
+    }
+
+    public int get898() {
+        return 898;
+    }
+
+    public int get899() {
+        return 899;
+    }
+
+    public int get900() {
+        return 900;
+    }
+
+    public int get901() {
+        return 901;
+    }
+
+    public int get902() {
+        return 902;
+    }
+
+    public int get903() {
+        return 903;
+    }
+
+    public int get904() {
+        return 904;
+    }
+
+    public int get905() {
+        return 905;
+    }
+
+    public int get906() {
+        return 906;
+    }
+
+    public int get907() {
+        return 907;
+    }
+
+    public int get908() {
+        return 908;
+    }
+
+    public int get909() {
+        return 909;
+    }
+
+    public int get910() {
+        return 910;
+    }
+
+    public int get911() {
+        return 911;
+    }
+
+    public int get912() {
+        return 912;
+    }
+
+    public int get913() {
+        return 913;
+    }
+
+    public int get914() {
+        return 914;
+    }
+
+    public int get915() {
+        return 915;
+    }
+
+    public int get916() {
+        return 916;
+    }
+
+    public int get917() {
+        return 917;
+    }
+
+    public int get918() {
+        return 918;
+    }
+
+    public int get919() {
+        return 919;
+    }
+
+    public int get920() {
+        return 920;
+    }
+
+    public int get921() {
+        return 921;
+    }
+
+    public int get922() {
+        return 922;
+    }
+
+    public int get923() {
+        return 923;
+    }
+
+    public int get924() {
+        return 924;
+    }
+
+    public int get925() {
+        return 925;
+    }
+
+    public int get926() {
+        return 926;
+    }
+
+    public int get927() {
+        return 927;
+    }
+
+    public int get928() {
+        return 928;
+    }
+
+    public int get929() {
+        return 929;
+    }
+
+    public int get930() {
+        return 930;
+    }
+
+    public int get931() {
+        return 931;
+    }
+
+    public int get932() {
+        return 932;
+    }
+
+    public int get933() {
+        return 933;
+    }
+
+    public int get934() {
+        return 934;
+    }
+
+    public int get935() {
+        return 935;
+    }
+
+    public int get936() {
+        return 936;
+    }
+
+    public int get937() {
+        return 937;
+    }
+
+    public int get938() {
+        return 938;
+    }
+
+    public int get939() {
+        return 939;
+    }
+
+    public int get940() {
+        return 940;
+    }
+
+    public int get941() {
+        return 941;
+    }
+
+    public int get942() {
+        return 942;
+    }
+
+    public int get943() {
+        return 943;
+    }
+
+    public int get944() {
+        return 944;
+    }
+
+    public int get945() {
+        return 945;
+    }
+
+    public int get946() {
+        return 946;
+    }
+
+    public int get947() {
+        return 947;
+    }
+
+    public int get948() {
+        return 948;
+    }
+
+    public int get949() {
+        return 949;
+    }
+
+    public int get950() {
+        return 950;
+    }
+
+    public int get951() {
+        return 951;
+    }
+
+    public int get952() {
+        return 952;
+    }
+
+    public int get953() {
+        return 953;
+    }
+
+    public int get954() {
+        return 954;
+    }
+
+    public int get955() {
+        return 955;
+    }
+
+    public int get956() {
+        return 956;
+    }
+
+    public int get957() {
+        return 957;
+    }
+
+    public int get958() {
+        return 958;
+    }
+
+    public int get959() {
+        return 959;
+    }
+
+    public int get960() {
+        return 960;
+    }
+
+    public int get961() {
+        return 961;
+    }
+
+    public int get962() {
+        return 962;
+    }
+
+    public int get963() {
+        return 963;
+    }
+
+    public int get964() {
+        return 964;
+    }
+
+    public int get965() {
+        return 965;
+    }
+
+    public int get966() {
+        return 966;
+    }
+
+    public int get967() {
+        return 967;
+    }
+
+    public int get968() {
+        return 968;
+    }
+
+    public int get969() {
+        return 969;
+    }
+
+    public int get970() {
+        return 970;
+    }
+
+    public int get971() {
+        return 971;
+    }
+
+    public int get972() {
+        return 972;
+    }
+
+    public int get973() {
+        return 973;
+    }
+
+    public int get974() {
+        return 974;
+    }
+
+    public int get975() {
+        return 975;
+    }
+
+    public int get976() {
+        return 976;
+    }
+
+    public int get977() {
+        return 977;
+    }
+
+    public int get978() {
+        return 978;
+    }
+
+    public int get979() {
+        return 979;
+    }
+
+    public int get980() {
+        return 980;
+    }
+
+    public int get981() {
+        return 981;
+    }
+
+    public int get982() {
+        return 982;
+    }
+
+    public int get983() {
+        return 983;
+    }
+
+    public int get984() {
+        return 984;
+    }
+
+    public int get985() {
+        return 985;
+    }
+
+    public int get986() {
+        return 986;
+    }
+
+    public int get987() {
+        return 987;
+    }
+
+    public int get988() {
+        return 988;
+    }
+
+    public int get989() {
+        return 989;
+    }
+
+    public int get990() {
+        return 990;
+    }
+
+    public int get991() {
+        return 991;
+    }
+
+    public int get992() {
+        return 992;
+    }
+
+    public int get993() {
+        return 993;
+    }
+
+    public int get994() {
+        return 994;
+    }
+
+    public int get995() {
+        return 995;
+    }
+
+    public int get996() {
+        return 996;
+    }
+
+    public int get997() {
+        return 997;
+    }
+
+    public int get998() {
+        return 998;
+    }
+
+    public int get999() {
+        return 999;
+    }
+
+}
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.mk
new file mode 100644
index 0000000..d78e93a
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.mk
@@ -0,0 +1,28 @@
+# 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_TAGS := tests
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := MultiDexLegacyTestServicesTests
+
+LOCAL_SDK_VERSION := 9
+
+include $(BUILD_PACKAGE)
+
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/AndroidManifest.xml b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/AndroidManifest.xml
new file mode 100644
index 0000000..e2fba4e
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/AndroidManifest.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.framework.multidexlegacytestservices.test"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk android:minSdkVersion="9" />
+    <instrumentation
+        android:name="android.test.InstrumentationTestRunner"
+        android:targetPackage="com.android.framework.multidexlegacytestservices" />
+
+    <application
+        android:label="multidexlegacytestservices.test" >
+        <uses-library android:name="android.test.runner" />
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/src/com/android/framework/multidexlegacytestservices/test/ServicesTests.java b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/src/com/android/framework/multidexlegacytestservices/test/ServicesTests.java
new file mode 100644
index 0000000..d39ce94
--- /dev/null
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/src/com/android/framework/multidexlegacytestservices/test/ServicesTests.java
@@ -0,0 +1,89 @@
+/*
+ * 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.android.framework.multidexlegacytestservices.test;
+
+import android.content.Intent;
+import android.test.InstrumentationTestCase;
+import android.util.Log;
+
+import java.io.File;
+
+/**
+ * Run the tests with: <code>adb shell am instrument -w
+ com.android.framework.multidexlegacytestservices.test/android.test.InstrumentationTestRunner
+</code>
+ */
+public class ServicesTests extends InstrumentationTestCase {
+    private static final String SERVICE_BASE_ACTION =
+            "com.android.framework.multidexlegacytestservices.action.Service";
+    private static final int MIN_SERVICE = 1;
+    private static final int MAX_SERVICE = 19;
+
+
+    public void testStressConcurentFirstLaunch() {
+        File targetFilesDir = getInstrumentation().getTargetContext().getFilesDir();
+        for (int i = MIN_SERVICE; i <= MAX_SERVICE; i++) {
+            File resultFile = new File(targetFilesDir, "Service" + i);
+            resultFile.delete();
+            assertFalse("Failed to delete result file '" + resultFile.getAbsolutePath() + "'.",
+                    resultFile.exists());
+            File completeFile = new File(targetFilesDir, "Service" + i + ".complete");
+            completeFile.delete();
+            assertFalse("Failed to delete completion file '" + completeFile.getAbsolutePath() +
+                    "'.", completeFile.exists());
+       }
+        for (int i = MIN_SERVICE; i <= MAX_SERVICE; i++) {
+            getInstrumentation().getContext().startService(new Intent(SERVICE_BASE_ACTION + i));
+            try {
+                Thread.sleep((i - 1) * (1 << (i / 5)));
+            } catch (InterruptedException e) {
+            }
+       }
+
+
+        Log.i("ServicesTests", "start sleeping");
+        int attempt = 0;
+        int maxAttempt = 50; // 10 is enough for a nexus S
+        do {
+            try {
+                Thread.sleep(5000);
+            } catch (InterruptedException e) {
+            }
+            attempt ++;
+            if (attempt >= maxAttempt) {
+                fail();
+            }
+        } while (!areAllServicesRunning(targetFilesDir));
+
+        for (int i = MIN_SERVICE; i <= MAX_SERVICE; i++) {
+            File resultFile = new File(targetFilesDir, "Service" + i);
+            assertTrue("Service" + i + " never completed.", resultFile.isFile());
+            assertEquals("Service" + i + " was restarted.", 8L, resultFile.length());
+        }
+    }
+
+    private static boolean areAllServicesRunning(File tagetFilesDir) {
+        for (int i = MIN_SERVICE; i <= MAX_SERVICE; i++) {
+            File completeFile = new File(tagetFilesDir, "Service" + i + ".complete");
+            if (!completeFile.exists()) {
+                return false;
+            }
+        }
+        return true;
+
+    }
+}
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index 6d29c69..92ecd24 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -61,7 +61,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on March 3, 2014.
+<p style="clear:both"><em>Data collected during a 7-day period ending on April 1, 2014.
 <br/>Any versions with less than 0.1% distribution are not shown.</em>
 </p>
 
@@ -92,7 +92,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on March 3, 2014.
+<p style="clear:both"><em>Data collected during a 7-day period ending on April 1, 2014.
 <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
 
 
@@ -133,17 +133,17 @@
 </tr>
 <tr>
 <td>2.0</th>
-<td>91.1%</td>
+<td>89.4%</td>
 </tr>
 <tr>
 <td>3.0</th>
-<td>8.8%</td>
+<td>10.5%</td>
 </tr>
 </table>
 
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on March 3, 2014</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on April 1, 2014</em></p>
 
 
 
@@ -161,17 +161,17 @@
 var VERSION_DATA =
 [
   {
-    "chart": "//chart.googleapis.com/chart?chl=Froyo%7CGingerbread%7CHoneycomb%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chd=t%3A1.2%2C19.0%2C0.1%2C15.2%2C62.0%2C2.5&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&chs=500x250&cht=p",
+    "chart": "//chart.googleapis.com/chart?cht=p&chs=500x250&chco=c4df9b%2C6fad0c&chf=bg%2Cs%2C00000000&chd=t%3A1.1%2C17.8%2C0.1%2C14.3%2C61.4%2C5.3&chl=Froyo%7CGingerbread%7CHoneycomb%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat",
     "data": [
       {
         "api": 8,
         "name": "Froyo",
-        "perc": "1.2"
+        "perc": "1.1"
       },
       {
         "api": 10,
         "name": "Gingerbread",
-        "perc": "19.0"
+        "perc": "17.8"
       },
       {
         "api": 13,
@@ -181,27 +181,27 @@
       {
         "api": 15,
         "name": "Ice Cream Sandwich",
-        "perc": "15.2"
+        "perc": "14.3"
       },
       {
         "api": 16,
         "name": "Jelly Bean",
-        "perc": "35.3"
+        "perc": "34.4"
       },
       {
         "api": 17,
         "name": "Jelly Bean",
-        "perc": "17.1"
+        "perc": "18.1"
       },
       {
         "api": 18,
         "name": "Jelly Bean",
-        "perc": "9.6"
+        "perc": "8.9"
       },
       {
         "api": 19,
         "name": "KitKat",
-        "perc": "2.5"
+        "perc": "5.3"
       }
     ]
   }
@@ -218,16 +218,15 @@
       "Large": {
         "hdpi": "0.6",
         "ldpi": "0.7",
-        "mdpi": "4.3",
+        "mdpi": "4.4",
         "tvdpi": "1.5",
         "xhdpi": "0.6"
       },
       "Normal": {
         "hdpi": "33.7",
-        "ldpi": "0.2",
-        "mdpi": "13.6",
-        "xhdpi": "19.9",
-        "xxhdpi": "11.9"
+        "mdpi": "13.2",
+        "xhdpi": "19.8",
+        "xxhdpi": "12.5"
       },
       "Small": {
         "ldpi": "8.1"
@@ -235,12 +234,12 @@
       "Xlarge": {
         "hdpi": "0.3",
         "ldpi": "0.1",
-        "mdpi": "4.3",
-        "xhdpi": "0.2"
+        "mdpi": "4.2",
+        "xhdpi": "0.3"
       }
     },
-    "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chd=t%3A9.1%2C22.2%2C1.5%2C34.6%2C20.7%2C11.9&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&chs=400x250&cht=p",
-    "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chd=t%3A4.9%2C7.7%2C79.3%2C8.1&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&chs=400x250&cht=p"
+    "densitychart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chco=c4df9b%2C6fad0c&chf=bg%2Cs%2C00000000&chd=t%3A8.9%2C21.8%2C1.5%2C34.6%2C20.7%2C12.6&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi",
+    "layoutchart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chco=c4df9b%2C6fad0c&chf=bg%2Cs%2C00000000&chd=t%3A4.9%2C7.8%2C79.3%2C8.1&chl=Xlarge%7CLarge%7CNormal%7CSmall"
   }
 ];
 
diff --git a/docs/html/design/index.jd b/docs/html/design/index.jd
index 9ba32dd..7c7c5d9 100644
--- a/docs/html/design/index.jd
+++ b/docs/html/design/index.jd
@@ -1,4 +1,5 @@
 page.title=Design
+page.viewport_width=970
 header.hide=1
 footer.hide=1
 @jd:body
diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd
index 3f88b9d..eb28da8 100644
--- a/docs/html/develop/index.jd
+++ b/docs/html/develop/index.jd
@@ -1,5 +1,6 @@
 fullpage=true
 page.title=Develop
+page.viewport_width=970
 header.hide=1
 carousel=1
 tabbedList=1
diff --git a/docs/html/distribute/index.jd b/docs/html/distribute/index.jd
index 544fdff..6c6e113 100644
--- a/docs/html/distribute/index.jd
+++ b/docs/html/distribute/index.jd
@@ -1,4 +1,5 @@
 page.title=Distribute Apps
+page.viewport_width=970
 header.hide=1
 
 @jd:body
diff --git a/docs/html/google/gcm/ccs.jd b/docs/html/google/gcm/ccs.jd
index d2177ca..03addfd 100644
--- a/docs/html/google/gcm/ccs.jd
+++ b/docs/html/google/gcm/ccs.jd
@@ -8,7 +8,7 @@
 <h2>In this document</h2>
 
 <ol class="toc">
-  <li><a href="#usage">How to Use CCS</a>
+  <li><a href="#connecting">Establishing a Connection</a>
     <ol class="toc">
       <li><a href="#auth">Authentication</a></li>
       </ol>
@@ -46,19 +46,20 @@
 <p class="note"><strong>Note:</strong> To try out this feature, sign up using
 <a href="https://services.google.com/fb/forms/gcm/">this form</a>.</p>
 
-<p>The GCM Cloud Connection Server (CCS) is a connection server based on XMPP.
-CCS allows 3rd-party app servers (which you're
-responsible for implementing) to communicate
-with Android devices by  establishing a persistent TCP connection with Google
-servers using the XMPP protocol. This communication is asynchronous and bidirectional.</p>
+<p>The GCM Cloud Connection Server (CCS) is an XMPP endpoint that provides a
+persistent, asynchronous, bidirectional connection to Google servers. The
+connection can be used to send and receive messages between your server and
+your users' GCM-connected devices.</p>
+
 <p>You can continue to use the HTTP request mechanism to send messages to GCM
 servers, side-by-side with CCS which uses XMPP. Some of the benefits of CCS include:</p>
+
 <ul>
   <li>The asynchronous nature of XMPP allows you to send more messages with fewer
 resources.</li>
-  <li>Communication is bidirectional&mdash;not only can the server send messages
-to the device, but the device can send messages back to the server.</li>
-<li>You can send messages back using the same connection used for receiving,
+  <li>Communication is bidirectional&mdash;not only can your server send messages
+to the device, but the device can send messages back to your server.</li>
+  <li>The device can send messages back using the same connection used for receiving,
 thereby improving battery life.</li>
 </ul>
 
@@ -73,22 +74,34 @@
 <a href="server.html#params">Implementing GCM Server</a> for a list of all the message
 parameters and which connection server(s) supports them.</p>
 
+<h2 id="connecting">Establishing a Connection</h2>
 
-<h2 id="usage">How to Use CCS</h2>
+<p>CCS just uses XMPP as an authenticated transport layer, so you can use most
+XMPP libraries to manage the connection. For an example, see <a href="#smack">
+Java sample using the Smack library</a>.</p>
 
-<p>GCM Cloud Connection Server (CCS) is an XMPP endpoint, running on
-{@code http://gcm.googleapis.com} port 5235.</p>
+<p>The CCS XMPP endpoint runs at {@code gcm.googleapis.com:5235}. When testing
+functionality (with non-production users), you should instead connect to
+{@code gcm-staging.googleapis.com:5236} (note the different port). Testing on
+staging (a smaller environment where the latest CCS builds run) is beneficial
+both for isolating real users from test code, as well as for early detection of
+unexpected behavior changes.</p>
 
-<p>CCS requires a Transport Layer Security (TLS) connection. That means the  XMPP
-client must initiate a TLS connection.
-For example in Java, you would call {@code setSocketFactory(SSLSocketFactory)}.</p>
+<p>The connection has two important requirements:</p>
 
-<p>CCS requires a SASL PLAIN authentication mechanism using
-{@code &lt;your_GCM_Sender_Id&gt;&#64;gcm.googleapis.com} (GCM sender ID) and the
-API key as the password, where the sender ID and API key are the same as described
-in <a href="gs.html">Getting Started</a>.</p>
+<ul>
+  <li>You must initiate a Transport Layer Security (TLS) connection. Note that
+  CCS doesn't currently support the <a href="http://xmpp.org/rfcs/rfc3920.html"
+  class="external-link" target="_android">STARTTLS extension</a>.</li>
+  <li>CCS requires a SASL PLAIN authentication mechanism using
+  {@code &lt;your_GCM_Sender_Id&gt;&#64;gcm.googleapis.com} (GCM sender ID)
+  and the API key as the password, where the sender ID and API key are the same
+  as described in <a href="gs.html">Getting Started</a>.</li>
+</ul>
 
-<p> You can use most XMPP libraries to interact with CCS.</p>
+<p>If at any point the connection fails, you should immediately reconnect.
+There is no need to back off after a disconnect that happens after
+authentication.</p>
 
 <h3 id="auth">Authentication</h3>
 
@@ -100,11 +113,11 @@
 </pre>
 <h4>Server</h4>
 <pre>&lt;str:features xmlns:str=&quot;http://etherx.jabber.org/streams&quot;&gt;
- &lt;mechanisms xmlns=&quot;urn:ietf:params:xml:ns:xmpp-sasl&quot;&gt;
-   &lt;mechanism&gt;X-OAUTH2&lt;/mechanism&gt;
-   &lt;mechanism&gt;X-GOOGLE-TOKEN&lt;/mechanism&gt;
-   &lt;mechanism&gt;PLAIN&lt;/mechanism&gt;
- &lt;/mechanisms&gt;
+ &lt;mechanisms xmlns=&quot;urn:ietf:params:xml:ns:xmpp-sasl&quot;&gt;
+   &lt;mechanism&gt;X-OAUTH2&lt;/mechanism&gt;
+   &lt;mechanism&gt;X-GOOGLE-TOKEN&lt;/mechanism&gt;
+   &lt;mechanism&gt;PLAIN&lt;/mechanism&gt;
+ &lt;/mechanisms&gt;
 &lt;/str:features&gt;
 </pre>
 
@@ -118,16 +131,18 @@
 <pre>&lt;success xmlns=&quot;urn:ietf:params:xml:ns:xmpp-sasl&quot;/&gt;</pre>
 
 <h2 id="format">Message Format</h2>
-<p>CCS uses normal XMPP <code>&lt;message&gt;</code> stanzas. The body of the message must be:
-</p>
+<p>Once the XMPP connection is established, CCS and your server use normal XMPP
+<code>&lt;message&gt;</code> stanzas to send JSON-encoded messages back and
+forth. The body of the <code>&lt;message&gt;</code> must be:</p>
 <pre>
 &lt;gcm xmlns:google:mobile:data&gt;
     <em>JSON payload</em>
 &lt;/gcm&gt;
 </pre>
 
-<p>The JSON payload for server-to-device is similar to what the GCM http endpoint
-uses, with these exceptions:</p>
+<p>The JSON payload for regular GCM messages is similar to
+<a href="http.html#request">what the GCM http endpoint uses</a>, with these
+exceptions:</p>
 <ul>
   <li>There is no support for multiple recipients.</li>
   <li>{@code to} is used instead of {@code registration_ids}.</li>
@@ -136,14 +151,13 @@
 {@code message_id} to identify a message sent from 3rd-party app servers to CCS.
 Therefore, it's important that this {@code message_id} not only be unique, but
 always present.</li>
-
-<li>For ACK/NACK messages that are special control messages, you also need to
-include a {@code message_type} field in the JSON message. The value can be either
-'ack' or 'nack'. For example:
-
-<pre>message_type = ('ack');</pre>
-  </li>
 </ul>
+
+<p>In addition to regular GCM messages, control messages are sent, indicated by
+the {@code message_type} field in the JSON object. The value can be either
+'ack' or 'nack', or 'control' (see formats below). Any GCM message with an
+unknown {@code message_type} can be ignored by your server.</p>
+
 <p>For each device message your app server receives from CCS, it needs to send
 an ACK message.
 It never needs to send a NACK message. If you don't send an ACK for a message,
@@ -251,7 +265,9 @@
 &lt;/message&gt;</pre>
 
 
-<p>The following table lists some of the more common NACK error codes.</p>
+<p>The following table lists NACK error codes. Unless otherwise
+indicated, a NACKed message should not be retried. Unexpected NACK error codes
+should be treated the same as {@code INTERNAL_SERVER_ERROR}.</p>
 
 <p class="table-caption" id="table1">
   <strong>Table 1.</strong> NACK error codes.</p>
@@ -262,8 +278,17 @@
 <th>Description</th>
 </tr>
 <tr>
+<td>{@code BAD_ACK}</td>
+<td>The ACK message is improperly formed.</td>
+</tr>
+<tr>
 <td>{@code BAD_REGISTRATION}</td>
-<td>The device has a registration ID, but it's invalid.</td>
+<td>The device has a registration ID, but it's invalid or expired.</td>
+</tr>
+<tr>
+<td>{@code CONNECTION_DRAINING}</td>
+<td>The message couldn't be processed because the connection is draining. The
+message should be immediately retried over another connection.</td>
 </tr>
 <tr>
 <td>{@code DEVICE_UNREGISTERED}</td>
@@ -274,25 +299,20 @@
 <td>The server encountered an error while trying to process the request.</td>
 </tr>
 <tr>
+<td>{@code INVALID_JSON}</td>
+<td>The JSON message payload was not valid.</td>
+</tr>
+<tr>
+<td>{@code QUOTA_EXCEEDED}</td>
+<td>The rate of messages to a particular registration ID (in other words, to a
+sender/device pair) is too high. If you want to retry the message, try using a slower
+rate.</td>
+</tr>
+<tr>
 <td>{@code SERVICE_UNAVAILABLE}</td>
-<td>The CCS connection server is temporarily unavailable, try again later
-(using exponential backoff, etc.).</td>
-</tr>
-<tr>
-<td>{@code BAD_ACK}</td>
-<td>The ACK message is improperly formed.</td>
-</tr>
-<tr>
-<td>{@code AUTHENTICATION_FAILED}</td>
-<td>This is a 401 error indicating that there was an error authenticating the sender account.</td>
-</tr>
-<tr>
-<td>{@code INVALID_TTL}</td>
-<td>There was an error in the supplied "time to live" value.</td>
-</tr>
-<tr>
-<td>{@code JSON_TYPE_ERROR}</td>
-<td>There was an error in the supplied JSON data type.</td>
+<td>CCS is not currently able to process the message. The
+message should be retried over the same connection using exponential backoff
+with an initial delay of 1 second.</td>
 </tr>
 </table>
 
@@ -319,6 +339,28 @@
 &lt;/message&gt;
 </pre>
 
+<h4 id="control">Control messages</h4>
+
+<p>Periodically, CCS needs to close down a connection to perform load balancing. Before it
+closes the connection, CCS sends a {@code CONNECTION_DRAINING} message to indicate that the connection is being drained
+and will be closed soon. "Draining" refers to shutting off the flow of messages coming into a
+connection, but allowing whatever is already in the pipeline to continue. When you receive
+a {@code CONNECTION_DRAINING} message, you should immediately begin sending messages to another CCS
+connection, opening a new connection if necessary. You should, however, keep the original
+connection open and continue receiving messages that may come over the connection (and
+ACKing them)&mdash;CCS will handle initiating a connection close when it is ready.</p>
+
+<p>The {@code CONNECTION_DRAINING} message looks like this:</p>
+<pre>&lt;message&gt;
+  &lt;data:gcm xmlns:data=&quot;google:mobile:data&quot;&gt;
+  {
+    &quot;message_type&quot;:&quot;control&quot;
+    &quot;control_type&quot;:&quot;CONNECTION_DRAINING&quot;
+  }
+  &lt;/data:gcm&gt;
+&lt;/message&gt;</pre>
+
+<p>{@code CONNECTION_DRAINING} is currently the only {@code control_type} supported.</p>
 
 <h2 id="upstream">Upstream Messages</h2>
 
@@ -381,7 +423,7 @@
 
 <p>Every message sent to CCS receives either an ACK or a NACK response. Messages
 that haven't received one of these responses are considered pending. If the pending
-message count reaches 1000, the 3rd-party app server should stop sending new messages
+message count reaches 100, the 3rd-party app server should stop sending new messages
 and wait for CCS to acknowledge some of the existing pending messages as illustrated in
 figure 1:</p>
 
@@ -395,7 +437,7 @@
 if there are too many unacknowledged messages. Therefore, the 3rd-party app server
 should "ACK" upstream messages, received from the client application via CCS, as soon as possible
 to maintain a constant flow of incoming messages. The aforementioned pending message limit doesn't
-apply to these ACKs. Even if the pending message count reaches 1000, the 3rd-party app server
+apply to these ACKs. Even if the pending message count reaches 100, the 3rd-party app server
 should continue sending ACKs for messages received from CCS to avoid blocking delivery of new
 upstream messages.</p>
 
@@ -795,7 +837,7 @@
 PASSWORD = "API Key"
 REGISTRATION_ID = "Registration Id of the target device"
 
-unacked_messages_quota = 1000
+unacked_messages_quota = 100
 send_queue = []
 
 # Return a random alphanumerical id
diff --git a/docs/html/google/index.jd b/docs/html/google/index.jd
index b743b66..2e97d62 100644
--- a/docs/html/google/index.jd
+++ b/docs/html/google/index.jd
@@ -125,7 +125,7 @@
 <img src="{@docRoot}images/google/analytics.png" width="40" />
   </div>
     <h4><a class="external-link" 
-href="https://developers.google.com/analytics/devguides/collection/android/v2/"
+href="https://developers.google.com/analytics/devguides/collection/android/v4/"
   >Google Analytics</a></h4>
 
 <p>Measure your success and gain insights into how users engage with your app content
diff --git a/docs/html/google/play-services/maps.jd b/docs/html/google/play-services/maps.jd
index c24cc74..c541b08 100644
--- a/docs/html/google/play-services/maps.jd
+++ b/docs/html/google/play-services/maps.jd
@@ -1,4 +1,4 @@
-page.title=Google Maps Android API
+page.title=Google Maps Android API v2
 page.tags=mapview,location
 header.hide=1
 
@@ -12,14 +12,14 @@
 </div>
 <div class="col-6">
 
-  <h1 itemprop="name" style="margin-bottom:0;">Google Maps Android API</h1>
+  <h1 itemprop="name" style="margin-bottom:0;">Google Maps Android API v2</h1>
   <p itemprop="description">Allow your users explore the world with rich maps provided by
   Google. Identify locations with <b>custom markers</b>, augment the map data
   with <b>image overlays</b>, embed <b>one or more maps</b> as fragments,
   and much more.</p>
   <p>Explore the <a
 href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html"
->Google Maps Android API reference</a> or visit <a class="external-link"
+>Google Maps Android API v2 reference</a> or visit <a class="external-link"
 href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>
 for more information about adding maps to your app.</p>
 </div>
@@ -31,7 +31,7 @@
   <div class="col-6 normal-links">
     <h3 style="clear:left">Key Developer Features</h3>
     <h4>Add maps to your app</h4>
-    <p>With version 2 of the Google Maps Android API, you can embed maps into an activity
+    <p>With Google Maps Android API v2, you can embed maps into an activity
     as a fragment with a simple XML snippet. The new Maps offer exciting features such as 3D maps;
     indoor, satellite, terrain, and hybrid maps;
     vector-based tiles for efficient caching and drawing; animated transitions; and much more.
@@ -58,7 +58,7 @@
   <div class="col-6 normal-links">
     <h3 style="clear:left">Getting Started</h3>
     <h4>1. Get the Google Play services SDK</h4>
-    <p>The Google Maps Android APIs are part of the Google Play services platform.</p>
+    <p>Google Maps Android API v2 is part of the Google Play services platform.</p>
     <p>To use Google Maps, <a href="{@docRoot}google/play-services/setup.html">set up
       the Google Play services SDK</a>. Then see the <a class="external-link"
       href="https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api">
@@ -69,7 +69,7 @@
     
     <p>Once you've installed the Google Play services package, the Google Maps sample is located in
       <code>&lt;android-sdk&gt;/extras/google-play-services/samples/maps</code> and shows you
-      how to use the major components of the Google Maps Android APIs.
+      how to use the major components of Google Maps Android API v2.
     </p>
     
     <h4>3. Read the documentation</h4>
@@ -79,9 +79,9 @@
     
     <p>For quick access while developing your Android apps, the
       <a href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html">Google Maps
-      Android API reference</a> is available here on developer.android.com.</p>
+      Android API v2 reference</a> is available here on developer.android.com.</p>
 
-    <p>Detailed documentation for the Google Maps Android APIs is available with the rest of the
+    <p>Detailed documentation for Google Maps Android API v2 is available with the rest of the
     Google Maps developer documents at <a class="external-link"
     href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>.
     </p>
diff --git a/docs/html/google/play-services/setup.jd b/docs/html/google/play-services/setup.jd
index 3137890..5df2629 100644
--- a/docs/html/google/play-services/setup.jd
+++ b/docs/html/google/play-services/setup.jd
@@ -104,7 +104,7 @@
 
 dependencies {
     compile 'com.android.support:appcompat-v7:+'
-    <strong>compile 'com.google.android.gms:play-services:4.0.30'</strong>
+    <strong>compile 'com.google.android.gms:play-services:4.3.23'</strong>
 }
 </pre>
 <p>Be sure you update this version number each time Google Play services is updated.</p>
@@ -235,4 +235,4 @@
 
 
 <p>To then begin a connection to Google Play services, read <a
-href="{@docRoot}google/auth/api-client.html">Accessing Google Play Services APIs</a>.</p>
\ No newline at end of file
+href="{@docRoot}google/auth/api-client.html">Accessing Google Play Services APIs</a>.</p>
diff --git a/docs/html/guide/components/intents-common.jd b/docs/html/guide/components/intents-common.jd
index 506cf9d..826dcff 100644
--- a/docs/html/guide/components/intents-common.jd
+++ b/docs/html/guide/components/intents-common.jd
@@ -11,6 +11,18 @@
         <span class="less" style="display:none">show less</span></a></h2>
 
 <ol id="tocIntents" class="hide-nested">
+  <li><a href="#Clock">Alarm Clock</a>
+    <ol>
+      <li><a href="#CreateAlarm">Create an alarm</a></li>
+      <li><a href="#CreateTimer">Create a timer</a></li>
+      <li><a href="#ShowAlarms">Show all alarms</a></li>
+    </ol>
+  </li>
+  <li><a href="#Calendar">Calendar</a>
+    <ol>
+      <li><a href="#AddEvent">Add a calendar event</a></li>
+    </ol>
+  </li>
   <li><a href="#Camera">Camera</a>
     <ol>
       <li><a href="#ImageCapture">Capture a picture or video and return it</a></li>
@@ -116,6 +128,292 @@
 
 
 
+
+
+
+
+<h2 id="Clock">Alarm Clock</h2>
+
+
+<h3 id="CreateAlarm">Create an alarm</h3>
+
+<p>To create a new alarm, use the {@link android.provider.AlarmClock#ACTION_SET_ALARM}
+action and specify alarm details such as the time and message using extras defined below.</p>
+
+<p class="note"><strong>Note:</strong> Only the hour, minutes, and message extras are available
+since Android 2.3 (API level 9). The other extras were added in later versions of the platform.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.provider.AlarmClock#ACTION_SET_ALARM}</dd>
+
+<dt><b>Data URI</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None
+</dd>
+
+<dt><b>Extras</b></dt>
+<dd>
+  <dl>
+    <dt>{@link android.provider.AlarmClock#EXTRA_HOUR}</dt>
+      <dd>The hour for the alarm.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_MINUTES}</dt>
+      <dd>The minutes for the alarm.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_MESSAGE}</dt>
+      <dd>A custom message to identify the alarm.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_DAYS}</dt>
+      <dd>An {@link java.util.ArrayList} including each week day on which this alarm should
+      be repeated. Each day must be declared with an integer from the {@link java.util.Calendar}
+      class such as {@link java.util.Calendar#MONDAY}.
+      <p>For a one-time alarm, do not specify this extra.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_RINGTONE}</dt>
+      <dd>A {@code content:} URI specifying a ringtone to use with the alarm, or {@link
+      android.provider.AlarmClock#VALUE_RINGTONE_SILENT} for no ringtone.
+      <p>To use the default ringtone, do not specify this extra.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_VIBRATE}</dt>
+      <dd>A boolean specifying whether to vibrate for this alarm.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_SKIP_UI}</dt>
+      <dd>A boolean specifying whether the responding app should skip its UI when setting the alarm.
+      If true, the app should bypass any confirmation UI and simply set the specified alarm.</dd>
+  </dl>
+</dd>
+
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void createAlarm(String message, int hour, int minutes) {
+    Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
+            .putExtra(AlarmClock.EXTRA_MESSAGE, message)
+            .putExtra(AlarmClock.EXTRA_HOUR, hour)
+            .putExtra(AlarmClock.EXTRA_MINUTES, minutes);
+    if (intent.resolveActivity(getPackageManager()) != null) {
+        startActivity(intent);
+    }
+}
+</pre>
+
+<div class="note"><strong>Note:</strong>
+<p>In order to invoke the {@link
+android.provider.AlarmClock#ACTION_SET_ALARM} intent, your app must have the
+{@link android.Manifest.permission#SET_ALARM} permission:</p>
+<pre>
+&lt;uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
+</pre>
+</div>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+&lt;activity ...>
+    &lt;intent-filter>
+        &lt;action android:name="android.intent.action.SET_ALARM" />
+        &lt;category android:name="android.intent.category.DEFAULT" />
+    &lt;/intent-filter>
+&lt;/activity>
+</pre>
+
+
+
+<h3 id="CreateTimer">Create a timer</h3>
+
+<p>To create a countdown timer, use the {@link android.provider.AlarmClock#ACTION_SET_TIMER}
+action and specify timer details such as the duration using extras defined below.</p>
+
+<p class="note"><strong>Note:</strong> This intent was added
+in Android 4.4 (API level 19).</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.provider.AlarmClock#ACTION_SET_TIMER}</dd>
+
+<dt><b>Data URI</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None
+</dd>
+
+<dt><b>Extras</b></dt>
+<dd>
+  <dl>
+    <dt>{@link android.provider.AlarmClock#EXTRA_LENGTH}</dt>
+      <dd>The length of the timer in seconds.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_MESSAGE}</dt>
+      <dd>A custom message to identify the timer.</dd>
+    <dt>{@link android.provider.AlarmClock#EXTRA_SKIP_UI}</dt>
+      <dd>A boolean specifying whether the responding app should skip its UI when setting the timer.
+      If true, the app should bypass any confirmation UI and simply start the specified timer.</dd>
+  </dl>
+</dd>
+
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void startTimer(String message, int seconds) {
+    Intent intent = new Intent(AlarmClock.ACTION_SET_TIMER)
+            .putExtra(AlarmClock.EXTRA_MESSAGE, message)
+            .putExtra(AlarmClock.EXTRA_LENGTH, seconds)
+            .putExtra(AlarmClock.EXTRA_SKIP_UI, true);
+    if (intent.resolveActivity(getPackageManager()) != null) {
+        startActivity(intent);
+    }
+}
+</pre>
+
+<div class="note"><strong>Note:</strong>
+<p>In order to invoke the {@link
+android.provider.AlarmClock#ACTION_SET_TIMER} intent, your app must have the
+{@link android.Manifest.permission#SET_ALARM} permission:</p>
+<pre>
+&lt;uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
+</pre>
+</div>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+&lt;activity ...>
+    &lt;intent-filter>
+        &lt;action android:name="android.intent.action.SET_TIMER" />
+        &lt;category android:name="android.intent.category.DEFAULT" />
+    &lt;/intent-filter>
+&lt;/activity>
+</pre>
+
+
+
+
+
+<h3 id="ShowAlarms">Show all alarms</h3>
+
+<p>To show the list of alarms, use the {@link android.provider.AlarmClock#ACTION_SHOW_ALARMS}
+action.</p>
+
+<p>Although not many apps will invoke this intent (it's primarily used by system apps),
+any app that behaves as an alarm clock should implement
+this intent filter and respond by showing the list of current alarms.</p>
+
+<p class="note"><strong>Note:</strong> This intent was added
+in Android 4.4 (API level 19).</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.provider.AlarmClock#ACTION_SHOW_ALARMS}</dd>
+
+<dt><b>Data URI</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None
+</dd>
+</dl>
+
+<p><b>Example intent filter:</b></p>
+<pre>
+&lt;activity ...>
+    &lt;intent-filter>
+        &lt;action android:name="android.intent.action.SHOW_ALARMS" />
+        &lt;category android:name="android.intent.category.DEFAULT" />
+    &lt;/intent-filter>
+&lt;/activity>
+</pre>
+
+
+
+
+
+
+<h2 id="Calendar">Calendar</h2>
+
+
+<h3 id="AddEvent">Add a calendar event</h3>
+
+<p>To add a new event to the user's calendar, use the {@link android.content.Intent#ACTION_INSERT}
+action and specify the data URI with {@link android.provider.CalendarContract.Events#CONTENT_URI
+Events.CONTENT_URI}. You can then specify various event details using extras defined below.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_INSERT}</dd>
+
+<dt><b>Data URI</b></dt>
+<dd>{@link android.provider.CalendarContract.Events#CONTENT_URI
+Events.CONTENT_URI}</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>{@code "vnd.android.cursor.dir/event"}
+</dd>
+
+<dt><b>Extras</b></dt>
+<dd>
+  <dl>
+    <dt>{@link android.provider.CalendarContract#EXTRA_EVENT_ALL_DAY}</dt>
+      <dd>A boolean specifying whether this is an all-day event.</dd>
+    <dt>{@link android.provider.CalendarContract#EXTRA_EVENT_BEGIN_TIME}</dt>
+      <dd>The start time of the event (milliseconds since epoch).</dd>
+    <dt>{@link android.provider.CalendarContract#EXTRA_EVENT_END_TIME}</dt>
+      <dd>The end time of the event (milliseconds since epoch).</dd>
+    <dt>{@link android.provider.CalendarContract.EventsColumns#TITLE}</dt>
+      <dd>The event title.</dd>
+    <dt>{@link android.provider.CalendarContract.EventsColumns#DESCRIPTION}</dt>
+      <dd>The event description.</dd>
+    <dt>{@link android.provider.CalendarContract.EventsColumns#EVENT_LOCATION}</dt>
+      <dd>The event location.</dd>
+    <dt>{@link android.content.Intent#EXTRA_EMAIL}</dt>
+      <dd>A comma-separated list of email addresses that specify the invitees.</dd>
+  </dl>
+  <p>Many more event details can be specified using the constants defined in the
+  {@link android.provider.CalendarContract.EventsColumns} class.</p>
+</dd>
+
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void addEvent(String title, String location, Calendar begin, Calendar end) {
+    Intent intent = new Intent(Intent.ACTION_INSERT)
+            .setData(Events.CONTENT_URI)
+            .putExtra(Events.TITLE, title)
+            .putExtra(Events.EVENT_LOCATION, location)
+            .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, begin)
+            .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, end);
+    if (intent.resolveActivity(getPackageManager()) != null) {
+        startActivity(intent);
+    }
+}
+</pre>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+&lt;activity ...>
+    &lt;intent-filter>
+        &lt;action android:name="android.intent.action.INSERT" />
+        &lt;data android:mimeType="vnd.android.cursor.dir/event" />
+        &lt;category android:name="android.intent.category.DEFAULT" />
+    &lt;/intent-filter>
+&lt;/activity>
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
 <h2 id="Camera">Camera</h2>
 
 
@@ -211,6 +509,7 @@
 
 
 
+
 <h2 id="Contacts">Contacts/People App</h2>
 
 
@@ -427,7 +726,7 @@
 <dd>The type is inferred from contact URI.
 </dd>
 
-<dt><b>Extras</b> (optional)</dt>
+<dt><b>Extras</b></dt>
 <dd>One or more of the extras defined in {@link android.provider.ContactsContract.Intents.Insert}
 so you can populate fields of the contact details.
 </dd>
@@ -469,7 +768,7 @@
 <dt><b>MIME Type</b></dt>
 <dd>{@link android.provider.ContactsContract.Contacts#CONTENT_TYPE Contacts.CONTENT_TYPE}</dd>
 
-<dt><b>Extras</b> (optional)</dt>
+<dt><b>Extras</b></dt>
 <dd>One or more of the extras defined in {@link android.provider.ContactsContract.Intents.Insert}.
 </dd>
 </dl>
@@ -523,7 +822,7 @@
   </dl>
 </dd>
 
-<dt><b>Extras</b> (optional)</dt>
+<dt><b>Extras</b></dt>
 <dd>
   <dl>
     <dt>{@link android.content.Intent#EXTRA_EMAIL Intent.EXTRA_EMAIL}</dt>
@@ -648,7 +947,7 @@
 <dd>The MIME type corresponding to the file type the user should select.
 </dd>
 
-<dt><b>Extras</b> (optional)</dt>
+<dt><b>Extras</b></dt>
 <dd>
   <dl>
     <dt>{@link android.content.Intent#EXTRA_ALLOW_MULTIPLE}
@@ -768,7 +1067,7 @@
 <dd>The MIME type corresponding to the file type the user should select.
 </dd>
 
-<dt><b>Extras</b> (optional)</dt>
+<dt><b>Extras</b></dt>
 <dd>
   <dl>
     <dt>{@link android.content.Intent#EXTRA_MIME_TYPES}
@@ -1139,7 +1438,7 @@
   </dl>
 </dd>
 
-<dt><b>Extras</b> (optional)</dt>
+<dt><b>Extras</b></dt>
 <dd>
   <dl>
     <dt><code>"subject"</code></dt>
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index 73d5b74..0a234aa 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -368,7 +368,10 @@
                   <span class="en">Media Playback</span></a>
                 </li>
             <li><a href="<?cs var:toroot ?>guide/topics/media/mediarouter.html">
-                  <span class="en">MediaRouter</span></a>
+                  <span class="en">Media Router</span></a>
+                </li>
+            <li><a href="<?cs var:toroot ?>guide/topics/media/mediarouteprovider.html">
+                  <span class="en">Media Route Provider</span></a>
                 </li>
             <li><a href="<?cs var:toroot ?>guide/appendix/media-formats.html">
                    <span class="en">Supported Media Formats</span></a>
diff --git a/docs/html/guide/topics/media/mediarouteprovider.jd b/docs/html/guide/topics/media/mediarouteprovider.jd
new file mode 100644
index 0000000..389fbfb
--- /dev/null
+++ b/docs/html/guide/topics/media/mediarouteprovider.jd
@@ -0,0 +1,453 @@
+page.title=Media Route Provider
+page.tags="mediarouteprovider","mediacontrolintent"
+@jd:body
+
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2>In this document</h2>
+    <ol>
+      <li><a href="#overview">Overview</a>
+        <ol>
+          <li><a href="#dist">Distribution of route providers</a></li>
+          <li><a href="#playback-types">Types of playback</a></li>
+          <li><a href="#mr-packages">Media router packages</a></li>
+        </ol>
+      </li>
+      <li><a href="#provider-service">Creating a Provider Service</a></li>
+      <li><a href="#route-caps">Specifying Route Capabilities</a>
+        <ol>
+          <li><a href="#route-cat">Route categories</a></li>
+          <li><a href="#media-types">Media types and protocols</a></li>
+          <li><a href="#playback-ctrls">Playback controls</a></li>
+          <li><a href="#mrpd">MediaRouteProviderDescriptor</a></li>
+        </ol>
+      </li>
+      <li><a href="#ctrl-routes">Controlling Routes</a></li>
+    </ol>
+    <h2>Key Classes</h2>
+    <ol>
+      <li>{@link android.support.v7.media.MediaRouteProvider}</li>
+      <li>{@link android.support.v7.media.MediaRouteProviderDescriptor}</li>
+      <li>{@link android.support.v7.media.MediaRouteProvider.RouteController RouteController}</li>
+    </ol>
+    <h2>Related Samples</h2>
+    <ol>
+      <li><a href="{@docRoot}samples/MediaRouter/index.html">MediaRouter</a></li>
+    </ol>
+  </div>
+</div>
+
+<p>Users want to play media content from their Android devices bigger, brighter, and louder on
+  connected playback devices such as televisions, stereos,
+  and home theater equipment. As a manufacturer of these devices, allowing Android users to
+  instantly show a picture, play a song, or share a video for friends and family using your product
+  can make it much more compelling and engaging.</p>
+
+<p>The Android media router framework allows manufacturers to enable playback on their devices
+  through a standardized interface called a {@link android.support.v7.media.MediaRouteProvider}.
+  A route provider defines a common interface for playing media on a receiver device, making it
+  possible to play media on your equipment from any Android application that supports media
+  routes.</p>
+
+<p>This guide discusses how to create a media route provider for a receiver device and make it
+  available to other media playback applications that run on Android.</p>
+
+<h2 id="overview">Overview</h2>
+
+<p>The Android media router framework enables media app developers and media playback device
+  manufacturers to connect through a common API and common user interface. App developers that
+  implement a {@link android.support.v7.media.MediaRouter} interface can then connect to the
+  framework and play content to devices that participate in the media router framework. Media
+  playback device manufacturers can participate in the framework by publishing a {@link
+  android.support.v7.media.MediaRouteProvider} that allows other applications to connect to and
+  play media on the receiver devices. Figure 1 illustrates how an app connects to a receiving
+  device through the media router framework.</p>
+
+<img src="{@docRoot}images/mediarouter/media-route-provider-framework.png" alt="" id="figure1"/>
+<p class="img-caption">
+  <strong>Figure 1.</strong> Overview of how media route provider classes provide communication
+  from a media app to a receiver device.
+</p>
+
+<p>When you build a media route provider for your receiver device, the provider serves the
+following purposes:</p>
+
+<ul>
+  <li>Describe and publish the capabilities of the receiver device so other apps can discover it
+    and use its playback features.</li>
+  <li>Wrap the programming interface of the receiver device and its communication
+    transport mechanisms to make the device compatible with the media router framework.</li>
+</ul>
+
+
+<h3 id="dist">Distribution of route providers</h3>
+
+<p>A media route provider is distributed as part of an Android app. Your route provider can be
+  made available to other apps by extending
+  {@link android.support.v7.media.MediaRouteProviderService} or wrapping your implementation of
+  {@link android.support.v7.media.MediaRouteProvider} with your own service and declaring an intent
+  filter for the media route provider. These steps allow other apps to discover and make use of
+  your media route.</p>
+
+<p>
+  <strong>Note:</strong> The app containing the media route provider can also include a
+  <a href="{@docRoot}guide/topics/media/mediarouter.html">MediaRouter</a> interface to the
+  route provider, but this is not required.
+</p>
+
+
+<h3 id="playback-types">Types of playback</h3>
+
+<p>There are two main types of playback supported by the media router framework. A media route
+  provider can support one or both types of playback, depending on the capabilities of your playback
+  equipment and the functionality you want to support:</p>
+
+<ul>
+  <li><strong>Remote Playback</strong> — This approach uses the receiver device to handle the
+    content data retrieval, decoding, and playback, while an Android device in the user's hand is
+    used as a remote control. This approach is used by Android apps that support
+    <a href="https://developers.google.com/cast/">Google Cast</a>.</li>
+  <li><strong>Secondary Output</strong> — With this approach, the Android media application
+    retrieves, renders and streams video or music directly to the receiver device. This approach is
+    used to support Wireless Display output on Android.</li>
+</ul>
+
+
+<h3 id="mr-packages">Media router packages</h3>
+
+<p>
+  The media router APIs are provided as part of the Android Support Library version 18 and higher,
+  in the <a href="{@docRoot}tools/support-library/features.html#v7-mediarouter">v7-mediarouter</a>
+  support library. You should use the classes in the
+  {@link android.support.v7.media} package for media route provider functions.
+  These APIs are compatible with devices running Android 2.1 (API level 7) and higher.
+</p>
+
+<p class="caution">
+  <strong>Caution:</strong> There is another set of media router APIs provided in the
+  {@link android.media} class package that have been superseded by the
+  <a href="{@docRoot}tools/support-library/features.html#v7-mediarouter">v7-mediarouter</a>
+  support library. You <em>should not</em> use the {@link android.media} classes for
+  implementing media route provider functions.
+</p>
+
+<p>In order to use the {@link android.support.v7.media} media router classes, you
+  must add the <a href="{@docRoot}tools/support-library/features.html#v7-mediarouter"
+  >v7-mediarouter support library package</a> to your app development project. For more
+  information on adding support libraries to your app development project, see
+  <a href="{@docRoot}tools/support-library/setup.html">Support Library Setup</a>.
+</p>
+
+
+<h2 id="provider-service">Creating a Provider Service</h2>
+
+<p>The media router framework must be able to discover and connect to your media route provider
+  to allow other applications to use your route. In order to do this, the media router framework
+  looks for apps that declare a media route provider intent action. When another app wants to
+  connect to your provider, the framework must be able to invoke and connect to it, so your provider
+  must be encapsulated in a {@link android.app.Service}.</p>
+
+<p>The following example code shows the declaration of a media route provider service and the
+  intent filter in a manifest, which allows it to be discovered and used by the media router
+  framework:</p>
+
+<pre>
+&lt;service android:name=".provider.SampleMediaRouteProviderService"
+    android:label="&#64;string/sample_media_route_provider_service"
+    android:process=":mrp"&gt;
+    &lt;intent-filter&gt;
+        &lt;action android:name="android.media.MediaRouteProviderService" /&gt;
+    &lt;/intent-filter&gt;
+&lt;/service&gt;
+</pre>
+
+<p>This manifest example declares a service that wraps the actual media route provider classes.
+  The Android media router framework provides the
+  {@link android.support.v7.media.MediaRouteProviderService} class for use as a service wrapper for
+  media route providers. The following example code demonstrates how to use this wrapper
+  class:</p>
+
+<pre>
+public class SampleMediaRouteProviderService extends MediaRouteProviderService {
+
+    &#64;Override
+    public MediaRouteProvider onCreateMediaRouteProvider() {
+        return new SampleMediaRouteProvider(this);
+    }
+}
+</pre>
+
+
+<h2 id="route-caps">Specifying Route Capabilities</h2>
+
+<p>Apps connecting to the media router framework can discover your media route through your
+  app's manifest declarations, but they also need to know the capabilities of the media routes you
+  are providing. Media routes can be of different types and have different features, and other apps
+  need to be able to discover these details to determine if they are compatible with your route.</p>
+
+<p>The media router framework allows you to define and publish the capabilities of your media
+  route through {@link android.content.IntentFilter} objects, {@link
+  android.support.v7.media.MediaRouteDescriptor} objects and a {@link
+  android.support.v7.media.MediaRouteProviderDescriptor}. This section explains how to use these
+  classes to publish the details of your media route for other apps.</p>
+
+
+<h3 id="route-cat">Route categories</h3>
+
+<p>As part of the programmatic description of your media route provider, you must specify
+  whether your provider supports remote playback, secondary output, or both. These are the route
+  categories provided by the media router framework:</p>
+
+<ul>
+  <li>{@link android.support.v7.media.MediaControlIntent#CATEGORY_LIVE_AUDIO CATEGORY_LIVE_AUDIO}
+    &mdash; Output of audio to a secondary output device, such as a wireless-enabled music system.
+    </li>
+  <li>{@link android.support.v7.media.MediaControlIntent#CATEGORY_LIVE_VIDEO CATEGORY_LIVE_VIDEO}
+    &mdash; Output of video to a secondary output device, such as Wireless Display devices.</li>
+  <li>{@link android.support.v7.media.MediaControlIntent#CATEGORY_REMOTE_PLAYBACK
+    CATEGORY_REMOTE_PLAYBACK} &mdash; Play video or audio on a separate device which handles media
+    retrieval, decoding, and playback, such as
+    <a href="https://www.google.com/url?q=http://www.google.com/chromecast">Chromecast</a> devices.
+    </li>
+</ul>
+
+<p>In order to include these settings in a description of your media route, you insert them into
+  an {@link android.content.IntentFilter} object, which you later add to a
+  {@link android.support.v7.media.MediaRouteDescriptor} object:</p>
+
+<pre>
+public final class SampleMediaRouteProvider extends MediaRouteProvider {
+    private static final ArrayList&lt;IntentFilter&gt; CONTROL_FILTERS_BASIC;
+    static {
+        IntentFilter videoPlayback = new IntentFilter();
+        <strong>videoPlayback.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);</strong>
+        CONTROL_FILTERS_BASIC = new ArrayList&lt;IntentFilter&gt;();
+        CONTROL_FILTERS_BASIC.add(videoPlayback);
+    }
+}
+
+</pre>
+
+<p>If you specify the {@link android.support.v7.media.MediaControlIntent#CATEGORY_REMOTE_PLAYBACK
+  CATEGORY_REMOTE_PLAYBACK} intent, you must also define what media types and
+  playback controls are supported by your media route provider. The next section describes how to
+  specify these settings for your device.</p>
+
+
+<h3 id="media-types">Media types and protocols</h3>
+
+<p>A media route provider for a remote playback device must specify the media types and transfer
+  protocols it supports. You specify these settings using the {@link android.content.IntentFilter}
+  class and the {@link android.content.IntentFilter#addDataScheme addDataScheme()} and
+  {@link android.content.IntentFilter#addDataType addDataType()} methods of that object. The
+  following code snippet demonstrates how to define an intent filter for supporting remote video
+  playback using http, https, and Real Time Streaming Protocol (RTSP):</p>
+
+<pre>
+public final class SampleMediaRouteProvider extends MediaRouteProvider {
+
+    private static final ArrayList&lt;IntentFilter&gt; CONTROL_FILTERS_BASIC;
+
+    static {
+        IntentFilter videoPlayback = new IntentFilter();
+        videoPlayback.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
+        videoPlayback.addAction(MediaControlIntent.ACTION_PLAY);
+        videoPlayback.addDataScheme("http");
+        videoPlayback.addDataScheme("https");
+        videoPlayback.addDataScheme("rtsp");
+        addDataTypeUnchecked(videoPlayback, "video/*");
+        CONTROL_FILTERS_BASIC = new ArrayList&lt;IntentFilter&gt;();
+        CONTROL_FILTERS_BASIC.add(videoPlayback);
+    }
+    ...
+
+    private static void addDataTypeUnchecked(IntentFilter filter, String type) {
+        try {
+            filter.addDataType(type);
+        } catch (MalformedMimeTypeException ex) {
+            throw new RuntimeException(ex);
+        }
+    }
+}
+
+</pre>
+
+
+<h3 id="playback-ctrls">Playback controls</h3>
+
+<p>A media route provider that offers remote playback must specify the types of media controls
+  it supports. These are the general types of control that media routes can provide:</p>
+
+<ul>
+  <li><strong>Playback controls</strong>, such as play, pause, rewind, and fast-forward.</li>
+  <li><strong>Queuing features</strong>, which allow the sending app to add and remove items
+    from a playlist which is maintained by the receiver device.</li>
+  <li><strong>Session features</strong>, which prevent sending apps from interfering with each
+    other by having the receiver device provide a session id to the requesting app and then checking
+    that id with each subsequent playback control request.</li>
+</ul>
+
+<p>The following code example demonstrates how to construct an intent filter for supporting
+  basic media route playback controls:</p>
+
+<pre>
+public final class SampleMediaRouteProvider extends MediaRouteProvider {
+    private static final ArrayList&lt;IntentFilter&gt; CONTROL_FILTERS_BASIC;
+    static {
+        ...
+        IntentFilter playControls = new IntentFilter();
+        playControls.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
+        playControls.addAction(MediaControlIntent.ACTION_SEEK);
+        playControls.addAction(MediaControlIntent.ACTION_GET_STATUS);
+        playControls.addAction(MediaControlIntent.ACTION_PAUSE);
+        playControls.addAction(MediaControlIntent.ACTION_RESUME);
+        playControls.addAction(MediaControlIntent.ACTION_STOP);
+        CONTROL_FILTERS_BASIC = new ArrayList&lt;IntentFilter&gt;();
+        CONTROL_FILTERS_BASIC.add(videoPlayback);
+        CONTROL_FILTERS_BASIC.add(playControls);
+    }
+    ...
+}
+</pre>
+
+<p>For more information about the available playback control intents, see the
+  {@link android.support.v7.media.MediaControlIntent} class.</p>
+
+
+<h3 id="mrpd">MediaRouteProviderDescriptor</h3>
+
+<p>After defining the capabilities of your media route using {@link
+  android.content.IntentFilter} objects, you can then create a descriptor object for publishing to
+  the Android media router framework. This descriptor object contains the specifics of your media
+  route's capabilities so that other applications can determine how to interact with your media
+  route.</p>
+
+<p>The following example code demonstrates how to add the previously created intent filters to a
+  {@link android.support.v7.media.MediaRouteProviderDescriptor} and set the descriptor for use by
+  the media router framework:</p>
+
+<pre>
+public SampleMediaRouteProvider(Context context) {
+    super(context);
+    publishRoutes();
+}
+
+private void publishRoutes() {
+    Resources r = getContext().getResources();
+    // Create a route descriptor using previously created IntentFilters
+    MediaRouteDescriptor routeDescriptor = new MediaRouteDescriptor.Builder(
+            VARIABLE_VOLUME_BASIC_ROUTE_ID,
+            r.getString(R.string.variable_volume_basic_route_name))
+            .setDescription(r.getString(R.string.sample_route_description))
+            .addControlFilters(CONTROL_FILTERS_BASIC)
+            .setPlaybackStream(AudioManager.STREAM_MUSIC)
+            .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
+            .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)
+            .setVolumeMax(VOLUME_MAX)
+            .setVolume(mVolume)
+            .build();
+    // Add the route descriptor to the provider descriptor
+    MediaRouteProviderDescriptor providerDescriptor =
+            new MediaRouteProviderDescriptor.Builder()
+            .addRoute(routeDescriptor)
+            .build();
+
+    // Publish the descriptor to the framework
+    setDescriptor(providerDescriptor);
+}
+</pre>
+
+<p>For more information on the available descriptor settings, see the reference documentation
+  for {@link android.support.v7.media.MediaRouteDescriptor} and {@link
+  android.support.v7.media.MediaRouteProviderDescriptor}.</p>
+
+
+<h2 id="ctrl-routes">Controlling Routes</h2>
+
+<p>When an application connects to your media route provider, the provider receives playback
+  commands through the media router framework sent to your route by other apps. To handle these
+  requests, you must provide an implementation of a {@link
+  android.support.v7.media.MediaRouteProvider.RouteController} class, which processes the commands
+  and handles the actual communication to your receiver device.</p>
+
+<p>The media router framework calls the {@link
+  android.support.v7.media.MediaRouteProvider#onCreateRouteController onCreateRouteController()}
+  method of your route provider to obtain an instance of this class and then routes requests to it.
+  These are the key methods of the {@link
+  android.support.v7.media.MediaRouteProvider.RouteController} class, which you must implement for
+  your media route provider:</p>
+
+<ul>
+  <li>{@link android.support.v7.media.MediaRouteProvider.RouteController#onSelect onSelect()}
+    &mdash; Called when an application selects your route for playback. You use this method to do
+    any preparation work that may be required before media playback begins.</li>
+  <li>{@link android.support.v7.media.MediaRouteProvider.RouteController#onControlRequest
+    onControlRequest()} &mdash; Sends specific playback commands to the receiving device.</li>
+  <li>{@link android.support.v7.media.MediaRouteProvider.RouteController#onSetVolume
+    onSetVolume()} &mdash; Sends a request to the receiving device to set the playback volume to a
+    specific value.</li>
+  <li>{@link android.support.v7.media.MediaRouteProvider.RouteController#onUpdateVolume
+    onUpdateVolume()} &mdash; Sends a request to the receiving device to modify the playback
+    volume by a specified amount.</li>
+  <li>{@link android.support.v7.media.MediaRouteProvider.RouteController#onUnselect
+    onUnselect()} &mdash; Called when an application unselects a route.</li>
+  <li>{@link android.support.v7.media.MediaRouteProvider.RouteController#onRelease onRelease()}
+    &mdash; Called when the route is no longer needed by the framework, allowing it to free its
+    resources.</li>
+</ul>
+
+<p>All playback control requests, except for volume changes, are directed to the {@link
+  android.support.v7.media.MediaRouteProvider.RouteController#onControlRequest onControlRequest()}
+  method. Your implementation of this method must parse the control requests and respond to them
+  appropriately. Here is an example implementation of this method which processes commands for a
+  remote playback media route:</p>
+
+<pre>
+private final class SampleRouteController extends
+        MediaRouteProvider.RouteController {
+    ...
+
+    &#64;Override
+    public boolean onControlRequest(Intent intent, ControlRequestCallback callback) {
+
+        String action = intent.getAction();
+
+        if (intent.hasCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)) {
+            boolean success = false;
+            if (action.equals(MediaControlIntent.ACTION_PLAY)) {
+                success = handlePlay(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_ENQUEUE)) {
+                success = handleEnqueue(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_REMOVE)) {
+                success = handleRemove(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_SEEK)) {
+                success = handleSeek(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_GET_STATUS)) {
+                success = handleGetStatus(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_PAUSE)) {
+                success = handlePause(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_RESUME)) {
+                success = handleResume(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_STOP)) {
+                success = handleStop(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_START_SESSION)) {
+                success = handleStartSession(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_GET_SESSION_STATUS)) {
+                success = handleGetSessionStatus(intent, callback);
+            } else if (action.equals(MediaControlIntent.ACTION_END_SESSION)) {
+                success = handleEndSession(intent, callback);
+            }
+
+            Log.d(TAG, mSessionManager.toString());
+            return success;
+        }
+        return false;
+    }
+    ...
+}
+</pre>
+
+<p>It is important to understand that the {@link
+  android.support.v7.media.MediaRouteProvider.RouteController} class is intended to act as a wrapper
+  for the API to your media playback equipment. The implementation of the methods in this class is
+  entirely dependent on the programmatic interface provided by your receiving device.</p>
diff --git a/docs/html/guide/topics/media/mediarouter.jd b/docs/html/guide/topics/media/mediarouter.jd
index 1b10265..e0bf889 100644
--- a/docs/html/guide/topics/media/mediarouter.jd
+++ b/docs/html/guide/topics/media/mediarouter.jd
@@ -1,5 +1,5 @@
-page.title=MediaRouter
-page.tags="cast","chromecast","wireless display","miracast"
+page.title=Media Router
+page.tags="mediarouter","cast","chromecast","wireless display","miracast"
 @jd:body
 
 <div id="qv-wrapper">
@@ -36,6 +36,10 @@
       <li>{@link android.support.v7.media.MediaRouter.Callback}</li>
       <li>{@link android.support.v7.media.MediaRouteProvider}</li>
     </ol>
+    <h2>Related Samples</h2>
+    <ol>
+      <li><a href="{@docRoot}guide/topics/media/mediarouter.html">MediaRouter</a></li>
+    </ol>
   </div>
 </div>
 
@@ -105,15 +109,17 @@
   (API level 7) and higher.
 </p>
 
-<p class="note">
-  <strong>Note:</strong> There is another set of media router APIs provided in the
+<p class="caution">
+  <strong>Caution:</strong> There is another set of media router APIs provided in the
   {@link android.media} that have been superseded by the v7-mediarouter support library.
   You <em>should not</em> use the {@link android.media} classes for media router functions.
 </p>
 
 <p>In order to use the {@link android.support.v7.media} media router classes, you must add
   the <a href="{@docRoot}tools/support-library/features.html#v7-mediarouter">v7-mediarouter
-  support library package</a> to your app development project.
+  support library package</a> to your app development project.  For more
+  information on adding support libraries to your app development project, see
+  <a href="{@docRoot}tools/support-library/setup.html">Support Library Setup</a>.
 </p>
 
 
@@ -211,9 +217,9 @@
     CATEGORY_LIVE_VIDEO} &mdash; Output of video to a secondary output device, such as Wireless
     Display devices.</li>
   <li>{@link android.support.v7.media.MediaControlIntent#CATEGORY_REMOTE_PLAYBACK
-    CATEGORY_REMOTE_PLAYBACK} &mdash; Play video or audio on a separate device that supports the
-    <a href="https://developers.google.com/cast/">Google Cast</a> remote control protocol, such
-    as <a href="https://www.google.com/url?q=http://www.google.com/chromecast">Chromecast</a>.
+    CATEGORY_REMOTE_PLAYBACK} &mdash; Play video or audio on a separate device that handles media
+    retrieval, decoding, and playback, such as
+    <a href="https://www.google.com/url?q=http://www.google.com/chromecast">Chromecast</a> devices.
     </li>
 </ul>
 
@@ -279,7 +285,7 @@
 <p>In order to connect to a media route selected by the user, your app must obtain the {@link
   android.support.v7.media.MediaRouter} framework object and then attach a {@link
   android.support.v7.media.MediaRouter.Callback} object. The callback object receives messages
-  from the media router framework when a route selected, changed or disconnected by the user.</p>
+  from the media router framework when a route is selected, changed, or disconnected by the user.</p>
 
 <p>To obtain an instance of the {@link android.support.v7.media.MediaRouter} framework object,
   call {@link android.support.v7.media.MediaRouter#getInstance MediaRouter.getInstance()}
@@ -299,11 +305,11 @@
 <p>The media router framework communicates with an app through a callback object that
   you attach to the {@link android.support.v7.media.MediaRouter} framework object. An app
   that uses the media router framework must extend the {@link
-  android.support.v7.media.MediaRouter.Callback} object to receive messages when a media route is
-  connected and provide content to the connected device through that route.</p>
+  android.support.v7.media.MediaRouter.Callback} object in order to receive messages when a
+  media route is connected.</p>
 
-<p>There are several methods in the callback that can be overwritten to receive messages about
-  media router events. At the minimum, your implementation of the {@link
+<p>There are several methods in the callback that you can override to receive information about
+  media router events. At minimum, your implementation of the {@link
   android.support.v7.media.MediaRouter.Callback} class should override the following
   methods:</p>
 
@@ -440,12 +446,12 @@
 
 <p class="note">
   <strong>Note:</strong> The media route framework also provides a
-  {@link android.support.v7.app.MediaRouteDiscoveryFragment} class which takes care of adding and
-  removing the call back for an activity.
+  {@link android.support.v7.app.MediaRouteDiscoveryFragment} class, which takes care of adding and
+  removing the callback for an activity.
 </p>
 
 <p>Now when you run your application, you should see a Cast button appear in your activity.
-  When you press the button the media router framework, a route selection dialog appears as shown
+  When you touch the button, a route selection dialog appears as shown
   in figure 3, allowing your user to select an available media route. Make sure you have a
   supported device available on your local network when testing this interface.</p>
 
diff --git a/docs/html/guide/topics/resources/providing-resources.jd b/docs/html/guide/topics/resources/providing-resources.jd
index aec7fa7..bf16630 100644
--- a/docs/html/guide/topics/resources/providing-resources.jd
+++ b/docs/html/guide/topics/resources/providing-resources.jd
@@ -562,6 +562,7 @@
         <code>desk</code><br/>
         <code>television<br/>
         <code>appliance</code>
+        <code>watch</code>
       </td>
       <td>
         <ul class="nolist">
@@ -573,8 +574,9 @@
           non-pointer interaction</li>
           <li>{@code appliance}: Device is serving as an appliance, with
           no display</li>
+          <li>{@code watch}: Device has a display and is worn on the wrist</li>
         </ul>
-        <p><em>Added in API level 8, television added in API 13.</em></p>
+        <p><em>Added in API level 8, television added in API 13, watch added in API 20.</em></p>
         <p>For information about how your app can respond when the device is inserted into or
         removed from a dock, read <a 
         href="{@docRoot}training/monitoring-device-state/docking-monitoring.html">Determining
diff --git a/docs/html/images/gcm/CCS-ack.png b/docs/html/images/gcm/CCS-ack.png
index bce2ab2..4633157 100644
--- a/docs/html/images/gcm/CCS-ack.png
+++ b/docs/html/images/gcm/CCS-ack.png
Binary files differ
diff --git a/docs/html/images/mediarouter/media-route-provider-framework.png b/docs/html/images/mediarouter/media-route-provider-framework.png
new file mode 100644
index 0000000..60cc29a
--- /dev/null
+++ b/docs/html/images/mediarouter/media-route-provider-framework.png
Binary files differ
diff --git a/docs/html/images/tools/as-android.png b/docs/html/images/tools/as-android.png
new file mode 100644
index 0000000..7808ed1
--- /dev/null
+++ b/docs/html/images/tools/as-android.png
Binary files differ
diff --git a/docs/html/images/tools/as-breakpointline.png b/docs/html/images/tools/as-breakpointline.png
new file mode 100644
index 0000000..9aea880
--- /dev/null
+++ b/docs/html/images/tools/as-breakpointline.png
Binary files differ
diff --git a/docs/html/images/tools/as-breakpointswindow.png b/docs/html/images/tools/as-breakpointswindow.png
new file mode 100644
index 0000000..a40b459
--- /dev/null
+++ b/docs/html/images/tools/as-breakpointswindow.png
Binary files differ
diff --git a/docs/html/images/tools/as-capture.png b/docs/html/images/tools/as-capture.png
new file mode 100644
index 0000000..02f9f6f
--- /dev/null
+++ b/docs/html/images/tools/as-capture.png
Binary files differ
diff --git a/docs/html/images/tools/as-currentproc.png b/docs/html/images/tools/as-currentproc.png
new file mode 100644
index 0000000..4be8305
--- /dev/null
+++ b/docs/html/images/tools/as-currentproc.png
Binary files differ
diff --git a/docs/html/images/tools/as-ddmslog.png b/docs/html/images/tools/as-ddmslog.png
new file mode 100644
index 0000000..b53b8fe
--- /dev/null
+++ b/docs/html/images/tools/as-ddmslog.png
Binary files differ
diff --git a/docs/html/images/tools/as-debugbutton.png b/docs/html/images/tools/as-debugbutton.png
new file mode 100644
index 0000000..55e95d1
--- /dev/null
+++ b/docs/html/images/tools/as-debugbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-debugdevices.png b/docs/html/images/tools/as-debugdevices.png
new file mode 100644
index 0000000..09a9d0e
--- /dev/null
+++ b/docs/html/images/tools/as-debugdevices.png
Binary files differ
diff --git a/docs/html/images/tools/as-debugview.png b/docs/html/images/tools/as-debugview.png
new file mode 100644
index 0000000..0349147
--- /dev/null
+++ b/docs/html/images/tools/as-debugview.png
Binary files differ
diff --git a/docs/html/images/tools/as-debugwindowbutton.png b/docs/html/images/tools/as-debugwindowbutton.png
new file mode 100644
index 0000000..9016778
--- /dev/null
+++ b/docs/html/images/tools/as-debugwindowbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-devicecapture.png b/docs/html/images/tools/as-devicecapture.png
new file mode 100644
index 0000000..3236a89
--- /dev/null
+++ b/docs/html/images/tools/as-devicecapture.png
Binary files differ
diff --git a/docs/html/images/tools/as-evalexpbutton.png b/docs/html/images/tools/as-evalexpbutton.png
new file mode 100644
index 0000000..85b3c74
--- /dev/null
+++ b/docs/html/images/tools/as-evalexpbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-launchavdm.png b/docs/html/images/tools/as-launchavdm.png
new file mode 100644
index 0000000..bf15981
--- /dev/null
+++ b/docs/html/images/tools/as-launchavdm.png
Binary files differ
diff --git a/docs/html/images/tools/as-monitorbutton.png b/docs/html/images/tools/as-monitorbutton.png
new file mode 100644
index 0000000..6bdc3a5
--- /dev/null
+++ b/docs/html/images/tools/as-monitorbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-record.png b/docs/html/images/tools/as-record.png
new file mode 100644
index 0000000..5f7fa99
--- /dev/null
+++ b/docs/html/images/tools/as-record.png
Binary files differ
diff --git a/docs/html/images/tools/as-restart.png b/docs/html/images/tools/as-restart.png
new file mode 100644
index 0000000..12d2923
--- /dev/null
+++ b/docs/html/images/tools/as-restart.png
Binary files differ
diff --git a/docs/html/images/tools/as-resumeprogrambutton.png b/docs/html/images/tools/as-resumeprogrambutton.png
new file mode 100644
index 0000000..8096937
--- /dev/null
+++ b/docs/html/images/tools/as-resumeprogrambutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-showdevview.png b/docs/html/images/tools/as-showdevview.png
new file mode 100644
index 0000000..602a6ad
--- /dev/null
+++ b/docs/html/images/tools/as-showdevview.png
Binary files differ
diff --git a/docs/html/images/tools/as-stepintobutton.png b/docs/html/images/tools/as-stepintobutton.png
new file mode 100644
index 0000000..569d4ed
--- /dev/null
+++ b/docs/html/images/tools/as-stepintobutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-stepoutbutton.png b/docs/html/images/tools/as-stepoutbutton.png
new file mode 100644
index 0000000..ef8871f
--- /dev/null
+++ b/docs/html/images/tools/as-stepoutbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-stepoverbutton.png b/docs/html/images/tools/as-stepoverbutton.png
new file mode 100644
index 0000000..1c487df
--- /dev/null
+++ b/docs/html/images/tools/as-stepoverbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-variablesview.png b/docs/html/images/tools/as-variablesview.png
new file mode 100644
index 0000000..6a0b987
--- /dev/null
+++ b/docs/html/images/tools/as-variablesview.png
Binary files differ
diff --git a/docs/html/images/tools/as-varviewbutton.png b/docs/html/images/tools/as-varviewbutton.png
new file mode 100644
index 0000000..2ad4c58
--- /dev/null
+++ b/docs/html/images/tools/as-varviewbutton.png
Binary files differ
diff --git a/docs/html/images/tools/as-viewbreakbutton.png b/docs/html/images/tools/as-viewbreakbutton.png
new file mode 100644
index 0000000..22723d4
--- /dev/null
+++ b/docs/html/images/tools/as-viewbreakbutton.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index baeaa5b..99a469a 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -1,4 +1,5 @@
 fullpage=true
+page.viewport_width=970
 no_footer_links=true
 carousel=true
 excludeFromSuggestions=true
@@ -20,7 +21,7 @@
 
                 <li class="item carousel-home">
                   <div class="content-left col-10" style="width:580px;">
-                    <a href="{@docRoot}design/patterns/new.html">
+                    <a href="{@docRoot}wear/index.html">
                       <img src="{@docRoot}images/home/aw_dac.png" style="margin-top:50px" >
                     </a>
                   </div>
diff --git a/docs/html/sdk/installing/index.jd b/docs/html/sdk/installing/index.jd
index 9d5e8c1..6b63ba7 100644
--- a/docs/html/sdk/installing/index.jd
+++ b/docs/html/sdk/installing/index.jd
@@ -35,10 +35,10 @@
 
 </div>
 
-  
+
 
 <div id="mac" class="docs" style="display:none">
-  
+
 <h3>Getting started on Mac</h3>
 
 <ol>
@@ -62,7 +62,7 @@
 
 
 <div id="linux" class="docs" style="display:none">
-  
+
 <h3>Getting started on Linux</h3>
 
 <ol>
@@ -97,17 +97,23 @@
   <li>Here are the steps to install Java and Eclipse, prior to installing
   the Android SDK and ADT Plugin.
     <ol>
-      <li>If you are running a 64-bit distribution on your development
-      machine, you need to install the <code>ia32-libs</code> package using
-      <code>apt-get:</code>:
-      <pre>apt-get install ia32-libs</pre>
+      <li><p>If you are running a 64-bit distribution on your development
+      machine, you need to install additional packages first. For Ubuntu 13.10 (Saucy Salamander)
+      and above, install the <code>libncurses5:i386</code>, <code>libstdc++6:i386</code>, and
+      <code>zlib1g:i386</code> packages using <code>apt-get</code>:</p>
+      <pre class="no-pretty-print">sudo dpkg --add-architecture i386
+sudo apt-get update
+sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386</pre>
+      <p>For earlier versions of Ubuntu, install the <code>ia32-libs</code> package using
+      <code>apt-get</code>:</p>
+      <pre class="no-pretty-print">apt-get install ia32-libs</pre>
       </li>
-      <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li>
-      <li>The Ubuntu package manager does not currently offer an Eclipse 3.6
+      <li>Next, install Java: <pre class="no-pretty-print">apt-get install sun-java6-jdk</pre></li>
+      <li>The Ubuntu package manager does not currently offer an Eclipse 3.7
       version for download, so we recommend that you download Eclipse from
       eclipse.org (<a
-      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
+      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>).
+      A Java or RCP version of Eclipse is recommended.</li>
       <li>Follow the steps given in previous sections to install the SDK
       and the ADT plugin. </li>
     </ol>
@@ -137,7 +143,7 @@
     // not running a compatible OS, so just show all the docs
     $('.docs').show();
   }
-  
+
   function showAll() {
     $('.docs').each(function() {
       if (!$(this).is(':visible')) {
diff --git a/docs/html/sdk/installing/installing-adt.jd b/docs/html/sdk/installing/installing-adt.jd
index 1f5ca11..e4cf1bc 100644
--- a/docs/html/sdk/installing/installing-adt.jd
+++ b/docs/html/sdk/installing/installing-adt.jd
@@ -35,10 +35,10 @@
     <li>In the Add Repository dialog that appears, enter "ADT Plugin" for the <em>Name</em> and the
 following URL for the <em>Location</em>:
       <pre>https://dl-ssl.google.com/android/eclipse/</pre>
+      <p class="note"><strong>Note:</strong> The Android Developer Tools update site requires
+      a secure connection. Make sure the update site URL you enter starts with HTTPS.</p>
     </li>
-    <li>Click <strong>OK</strong>.
-      <p>If you have trouble acquiring the plugin, try using "http" in the Location URL,
-instead of "https" (https is preferred for security reasons).</p></li>
+    <li>Click <strong>OK</strong>.</li>
     <li>In the Available Software dialog, select the checkbox next to Developer Tools and click
 <strong>Next</strong>.</li>
     <li>In the next window, you'll see a list of the tools to be downloaded. Click
@@ -139,23 +139,16 @@
 
 <h2 id="Troubleshooting">Troubleshooting ADT Installation</h2>
 
-<p> If you are having trouble downloading the ADT plugin after following the
-steps above, here are some suggestions: </p>
-
-<ul>
-  <li>If Eclipse can not find the remote update site containing the ADT plugin,
-try changing the remote site URL to use http, rather than https. That is, set
-the Location for the remote site to:
-<pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
-<li>If you are behind a firewall (such as a corporate firewall), make sure that
+<p>If you are having trouble downloading the ADT plugin after following the
+steps above and you are behind a firewall (such as a corporate firewall), make sure that
 you have properly configured your proxy settings in Eclipse. In Eclipse,
 you can configure proxy information from the main Eclipse menu in
 <strong>Window</strong> (on Mac OS X, <strong>Eclipse</strong>) &gt;
 <strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network
-Connections</strong>.</li>
-</ul>
+Connections</strong>.
+</p>
 
-<p> If you are still unable to use Eclipse to download the ADT plugin as a
+<p>If you are still unable to use Eclipse to download the ADT plugin as a
 remote update site, you can download the ADT zip file to your local machine and
 manually install it:</p>
 
diff --git a/docs/html/sdk/installing/studio-build.jd b/docs/html/sdk/installing/studio-build.jd
index 41ad5de..2a616a0 100644
--- a/docs/html/sdk/installing/studio-build.jd
+++ b/docs/html/sdk/installing/studio-build.jd
@@ -1,4 +1,4 @@
-page.title=Building your Project
+page.title=Building Your Project with Gradle
 
 @jd:body
 
@@ -23,6 +23,7 @@
             <li><a href="#addLibModule">Add a library module</a></li>
             <li><a href="#buildProject">Build the project</a></li>
             <li><a href="#buildCmd">Build from the command line</a></li>
+            <li><a href="#buildRelease">Build a release version</a></li>
         </ol>
     </li>
     <li><a href="#configBuild">Configure the Build</a>
@@ -463,6 +464,24 @@
 </pre>
 
 
+<h3 id="buildRelease">Build a release version</h3>
+
+<p>You can build the release version of your application from the command line or using Android
+Studio. To build it from the command line, invoke the <code>assembleRelease</code> build task using
+the Gradle wrapper script (<code>gradlew assembleRelease</code>). To build it from Android
+Studio:</p>
+
+<ol>
+    <li>Click <strong>Gradle</strong> on the right side of the IDE window.</li>
+    <li>On the <em>All tasks</em> section of the sidebar that appears, expand
+        <strong>BuildSystemExample</strong>.</li>
+    <li>Expand <strong>:app</strong> and double-click <strong>assembleRelease</strong>.</li>
+</ol>
+
+<p>You can use this procedure to invoke any build task from Android Studio.</p>
+
+
+
 <h2 id="configBuild">Configure the Build</h2>
 
 <p>This section uses the <code>BuildSystemExample</code> project from the previous section and
@@ -643,20 +662,6 @@
 <code>proguard-rules.txt</code> at the root of the module, where you can add custom ProGuard
 rules.</p>
 
-<p>You can build the release version of your application from the command line or using Android
-Studio. To build it from the command line, invoke the <code>assembleRelease</code> build task using
-the Gradle wrapper script (<code>gradlew assembleRelease</code>). To build it from Android
-Studio:</p>
-
-<ol>
-    <li>Click <strong>Gradle</strong> on the right side of the IDE window.</li>
-    <li>On the <em>All tasks</em> section of the sidebar that appears, expand
-        <strong>BuildSystemExample</strong>.</li>
-    <li>Expand <strong>:app</strong> and double-click <strong>assembleRelease</strong>.</li>
-</ol>
-
-<p>You can use this procedure to invoke any build task from Android Studio.</p>
-
 <h3 id="configureSigning">Configure signing settings</h3>
 
 <p>The debug and the release versions of the app differ on whether the application can be
diff --git a/docs/html/sdk/installing/studio-debug.jd b/docs/html/sdk/installing/studio-debug.jd
new file mode 100644
index 0000000..7e2efe3
--- /dev/null
+++ b/docs/html/sdk/installing/studio-debug.jd
@@ -0,0 +1,346 @@
+page.title=Debugging with Android Studio
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
+<ol>
+  <li><a href="#runDebug">Run your App in Debug Mode</a></li>
+  <li><a href="#systemLog">Use the System Log</a>
+    <ol>
+      <li><a href="#systemLogWrite">Write log messages in your code</a></li>
+      <li><a href="#systemLogView">View the system log</a></li>
+    </ol>
+  </li>
+  <li><a href="#breakPoints">Work with Breakpoints</a>
+    <ol>
+        <li><a href="#breakPointsView">View and configure breakpoints</a></li>
+        <li><a href="#breakPointsDebug">Debug your app with breakpoints</a></li>
+    </ol>
+  </li>
+  <li><a href="#deviceMonitor">Analyze Runtime Metrics to Optimize your App</a></li>
+  <li><a href="#screenCap">Capture Screenshots and Videos</a></li>
+</ol>
+<h2>See also</h2>
+<ul>
+<li><a href="{@docRoot}sdk/installing/studio-tips.html">
+Android Studio Tips and Tricks</a></li>
+<li><a href="{@docRoot}tools/debugging/index.html">Debugging</a></li>
+<li><a href="{@docRoot}tools/help/monitor.html">Device Monitor</a></li>
+<li><a href="{@docRoot}tools/debugging/ddms.html">Using DDMS</a></li>
+</div>
+</div>
+
+<p>Android Studio enables you to debug apps running on the emulator or on an Android device.
+With Android Studio, you can:</p>
+
+<ul>
+    <li>Select a device to debug your app on.</li>
+    <li>View the system log.</li>
+    <li>Set breakpoints in your code.</li>
+    <li>Examine variables and evaluate expressions at run time.</li>
+    <li>Run the debugging tools from the Android SDK.</li>
+    <li>Capture screenshots and videos of your app.</li>
+</ul>
+
+<p>To debug your app, Android Studio builds a debuggable version of your app, connects
+to a device or to the emulator, installs the app and runs it. The IDE shows the system log
+while your app is running and provides debugging tools to filter log messages, work with
+breakpoints, and control the execution flow.</p>
+
+
+<h2 id="runDebug">Run your App in Debug Mode</h2>
+
+<div class="figure" style="width:419px">
+    <img src="{@docRoot}images/tools/as-debugdevices.png" alt=""/>
+    <p class="img-caption"><strong>Figure 1.</strong> The Choose Device window enables you to
+    select a physical Android device or a virtual device to debug your app.</p>
+</div>
+
+<p>To run your app in debug mode, you build an APK signed with a debug key and install it on a
+physical Android device or on the Android emulator.
+To set up an Android device for development, see <a href="{@docRoot}tools/device.html">Using
+Hardware Devices</a>. For more information about the emulator provided by the Android SDK, see
+<a href="{@docRoot}tools/devices/emulator.html">Using the Emulator.</a></p>
+
+<p>To debug your app in Android Studio:</p>
+
+<ol>
+    <li>Open your project in Android Studio.</li>
+    <li>Click <strong>Debug</strong> <img src="{@docRoot}images/tools/as-debugbutton.png"
+        style="vertical-align:bottom;margin:0;height:22px"  alt=""/> in the toolbar.</li>
+    <li>On the <em>Choose Device</em> window, select a hardware device from the list or
+        choose a virtual device.</li>
+    <li>Click <strong>OK</strong>. Your app starts on the selected device.</li>
+</ol>
+
+<p>Figure 1 shows the <em>Choose Device</em> window. The list shows all the Android devices
+connected to your computer. Select <strong>Launch Emulator</strong> to use an Android virtual device
+instead. Click the ellipsis <img src="{@docRoot}images/tools/as-launchavdm.png"
+style="vertical-align:bottom;margin:0;height:19px" alt=""/> to open the
+<a href="{@docRoot}tools/devices/managing-avds.html">Android Virtual Device Manager</a>.</p>
+
+<p>Android Studio opens the <em>Debug</em> tool window when you debug your app. To open the
+<em>Debug</em> window manually, click <strong>Debug</strong>
+<img src="{@docRoot}images/tools/as-debugwindowbutton.png"
+alt="" style="vertical-align:bottom;margin:0;height:20px"/>.
+This window shows threads and variables in the <em>Debugger</em> tab, the device status in the
+<em>Console</em> tab, and the system log in the <em>Logcat</em> tab. The <em>Debug</em> tool
+window also provides other debugging tools covered in the following sections.</p>
+
+<img src="{@docRoot}images/tools/as-debugview.png" alt="" />
+<p class="img-caption"><strong>Figure 2.</strong> The Debug tool window in Android Studio showing
+the current thread and the object tree for a variable.</p>
+
+
+<h2 id="systemLog">Use the System Log</h2>
+
+<p>The system log shows system messages while you debug your app. These messages include
+information from apps running on the device. If you want to use the
+system log to debug your app, make sure your code writes log messages and prints the stack
+trace for exceptions while your app is in the development phase.</p>
+
+<h3 id="systemLogWrite">Write log messages in your code</h3>
+
+<p>To write log messages in your code, use the {@link android.util.Log} class. Log messages
+help you understand the execution flow by collecting the system debug output while you interact
+with your app. Log messages can tell you what part of your application failed. For more
+information about logging, see <a href="{@docRoot}tools/debugging/debugging-log.html">
+Reading and Writing Logs</a>.</p>
+
+<p>The following example shows how you might add log messages to determine if previous state
+information is available when your activity starts:</p>
+
+<pre>
+import android.util.Log;
+...
+public class MyActivity extends Activity {
+    private static final String TAG = MyActivity.class.getSimpleName();
+    ...
+    &#64;Override
+    public void onCreate(Bundle savedInstanceState) {
+        if (savedInstanceState != null) {
+            Log.d(TAG, "onCreate() Restoring previous state");
+            /* restore state */
+        } else {
+            Log.d(TAG, "onCreate() No saved state available");
+            /* initialize app */
+        }
+    }
+}
+</pre>
+
+<p>During development, your code can also catch exceptions and write the stack trace to the system
+log:</p>
+
+<pre>
+void someOtherMethod() {
+    try {
+        ...
+    } catch (SomeException e) {
+        Log.d(TAG, "someOtherMethod()", e);
+    }
+}
+</pre>
+
+<p class="note"><strong>Note:</strong> Remove debug log messages and stack trace print calls from
+your code when you are ready to publish your app. You could do this by setting a <code>DEBUG</code>
+flag and placing debug log messages inside conditional statements.</p>
+
+
+<h3 id="systemLogView">View the system log</h3>
+
+<p>Both the <em>Android DDMS</em> (Dalvik Debug Monitor Server) and the <em>Debug</em> tool windows
+show the system log; however, the <em>Android DDMS</em> tool window lets you view only log messages
+for a particular process. To view the system log on the <em>Android DDMS</em> tool window:</p>
+
+<ol>
+    <li>Start your app as described in <a href="#runDebug">Run your App in Debug Mode</a>.</li>
+    <li>Click <strong>Android</strong> <img src="{@docRoot}images/tools/as-android.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/> to open the <em>Android DDMS</em>
+        tool window.</li>
+    <li>If the system log is empty in the <em>Logcat view</em>, click <strong>Restart</strong>
+        <img src="{@docRoot}images/tools/as-restart.png" alt=""
+        style="vertical-align:bottom;margin:0;height:22px"/>.</li>
+</ol>
+
+<img src="{@docRoot}images/tools/as-ddmslog.png" alt="" />
+<p class="img-caption"><strong>Figure 4.</strong> The system log in the Android DDMS tool
+window.</p>
+
+<p>The <em>Android DDMS</em> tool window gives you access to some DDMS features from Android Studio.
+For more information about DDMS, see <a href="{@docRoot}tools/debugging/ddms.html">Using DDMS</a>.
+</p>
+
+<p>The system log shows messages from Android services and other Android apps. To filter the log
+messages to view only the ones you are interested in, use the tools in the <em>Android DDMS</em>
+window:</p>
+
+<ul>
+    <li>To show only log messages for a particular process, select the process in the
+        <em>Devices</em> view and then click <strong>Only Show Logcat from Selected
+        Process</strong> <img src="{@docRoot}images/tools/as-currentproc.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>. If the <em>Devices</em> view
+        is not available, click <strong>Restore Devices View</strong>
+        <img src="{@docRoot}images/tools/as-showdevview.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/> on the right of the <em>Android
+        DDMS</em> tool window. This button is only visible when you hide the <em>Devices</em>
+        window.</li>
+    <li>To filter log messages by log level, select a level under <em>Log Level</em> on the top
+        of the <em>Android DDMS</em> window.</li>
+    <li>To show only log messages that contain a particular string, enter the string in the search
+        box and press <strong>Enter</strong>.</li>
+</ul>
+
+
+<h2 id="breakPoints">Work with Breakpoints</h2>
+
+<p>Breakpoints enable you to pause the execution of your app at a particular line of code, examine
+variables, evaluate expressions, and continue the execution line by line. Use breakpoints to
+determine the causes of run-time errors that you can't fix by looking at your code only. To debug
+your app using breakpoints:</p>
+
+<ol>
+    <li>Open the source file in which you want to set a breakpoint.</li>
+    <li>Locate the line where you want to set a breakpoint and click on it.</li>
+    <li>Click on the yellow portion of the side bar to the left of this line, as shown in figure 5.</li>
+    <li>Start your app as described in <a href="#runDebug">Run your App in Debug Mode</a>.</li>
+</ol>
+
+<p>Android Studio pauses the execution of your app when it reaches the breakpoint. You can then
+use the tools in the <em>Debug</em> tool window to identify the cause of the error.</p>
+
+<img src="{@docRoot}images/tools/as-breakpointline.png" alt="" />
+<p class="img-caption"><strong>Figure 5.</strong> A red dot appears next to the line when you set
+a breakpoint.</p>
+
+<h3 id="breakPointsView">View and configure breakpoints</h3>
+
+<p>To view all the breakpoints and configure breakpoint settings, click <strong>View
+Breakpoints</strong> <img src="{@docRoot}images/tools/as-viewbreakbutton.png" alt=""
+style="vertical-align:bottom;margin:0;height:20px"/> on the left side of the <em>Debug</em> tool
+window. The <em>Breakpoints</em> window appears, as shown in figure 6.</p>
+
+<img src="{@docRoot}images/tools/as-breakpointswindow.png" alt="" />
+<p class="img-caption"><strong>Figure 6.</strong> The Breakpoints window lists all the current
+breakpoints and includes behavior settings for each.</p>
+
+<p>The <em>Breakpoints</em> window lets you enable or disable each breakpoint from the
+list on the left. If a breakpoint is disabled, Android Studio does not pause your app when
+it hits that breakpoint. Select a breakpoint from the list to configure its settings.
+You can configure a breakpoint to be disabled at first and have the system enable it after a
+different breakpoint is hit. You can also configure whether a breakpoint should be disabled after
+it is hit. To set a breakpoint for any exception, select <strong>Exception Breakpoints</strong>
+in the list of breakpoints.</p>
+
+<h3 id="breakPointsDebug">Debug your app with breakpoints</h3>
+
+<p>After you set breakpoints in your code, click <strong>Rerun</strong>
+<img src="{@docRoot}images/tools/as-restart.png" alt=""
+style="vertical-align:bottom;margin:0;height:20px"/> to start the app again. When a breakpoint is
+hit, Android Studio pauses the app and highlights the breakpoint in the source code. The
+<em>Debug</em> tool window lets you examine variables and control the execution step by
+step:</p>
+
+<ul>
+    <li>
+        <p>To examine the object tree for a variable, expand it in the <em>Variables</em> view. If
+        the <em>Variables</em> view is not visible, click <strong>Restore Variables View</strong>
+        <img src="{@docRoot}images/tools/as-varviewbutton.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>.</p>
+    </li>
+    <li>
+        <p>To evaluate an expression at the current execution point, click <strong>Evaluate
+        Expression</strong> <img src="{@docRoot}images/tools/as-evalexpbutton.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>.</p>
+    </li>
+    <li>
+        <p>To advance to the next line in the code (without entering a method), click <strong>Step
+        Over</strong> <img src="{@docRoot}images/tools/as-stepoverbutton.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>.</p>
+    </li>
+    <li>
+        <p>To advance to the first line inside a method call, click <strong>Step
+        Into</strong> <img src="{@docRoot}images/tools/as-stepintobutton.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>.</p>
+    </li>
+    <li>
+        <p>To advance to the next line outside the current method, click <strong>Step
+        Out</strong> <img src="{@docRoot}images/tools/as-stepoutbutton.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>.</p>
+    </li>
+    <li>
+        <p>To continue running the app normally, click <strong>Resume Program</strong>
+        <img src="{@docRoot}images/tools/as-resumeprogrambutton.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/>.</p>
+    </li>
+</ul>
+
+<img src="{@docRoot}images/tools/as-variablesview.png" alt="" />
+<p class="img-caption"><strong>Figure 7.</strong> The Variables view in the Debug tool window.</p>
+
+
+<h2 id="deviceMonitor">Analyze Runtime Metrics to Optimize your App</h2>
+
+<p>Even if your application does not generate runtime errors, this does not mean it is free of
+problems. You should also consider the following issues:</p>
+
+<ul>
+    <li>Does your app use memory efficiently?</li>
+    <li>Does your app generate unnecessary network traffic?</li>
+    <li>What methods should you focus your attention on to improve the performance of your app?</li>
+    <li>Does your app behave properly when the user receives a phone call or a message?</li>
+</ul>
+
+<p>The Android Device Monitor is a stand-alone tool with a graphical user interface for serveral
+Android application debugging and analysis tools, including the Dalvik Debug Monitor Server (DDMS).
+You can use the Android Device Monitor to analyze memory usage, profile methods,
+monitor network traffic and simulate incoming calls and messages.</p>
+
+<p>To open the Android Device Monitor from Android Studio, click
+<strong>Monitor</strong> <img src="{@docRoot}images/tools/as-monitorbutton.png" alt=""
+style="vertical-align:bottom;margin:0;height:20px"/> on the toolbar. The Android Device Monitor
+opens in a new window.</p>
+
+<p>For more information about the Android Device Monitor and DDMS, see
+<a href="{@docRoot}tools/help/monitor.html">Device Monitor</a> and
+<a href="{@docRoot}tools/debugging/ddms.html">Using DDMS</a>.</p>
+
+
+<h2 id="screenCap">Capture Screenshots and Videos</h2>
+
+<p>Android Studio enables you to capture a screenshot or a short video of the device screen
+while your app is running. Screenshots and videos are useful as promotional materials for your
+app, and you can also attach them to bug reports that you send to your development team.</p>
+
+<p>To take a screenshot of your app:</p>
+
+<ol>
+    <li>Start your app as described in <a href="#runDebug">Run your App in Debug Mode</a>.</li>
+    <li>Click <strong>Android</strong> <img src="{@docRoot}images/tools/as-android.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/> to open the <em>Android DDMS</em>
+        tool window.</li>
+    <li>Click <strong>Screen Capture</strong> <img src="{@docRoot}images/tools/as-capture.png"
+        style="vertical-align:bottom;margin:0;height:22px" alt=""/> on the left side of the
+        <em>Android DDMS</em> tool window.</li>
+    <li>Optional: To add a device frame around your screenshot, enable the <em>Frame screenshot</em>
+        option.</li>
+    <li>Click <strong>Save</strong>.</li>
+</ol>
+
+<p>To take a video recording of your app:</p>
+
+<ol>
+    <li>Start your app as described in <a href="#runDebug">Run your App in Debug Mode</a>.</li>
+    <li>Click <strong>Android</strong> <img src="{@docRoot}images/tools/as-android.png" alt=""
+        style="vertical-align:bottom;margin:0;height:20px"/> to open the <em>Android DDMS</em>
+        tool window.</li>
+    <li>Click <strong>Screen Record</strong> <img src="{@docRoot}images/tools/as-record.png"
+        style="vertical-align:bottom;margin:0;height:22px" alt=""/> on the left side of the
+        <em>Android DDMS</em> tool window.</li>
+    <li>Click <strong>Start Recording</strong>.</li>
+    <li>Interact with your app.</li>
+    <li>Click <strong>Stop Recording</strong>.</li>
+    <li>Enter a file name for the recording and click <strong>OK</strong>.</li>
+</ol>
\ No newline at end of file
diff --git a/docs/html/tools/device.jd b/docs/html/tools/device.jd
index a1fb817..ccd5903 100644
--- a/docs/html/tools/device.jd
+++ b/docs/html/tools/device.jd
@@ -30,9 +30,8 @@
 you don't yet have a device, check with the service providers in your area to determine which
 Android-powered devices are available.</p>
 
-<p>If you want a SIM-unlocked phone, then you might consider a Nexus phone. To find a place
-to purchase the Nexus S and other Android-powered devices, visit <a
-href="http://www.google.com/phone/detail/nexus-s">google.com/phone</a>.</p>
+<p>If you want a SIM-unlocked phone, then you might consider a Nexus phone. To purchase a
+Nexus phone, visit the <a href="https://play.google.com/store/devices">Google Play</a> store.</p>
 
 <p class="note"><strong>Note:</strong> When developing on a device, keep in mind that you should
 still use the <a
@@ -90,11 +89,11 @@
             <p>Use this format to add each vendor to the file:<br/>
               <code>SUBSYSTEM==&quot;usb&quot;, ATTR{idVendor}==&quot;0bb4&quot;, MODE=&quot;0666&quot;, GROUP=&quot;plugdev&quot;</code>
               <br /><br />
-              
+
               In this example, the vendor ID is for HTC. The <code>MODE</code>
 assignment specifies read/write permissions, and <code>GROUP</code> defines
 which Unix group  owns the device node. </p>
-            
+
             <p class="note"><strong>Note:</strong> The rule syntax
 may vary slightly depending on your  environment. Consult the <code>udev</code>
 documentation for your system as needed. For an overview of rule syntax, see
@@ -138,7 +137,7 @@
 
 <p>This table provides a reference to the vendor IDs needed in order to add USB
 device support on Linux. The USB Vendor ID is the value given to the
-<code>ATTR{idVendor}</code> property in the rules file, as described 
+<code>ATTR{idVendor}</code> property in the rules file, as described
 above.</p>
 
 <table>
diff --git a/docs/html/tools/sdk/eclipse-adt.jd b/docs/html/tools/sdk/eclipse-adt.jd
index 7d20d5e..d106f4a 100644
--- a/docs/html/tools/sdk/eclipse-adt.jd
+++ b/docs/html/tools/sdk/eclipse-adt.jd
@@ -78,6 +78,11 @@
   <dt>General Notes:</dt>
   <dd>
     <ul>
+      <li><p>Changed the URL for the Android Developer Tools update site to require HTTPS.</p>
+          <p class="note"><strong>Note:</strong> If you are
+          <a href="{@docRoot}sdk/installing/installing-adt.html">updating ADT</a>, make sure
+          you use HTTPS in the URL for the Android Developer Tools update site.</p>
+      </li>
       <li>Fixed a problem where Eclipse was non-responsive for a few seconds after opening
           an XML file. (<a href="http://b.android.com/67084">Issue 67084</a>)</li>
       <li>Fixed a problem where the SDK Manager threw a <code>NullPointerException</code> after
@@ -88,7 +93,6 @@
           <code>drawable-large-*</code> directories.</li>
       <li>Fixed a problem with Nexus 5 Android virtual devices created from the command line
           where the SD card file system was read-only.</li>
-      <li>Changed the URL for the Android Developer Tools Update Site from HTTP to HTTPS.</li>
     </ul>
   </dd>
 </dl>
diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs
index 0e543e4..b29b87c 100644
--- a/docs/html/tools/tools_toc.cs
+++ b/docs/html/tools/tools_toc.cs
@@ -37,7 +37,9 @@
           <li><a href="<?cs var:toroot ?>sdk/installing/studio-layout.html">
               Using the Layout Editor</a></li>
           <li><a href="<?cs var:toroot ?>sdk/installing/studio-build.html">
-              Building your Project</a></li>
+              Building Your Project with Gradle</a></li>
+          <li><a href="<?cs var:toroot ?>sdk/installing/studio-debug.html">
+              Debugging with Android Studio</a></li>
           </ul>
       </li>
       <li><a href="<?cs var:toroot ?>sdk/exploring.html">
diff --git a/docs/html/training/basics/actionbar/styling.jd b/docs/html/training/basics/actionbar/styling.jd
index 1f76e03..4128a97 100644
--- a/docs/html/training/basics/actionbar/styling.jd
+++ b/docs/html/training/basics/actionbar/styling.jd
@@ -144,13 +144,13 @@
 &lt;resources>
     &lt;!-- the theme applied to the application or activity -->
     &lt;style name="CustomActionBarTheme"
-           parent="&#64;style/Theme.Holo.Light.DarkActionBar">
+           parent="&#64;android:style/Theme.Holo.Light.DarkActionBar">
         &lt;item name="android:actionBarStyle">&#64;style/MyActionBar&lt;/item>
     &lt;/style>
 
     &lt;!-- ActionBar styles -->
     &lt;style name="MyActionBar"
-           parent="&#64;style/Widget.Holo.Light.ActionBar.Solid.Inverse">
+           parent="&#64;android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
         &lt;item name="android:background">&#64;drawable/actionbar_background&lt;/item>
     &lt;/style>
 &lt;/resources>
diff --git a/docs/html/training/basics/firstapp/creating-project.jd b/docs/html/training/basics/firstapp/creating-project.jd
index 50485db..c4cb362 100644
--- a/docs/html/training/basics/firstapp/creating-project.jd
+++ b/docs/html/training/basics/firstapp/creating-project.jd
@@ -10,9 +10,9 @@
 
 
 <!-- This is the training bar -->
-<div id="tb-wrapper"> 
-<div id="tb"> 
- 
+<div id="tb-wrapper">
+<div id="tb">
+
 <h2>This lesson teaches you to</h2>
 
 <ol>
@@ -27,10 +27,10 @@
 SDK</a></li>
   <li><a href="{@docRoot}tools/projects/index.html">Managing Projects</a></li>
 </ul>
- 
- 
-</div> 
-</div> 
+
+
+</div>
+</div>
 
 <p>An Android project contains all the files that comprise the source code for your Android
 app. The Android SDK tools make it easy to start a new Android project with a set of
@@ -42,7 +42,7 @@
 
 <p class="note"><strong>Note:</strong> You should already have the Android SDK installed, and if
 you're using Eclipse, you should also have the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT
-plugin</a> installed (version 21.0.0 or higher). If you don't have these, follow the guide to <a
+plugin</a> installed (version 22.6.2 or higher). If you don't have these, follow the guide to <a
 href="{@docRoot}sdk/installing/index.html">Installing the Android SDK</a> before you start this
 lesson.</p>
 
@@ -50,7 +50,7 @@
 <h2 id="Eclipse">Create a Project with Eclipse</h2>
 
 <ol>
-  <li>Click <strong>New</strong> <img src="{@docRoot}images/tools/eclipse-new.png" 
+  <li>Click <strong>New</strong> <img src="{@docRoot}images/tools/eclipse-new.png"
   style="vertical-align:baseline;margin:0" /> in the toolbar.</li>
   <li>In the window that appears, open the <strong>Android</strong> folder,
   select <strong>Android Application Project</strong>, and click <strong>Next</strong>.</li>
@@ -116,11 +116,11 @@
   <li>Now you can select an activity template from which to begin building your app.
     <p>For this project, select <strong>BlankActivity</strong> and click <strong>Next</strong>.</p>
   </li>
-  <li>Leave all the details for the activity in their default state and click 
+  <li>Leave all the details for the activity in their default state and click
     <strong>Finish</strong>.</li>
 </ol>
 
-<p>Your Android project is now a basic "Hello World" app that contains some default files. 
+<p>Your Android project is now a basic "Hello World" app that contains some default files.
 To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
 
 
@@ -155,7 +155,7 @@
 projects.</p></li>
 </ol>
 
-<p>Your Android project is now a basic "Hello World" app that contains some default files. 
+<p>Your Android project is now a basic "Hello World" app that contains some default files.
 To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
 
 <p class="note"><strong>Tip:</strong> Add the <code>platform-tools/</code> as well as the
diff --git a/docs/html/training/basics/firstapp/index.jd b/docs/html/training/basics/firstapp/index.jd
index 4c1a0dc3..1b49096 100644
--- a/docs/html/training/basics/firstapp/index.jd
+++ b/docs/html/training/basics/firstapp/index.jd
@@ -8,21 +8,21 @@
 
 @jd:body
 
-<div id="tb-wrapper"> 
-<div id="tb"> 
- 
-<h2>Dependencies and prerequisites</h2> 
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>Dependencies and prerequisites</h2>
 
 <ul>
   <li><a href="http://developer.android.com/sdk/index.html">Android SDK</a></li>
-  <li><a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin</a> 20.0.0 or higher
+  <li><a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin</a> 22.6.2 or higher
     (if you're using Eclipse)</li>
 </ul>
- 
-</div> 
-</div> 
- 
-<p>Welcome to Android application development!</p> 
+
+</div>
+</div>
+
+<p>Welcome to Android application development!</p>
 
 <p>This class teaches you how to build your first Android app. You’ll learn how to create an Android
 project and run a debuggable version of the app. You'll also learn some fundamentals of Android app
@@ -36,6 +36,10 @@
   <li>Download the latest SDK tools and platforms using the SDK Manager.</li>
 </ol>
 
+<p class="note"><strong>Note:</strong> Make sure you install the most recent versions of the ADT
+plugin and the Android SDK before you start this class. The procedures described in this class may
+not apply to earlier versions.</p>
+
 <p>If you haven't already done these tasks, start by downloading the
   <a href="{@docRoot}sdk/index.html">Android SDK</a> and following the install steps.
   Once you've finished the setup, you're ready to begin this class.</p>
diff --git a/docs/html/training/basics/firstapp/starting-activity.jd b/docs/html/training/basics/firstapp/starting-activity.jd
index 9aa25a3..27d2c10 100644
--- a/docs/html/training/basics/firstapp/starting-activity.jd
+++ b/docs/html/training/basics/firstapp/starting-activity.jd
@@ -10,9 +10,9 @@
 
 
 <!-- This is the training bar -->
-<div id="tb-wrapper"> 
-<div id="tb"> 
- 
+<div id="tb-wrapper">
+<div id="tb">
+
 <h2>This lesson teaches you to</h2>
 
 <ol>
@@ -30,10 +30,10 @@
   <li><a href="{@docRoot}sdk/installing/index.html">Installing the
 SDK</a></li>
 </ul>
- 
- 
-</div> 
-</div> 
+
+
+</div>
+</div>
 
 
 
@@ -151,7 +151,7 @@
 </pre>
 
 <p class="note"><strong>Note:</strong>
-You now need an import statement for <code>android.widget.EditText</code>. 
+You now need an import statement for <code>android.widget.EditText</code>.
 You'll define the <code>EXTRA_MESSAGE</code> constant in a moment.</p>
 
 <p>An {@link android.content.Intent} can carry a collection of various data types as key-value
@@ -212,7 +212,7 @@
 <p>To create a new activity using Eclipse:</p>
 
 <ol>
-  <li>Click <strong>New</strong> <img src="{@docRoot}images/tools/eclipse-new.png" 
+  <li>Click <strong>New</strong> <img src="{@docRoot}images/tools/eclipse-new.png"
   style="vertical-align:baseline;margin:0" /> in the toolbar.</li>
   <li>In the window that appears, open the <strong>Android</strong> folder
   and select <strong>Android Activity</strong>. Click <strong>Next</strong>.</li>
@@ -247,15 +247,19 @@
   <li>There's also an implementation of {@link android.app.Activity#onOptionsItemSelected
   onOptionsItemSelected()} which handles the behavior for the action bar's <em>Up</em> behavior.
   Keep this one the way it is.</li>
-  <li>There's also a <code>PlaceholderFragment</code> class that extends 
+  <li>There's also a <code>PlaceholderFragment</code> class that extends
 {@link android.app.Fragment}. You will not need this class in the final version of this
 activity.</li>
 </ul>
 
-<p>Fragments decompose application functionality and UI into reusable modules. For more 
-information on fragments, see the <a href="{@docRoot}guide/components/fragments.html">Fragments 
+<p>Fragments decompose application functionality and UI into reusable modules. For more
+information on fragments, see the <a href="{@docRoot}guide/components/fragments.html">Fragments
 API Guide</a>. The final version of this activity does not use fragments.</p>
 
+<p class="note"><strong>Note:</strong> Your activity may look different if you did not use
+the latest version of the ADT plugin. Make sure you install the latest version of the
+<a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT plugin</a> to complete this tutorial.</p>
+
 <p>The {@code DisplayMessageActivity} class should now look like this:</p>
 
 <pre>
diff --git a/docs/html/training/game-controllers/controller-input.jd b/docs/html/training/game-controllers/controller-input.jd
index 2c50ae1..c9517ba 100644
--- a/docs/html/training/game-controllers/controller-input.jd
+++ b/docs/html/training/game-controllers/controller-input.jd
@@ -236,26 +236,33 @@
   </tr>
   <tr>
     <td>Start game in main menu, or pause/unpause during game</td>
-    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_START BUTTON_START}</td>
+    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_START BUTTON_START}<sup>*</sup></td>
   </tr>
   <tr>
     <td>Display menu</td>
-    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_SELECT BUTTON_SELECT} and
-{@link android.view.KeyEvent#KEYCODE_MENU}</td>
+    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_SELECT BUTTON_SELECT}<sup>*</sup>
+      and {@link android.view.KeyEvent#KEYCODE_MENU}<sup>*</sup></td>
   </tr>
   <tr>
     <td>Same as Android <em>Back</em></td>
-    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B}<sup>*</sup> and
-{@link android.view.KeyEvent#KEYCODE_BACK KEYCODE_BACK}</td>
+    <td>{@link android.view.KeyEvent#KEYCODE_BACK KEYCODE_BACK}</td>
+  </tr>
+  <tr>
+    <td>Navigate back to a previous item in a menu</td>
+    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B}<sup>**</sup></td>
   </tr>
   <tr>
     <td>Confirm selection, or perform primary game action</td>
-    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}<sup>*</sup> and
+    <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}<sup>**</sup> and
 {@link android.view.KeyEvent#KEYCODE_DPAD_CENTER DPAD_CENTER}</td>
   </tr>
 </table>
 <p>
-<em>* This could be the opposite button (A/B), depending on the locale that
+<em>* Your game should not rely on the presence of the Start, Select, or Menu
+  buttons.</em>
+</p>
+<p>
+<em>** This could be the opposite button (A/B), depending on the locale that
 you are supporting.</em>
 </p>
 
diff --git a/docs/html/training/notify-user/display-progress.jd b/docs/html/training/notify-user/display-progress.jd
index 2b2b3ae..c00576c 100644
--- a/docs/html/training/notify-user/display-progress.jd
+++ b/docs/html/training/notify-user/display-progress.jd
@@ -80,6 +80,7 @@
     setProgress(0, 0, false)}. For example:
 </p>
 <pre>
+int id = 1;
 ...
 mNotifyManager =
         (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
@@ -100,7 +101,7 @@
                     // state
                     mBuilder.setProgress(100, incr, false);
                     // Displays the progress bar for the first time.
-                    mNotifyManager.notify(0, mBuilder.build());
+                    mNotifyManager.notify(id, mBuilder.build());
                         // Sleeps the thread, simulating an operation
                         // that takes time
                         try {
@@ -114,7 +115,7 @@
             mBuilder.setContentText("Download complete")
             // Removes the progress bar
                     .setProgress(0,0,false);
-            mNotifyManager.notify(ID, mBuilder.build());
+            mNotifyManager.notify(id, mBuilder.build());
         }
     }
 // Starts the thread by calling the run() method in its Runnable
@@ -157,7 +158,7 @@
 // percentage, and "determinate" state
 mBuilder.setProgress(100, incr, false);
 // Issues the notification
-mNotifyManager.notify(0, mBuilder.build());
+mNotifyManager.notify(id, mBuilder.build());
 </pre>
 <p>
     Replace the lines you've found with the following lines. Notice that the third parameter
@@ -169,7 +170,7 @@
  // Sets an activity indicator for an operation of indeterminate length
 mBuilder.setProgress(0, 0, true);
 // Issues the notification
-mNotifyManager.notify(0, mBuilder.build());
+mNotifyManager.notify(id, mBuilder.build());
 </pre>
 <p>
     The resulting indicator is shown in figure 2:
diff --git a/docs/html/training/notify-user/navigation.jd b/docs/html/training/notify-user/navigation.jd
index ac4689a..fc950131 100644
--- a/docs/html/training/notify-user/navigation.jd
+++ b/docs/html/training/notify-user/navigation.jd
@@ -95,6 +95,7 @@
         {@link android.app.Activity}. For example:
 </p>
 <pre>
+int id = 1;
 ...
 Intent resultIntent = new Intent(this, ResultActivity.class);
 TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
diff --git a/docs/html/wear/design/index.html b/docs/html/wear/design/index.html
deleted file mode 100644
index 53ea1f3..0000000
--- a/docs/html/wear/design/index.html
+++ /dev/null
@@ -1,609 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Design Principles of Android Wear | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Design Principles of Android Wear</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <style>
-h3 {
- padding:30px 0 10px;
-}
-</style>
-<p>
-Android wearables provide just the right information at just the right time, allowing you to be connected to the virtual world and present in the real world.</p>
-
-<img src="/wear/images/05_images.png" height="200" width="169" style="float:right;clear:right;margin:0 0 60px 60px" />
-
-<p>Here you’ll find some guidelines for designing great user experiences on the Android Wear
-platform. Designing for Android Wear is substantially different than designing for phones or
-tablets, so we’ll start by describing how your content can work in tandem with the overall
-Android Wear vision. To better understand the user experience on Android Wear, also be sure
-to read the <a href="/wear/design/user-interface.html">UI Overview</a>.</p>
-
-
-<img src="/wear/images/02_notifications.png" height="200" width="169" style="float:right;clear:right;margin:0 0 20px 60px" />
-
-
-
-<p>Android Wear experiences are:</p>
-
-<ul>
-  <li><strong>Contextually aware and smart.</strong> These devices bring a new level of awareness to computing. Rather than requiring attention and input from users, Android wearables are aware of their situation and state, and helpfully display the right information at the right time. <em>Timely, relevant, specific</em>.</li>
-
-  <li><strong>Glanceable.</strong> Wearable devices are used all throughout the day, even when they sit in our peripheral vision. Effective apps provide the maximum payload of information with a minimum of fuss, optimized to provide tiny snippets of relevant information throughout the day. <em>Short, sharp, immediate.</em></li>
-
-  <li><strong>Zero/low interaction.</strong> Staying true to the strengths afforded by a smaller form factor, Android Wear focuses on simple interactions, only requiring input by the user when absolutely necessary. Most inputs are based around touch swipes or voice, and inputs requiring fine-grained motor skills are avoided. <em>Gestural, simple, fast.</em></li>
-
-  <li><strong>Helpful.</strong> Android Wear is like a great personal assistant: it knows you and your preferences, it only interrupts you when absolutely necessary, and it’s always on hand to provide a ready answer. <em>Efficient, respectful, responsive.</em></li>
-</ul>
-
-
-<p>
-By providing a smart connection to the rest of the world while respecting the user’s attention, Android Wear feels personal and global, simple and smart, unobtrusive and ever-ready. Notifications that respect these principles will feel most at home in the overall Android Wear experience.
-</p>
-
-
-
-<h2 id="Notifications" style="clear:both">Notification UI Patterns</h2>
-
-<p>Android notifications appear as cards in the main stream and form the core of the Android Wear experience. Many of the main <a href="http://developer.android.com/design/patterns/notifications.html">Android Design guidelines for notifications</a> apply in Android Wear. Be respectful of users' attention and aware of how unnecessary interruptions will reflect on your application’s reputation.</p>
-
-<p>Omit needless text from your notifications. Design for glanceability, not reading. Use words and phrases, not sentences. Show, don't tell: where possible use simple icons, glyphs, and visualizations to convey your message.</p>
-<img src="/wear/images/circle_message2.png" height="200" style="float:right;clear:right;margin:0 0 20px 60px" />
-
-<p>In some cases, particularly with messaging applications, cards will contain dynamic content which may not fit on a single screen. In these cases the content will be automatically truncated to fit on the card and the user may tap to expand, so the full message should be provided.</p>
-
-<p>Notification priority should reflect the urgency of your notification, with only time-sensitive notifications carrying a high priority. Active notifications – that is, those that cause the device to vibrate – should only be used in cases that need the user's urgent attention or action (e.g. a time-based reminder, a message from a friend). Non-urgent notifications (e.g. a transit times card, daily pedometer count, social network updates) should be silently added to the card stream.</p>
-
-
-
-
-<h3 id="NotifictionActions" style="clear:both">Actions</h3>
-
-<img src="/wear/images/circle_message2_reply.png" height="200" style="float:right;clear:right;margin:0 0 20px 40px" />
-
-<p>Actions appear to the right of your notification, allowing the user to act on your notification. Up to three actions are permitted. The most-used action should be placed first, so that it is a single swipe away from your content.</p>
-
-<p>Actions consist of an icon and a caption. Icons should be PNG files, white on transparent background, 32 × 32 dp (with 8 dp padding), as specified in the <a href="/design/style/iconography.html#action-bar">Iconography</a> design guide
-for the action bar icons. Captions should be verb-driven and short, and will be automatically truncated at one line.</p>
-
-<p>Actions are optional. Many useful notifications will not need to include actions at all.</p>
-
-<p>For developer details about action buttons, see <a href="/wear/notifications/creating.html">Creating
-Notifications for Android Wear</a>.</p>
-
-
-
-
-
-
-<h3 id="Images" style="clear:both">Images</h3>
-
-<img src="/wear/images/circle_badge_B.png" height="200" style="float:right;clear:right;margin:0 0 20px 40px" />
-
-
-<p>Images appear behind cards in the stream, providing context and additional glanceability. Your image should support the core message of the notification; for example, a card about a sports team could include the team color and logo; a message from a contact should display that person's profile photo.</p>
-
-<p>Bear in mind that the card will partially cover the lower part of the image. Images should be sized as
-appropriate for the notification appearance on handsets, which is 64 x 64 dp. Image backgrounds move when horizontally swiped, so landscape-oriented images work better on notifications that include pages or actions.</p>
-
-<p>To add large images, use <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setLargeIcon(android.graphics.Bitmap)">setLargeIcon()</a></code> with any notification, as
-shown in <a href="/wear/notifications/creating.html">Creating
-Notifications for Android Wear</a>.</p>
-
-
-
-
-
-<h3 id="AppIcons" style="clear:both">Application Icons</h3>
-
-<img src="/wear/images/07_appicons.png" height="200" style="float:right;margin:0 0 20px 60px" />
-
-<p>Your application’s launcher icon will be automatically placed on the card, identifying your notification. Do not use the notification title or background image to identify or brand your application. Instead, allow your icon to identify itself and focus on delivering a clear, succinct message in the card and image. You can choose not to display this icon using
- <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setHintHideIcon(boolean)"><code>setHintHideIcon()</code></a>.
-</p>
-
-
-
-
-
-
-
-<h3 id="NotificationPages" style="clear:both">Pages</h3>
-
-<p>Pages are additional cards that can appear to the right of your main card in the stream. If your core message is longer than a short snippet, do not sacrifice glanceability by packing a lot of information into your primary notification. Instead, use pages to provide additional content.</p>
-
-<img src="/wear/images/08_pages.png" height="200" style="float:left;margin:0 0 20px 0px" />
-<img src="/wear/images/09_pages.png" height="200" style="float:left;margin:0 0 20px 60px" />
-<img src="/wear/images/10_pages.png" height="200" style="float:left;margin:0 0 20px 60px" />
-
-<p style="clear:left">Pages appear immediately to the right of the main notification card. They are typically used to provide additional details or alternate views of the main card’s content. For example:</p>
-<ul>
-  <li>A current weather card might provide an additional page showing a three-day forecast.</li>
-  <li>A next train departure card might provide an additional page showing subsequent departures times.</li>
-  <li>A daily step count card might provide an additional page showing the same measurement in calories and distance.</li>
-</ul>
-
-<p>There is no imposed limit on the number of pages you may add. However, notifications that provide actions should show no more than three pages to ensure that the actions remain easily accessible.</p>
-
-<p>Pages are optional. Many useful notifications will not need to include pages at all.</p>
-
-<p>For developer details about pages, see
-described in <a href="/wear/notifications/pages.html">Adding
-Pages to a Notification</a>.</p>
-
-
-
-
-
-<h3 id="NotificationStacks" style="clear:both">Notification Stacks</h3>
-
-<img src="/wear/images/11_bundles_B.png" height="200" style="float:right;margin:0 0 20px 60px" />
-<img src="/wear/images/11_bundles_A.png" height="200" style="float:right;margin:0 0 20px 60px" />
-
-<p>Stacks may be used to collect multiple notifications from the same application into a single stack of cards. Whereas pages are used to provide additional detail on a single notification, stacks are used to collect multiple sibling notifications together. A stack may be expanded by the user to access each individual card contained within.</p>
-
-<p>Stacks are a way of adding multiple useful notifications without overwhelming the user’s stream. If your application may produce multiple concurrent notifications, consider combining them into a stack.</p>
-
-<p>Each notification within a stack can contain separate pages and separate actions that are relevant to that specific notification. The user can access these actions after expanding that notification's card within the stack.</p>
-
-<p>For developer details about stacks, see
-described in <a href="/wear/notifications/stacks.html">Stacking
-Notifications</a>.</p>
-
-
-
-
-
-
-<h3 id="VoiceReplies" style="clear:both">Voice Replies</h3>
-
-
-<img src="/wear/images/circle_voice_B.png" height="200" style="float:right;margin:0 0 20px 40px" />
-<img src="/wear/images/circle_voice_A.png" height="200" style="float:right;margin:0 0 20px 40px" />
-
-<p>Voice replies are primarily used by messaging applications to provide a hands-free way of dictating a short message. You can also provide a up to five suggested replies or “canned responses” that are useful in a wide range of cases. These canned responses can be tapped by the user, allowing for a fast method of sending simple replies in cases where speaking may not be desirable.</p>
-
-<p>You should attempt to cover a range of simple, neutral replies in your choices. Longer voice replies may be automatically truncated in the Voice reply UI.</p>
-
-<p>For developer details about enabling voice replies, see
-described in <a href="/wear/notifications/remote-input.html">Receiving Voice Input from
-a Notification</a>.</p>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/design/index.jd b/docs/html/wear/design/index.jd
new file mode 100644
index 0000000..247cc87
--- /dev/null
+++ b/docs/html/wear/design/index.jd
@@ -0,0 +1,173 @@
+page.title=Design Principles of Android Wear
+
+@jd:body
+
+<style>
+h3 {
+ padding:30px 0 10px;
+}
+</style>
+<p>
+Android wearables provide just the right information at just the right time, allowing you to be connected to the virtual world and present in the real world.</p>
+
+<img src="{@docRoot}wear/images/05_images.png" height="200" width="169" style="float:right;clear:right;margin:0 0 60px 60px" />
+
+<p>Here you’ll find some guidelines for designing great user experiences on the Android Wear
+platform. Designing for Android Wear is substantially different than designing for phones or
+tablets, so we’ll start by describing how your content can work in tandem with the overall
+Android Wear vision. To better understand the user experience on Android Wear, also be sure
+to read the <a href="{@docRoot}wear/design/user-interface.html">UI Overview</a>.</p>
+
+
+<img src="{@docRoot}wear/images/02_notifications.png" height="200" width="169" style="float:right;clear:right;margin:0 0 20px 60px" />
+
+
+
+<p>Android Wear experiences are:</p>
+
+<ul>
+  <li><strong>Contextually aware and smart.</strong> These devices bring a new level of awareness to computing. Rather than requiring attention and input from users, Android wearables are aware of their situation and state, and helpfully display the right information at the right time. <em>Timely, relevant, specific</em>.</li>
+
+  <li><strong>Glanceable.</strong> Wearable devices are used all throughout the day, even when they sit in our peripheral vision. Effective apps provide the maximum payload of information with a minimum of fuss, optimized to provide tiny snippets of relevant information throughout the day. <em>Short, sharp, immediate.</em></li>
+
+  <li><strong>Zero/low interaction.</strong> Staying true to the strengths afforded by a smaller form factor, Android Wear focuses on simple interactions, only requiring input by the user when absolutely necessary. Most inputs are based around touch swipes or voice, and inputs requiring fine-grained motor skills are avoided. <em>Gestural, simple, fast.</em></li>
+
+  <li><strong>Helpful.</strong> Android Wear is like a great personal assistant: it knows you and your preferences, it only interrupts you when absolutely necessary, and it’s always on hand to provide a ready answer. <em>Efficient, respectful, responsive.</em></li>
+</ul>
+
+
+<p>
+By providing a smart connection to the rest of the world while respecting the user’s attention, Android Wear feels personal and global, simple and smart, unobtrusive and ever-ready. Notifications that respect these principles will feel most at home in the overall Android Wear experience.
+</p>
+
+
+
+<h2 id="Notifications" style="clear:both">Notification UI Patterns</h2>
+
+<p>Android notifications appear as cards in the main stream and form the core of the Android Wear experience. Many of the main <a href="http://developer.android.com/design/patterns/notifications.html">Android Design guidelines for notifications</a> apply in Android Wear. Be respectful of users' attention and aware of how unnecessary interruptions will reflect on your application’s reputation.</p>
+
+<p>Omit needless text from your notifications. Design for glanceability, not reading. Use words and phrases, not sentences. Show, don't tell: where possible use simple icons, glyphs, and visualizations to convey your message.</p>
+<img src="{@docRoot}wear/images/circle_message2.png" height="200" style="float:right;clear:right;margin:0 0 20px 60px" />
+
+<p>In some cases, particularly with messaging applications, cards will contain dynamic content which may not fit on a single screen. In these cases the content will be automatically truncated to fit on the card and the user may tap to expand, so the full message should be provided.</p>
+
+<p>Notification priority should reflect the urgency of your notification, with only time-sensitive notifications carrying a high priority. Active notifications – that is, those that cause the device to vibrate – should only be used in cases that need the user's urgent attention or action (e.g. a time-based reminder, a message from a friend). Non-urgent notifications (e.g. a transit times card, daily pedometer count, social network updates) should be silently added to the card stream.</p>
+
+
+
+
+<h3 id="NotifictionActions" style="clear:both">Actions</h3>
+
+<img src="{@docRoot}wear/images/circle_message2_reply.png" height="200" style="float:right;clear:right;margin:0 0 20px 40px" />
+
+<p>Actions appear to the right of your notification, allowing the user to act on your notification. Up to three actions are permitted. The most-used action should be placed first, so that it is a single swipe away from your content.</p>
+
+<p>Actions consist of an icon and a caption. Icons should be PNG files, white on transparent
+background, 32 × 32 dp (with 8 dp padding), as specified in the <a
+href="/design/style/iconography.html#action-bar">Iconography</a> design guide for action bar
+icons. Captions should be verb-driven and short, and will be automatically truncated at one line.
+</p>
+
+<p>Actions are optional. Many useful notifications will not need to include actions at all.</p>
+
+<p>For developer details about action buttons, see <a href="{@docRoot}wear/notifications/creating.html">Creating
+Notifications for Android Wear</a>.</p>
+
+
+
+
+
+
+<h3 id="Images" style="clear:both">Images</h3>
+
+<img src="{@docRoot}wear/images/circle_badge_B.png" height="200" style="float:right;clear:right;margin:0 0 20px 40px" />
+
+
+<p>Images appear behind cards in the stream, providing context and additional glanceability. Your image should support the core message of the notification; for example, a card about a sports team could include the team color and logo; a message from a contact should display that person's profile photo.</p>
+
+<p>Bear in mind that the card will partially cover the lower part of the image. Images should
+be sized as appropriate for the notification appearance on handsets, which is 64 x 64 dp. Image backgrounds move when horizontally swiped, so landscape-oriented images work better on notifications that include pages or actions.</p>
+
+<p>To add large images, use {@link android.support.v4.app.NotificationCompat.Builder#setLargeIcon
+setLargeIcon()} with any notification, as
+shown in <a href="{@docRoot}wear/notifications/creating.html">Creating
+Notifications for Android Wear</a>.</p>
+
+
+
+
+
+<h3 id="AppIcons" style="clear:both">Application Icons</h3>
+
+<img src="{@docRoot}wear/images/07_appicons.png" height="200" style="float:right;margin:0 0 20px 60px" />
+
+<p>Your application’s launcher icon will be automatically placed on the card, identifying your notification. Do not use the notification title or background image to identify or brand your application. Instead, allow your icon to identify itself and focus on delivering a clear, succinct message in the card and image. You can choose not to display this icon using
+ <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setHintHideIcon(boolean)"><code>setHintHideIcon()</code></a>.
+</p>
+
+
+
+
+
+
+
+<h3 id="NotificationPages" style="clear:both">Pages</h3>
+
+<p>Pages are additional cards that can appear to the right of your main card in the stream. If your core message is longer than a short snippet, do not sacrifice glanceability by packing a lot of information into your primary notification. Instead, use pages to provide additional content.</p>
+
+<img src="{@docRoot}wear/images/08_pages.png" height="200" style="float:left;margin:0 0 20px 0px" />
+<img src="{@docRoot}wear/images/09_pages.png" height="200" style="float:left;margin:0 0 20px 60px" />
+<img src="{@docRoot}wear/images/10_pages.png" height="200" style="float:left;margin:0 0 20px 60px" />
+
+<p style="clear:left">Pages appear immediately to the right of the main notification card. They are typically used to provide additional details or alternate views of the main card’s content. For example:</p>
+<ul>
+  <li>A current weather card might provide an additional page showing a three-day forecast.</li>
+  <li>A next train departure card might provide an additional page showing subsequent departures times.</li>
+  <li>A daily step count card might provide an additional page showing the same measurement in calories and distance.</li>
+</ul>
+
+<p>There is no imposed limit on the number of pages you may add. However, notifications that provide actions should show no more than three pages to ensure that the actions remain easily accessible.</p>
+
+<p>Pages are optional. Many useful notifications will not need to include pages at all.</p>
+
+<p>For developer details about pages, see
+described in <a href="{@docRoot}wear/notifications/pages.html">Adding
+Pages to a Notification</a>.</p>
+
+
+
+
+
+<h3 id="NotificationStacks" style="clear:both">Notification Stacks</h3>
+
+<img src="{@docRoot}wear/images/11_bundles_B.png" height="200" style="float:right;margin:0 0 20px 60px" />
+<img src="{@docRoot}wear/images/11_bundles_A.png" height="200" style="float:right;margin:0 0 20px 60px" />
+
+<p>Stacks may be used to collect multiple notifications from the same application into a single stack of cards. Whereas pages are used to provide additional detail on a single notification, stacks are used to collect multiple sibling notifications together. A stack may be expanded by the user to access each individual card contained within.</p>
+
+<p>Stacks are a way of adding multiple useful notifications without overwhelming the user’s stream. If your application may produce multiple concurrent notifications, consider combining them into a stack.</p>
+
+<p>Each notification within a stack can contain separate pages and separate actions that are relevant to that specific notification. The user can access these actions after expanding that notification's card within the stack.</p>
+
+<p>For developer details about stacks, see
+described in <a href="{@docRoot}wear/notifications/stacks.html">Stacking
+Notifications</a>.</p>
+
+
+
+
+
+
+<h3 id="VoiceReplies" style="clear:both">Voice Replies</h3>
+
+
+<img src="{@docRoot}wear/images/circle_voice_B.png" height="200" style="float:right;margin:0 0 20px 40px" />
+<img src="{@docRoot}wear/images/circle_voice_A.png" height="200" style="float:right;margin:0 0 20px 40px" />
+
+<p>Voice replies are primarily used by messaging applications to provide a hands-free way of dictating a short message. You can also provide a up to five suggested replies or “canned responses” that are useful in a wide range of cases. These canned responses can be tapped by the user, allowing for a fast method of sending simple replies in cases where speaking may not be desirable.</p>
+
+<p>You should attempt to cover a range of simple, neutral replies in your choices. Longer voice replies may be automatically truncated in the Voice reply UI.</p>
+
+<p>For developer details about enabling voice replies, see
+described in <a href="{@docRoot}wear/notifications/remote-input.html">Receiving Voice Input from
+a Notification</a>.</p>
diff --git a/docs/html/wear/design/user-interface.html b/docs/html/wear/design/user-interface.html
deleted file mode 100644
index c23d79c..0000000
--- a/docs/html/wear/design/user-interface.html
+++ /dev/null
@@ -1,498 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>UI Overview | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<link rel="stylesheet" type="text/css" href="/wear/css/wear.css">
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >UI Overview</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <style>
-h3 {
- padding:30px 0 10px;
-}
-</style>
-
-<p>A new form factor deserves a new UI model. At a high level, the Android Wear UI consists of two
-main spaces centered around the core functions of <strong>Suggest</strong> and
-<strong>Demand</strong>. Your application will have an important role to play in both of these
-spaces.</p>
-
-
-
-<h3 id="Stream">Suggest: The Context Stream</h3>
-
-<div class="wear-inset-video-container" style="float:right;margin:0 -22px 60px 40px">
-  <img class="wear-bezel-only" src="/wear/images/screens/bezel.png" alt="">
-  <img class="gif" src="/wear/images/screens/stream.gif">
-</div>
-
-<p>The context stream is a vertical list of cards, each showing a useful or timely piece of
-information. Much like Google Now on Android phones and tablets, users swipe vertically to navigate
-from card to card for a brief and comprehensive update about what's important to them. Only one card
-is displayed on screen at a time, and background images are used to provide additional visual
-information. Your application can create cards and inject them into the stream when they are most
-likely to be useful.</p>
-
-<p>Cards in the stream are more than simple notifications. They can be swiped horizontally to
-reveal additional pages. Further horizontal swiping may reveal tappable buttons, allowing the user
-to take action on the notification. Cards can also be dismissed by swiping left to right, removing
-them from the stream until the next time they have useful information to display.
-In the emulator, hovering the mouse over the top of the screen illuminates a blue bar at
-the top of the device that takes you home when clicked.</p>
-
-
-
-<h3 id="CueCard">Demand: The Cue Card</h3>
-
-<div class="wear-inset-video-container" style="float:right;margin:0 -22px 60px 40px">
-  <img class="wear-bezel-only" src="/wear/images/screens/bezel.png" alt="">
-  <img class="gif" src="/wear/images/screens/cuecard.gif">
-</div>
-
-<p>For cases where the context stream can't anticipate what the user would like to do, the cue card
-allows users to speak to their device. The cue card is opened by saying, "Ok Google" or by tapping
-on the "g" icon on the home screen. Swiping up on the cue card shows a list of actions, which can
-also be tapped.</p>
-
-<p>The list of actions includes Android intents for voice actions. The upcoming Android Wear SDK
-will enable developers to match their applications to these intents so users can perform actions
-using these voice commands. Multiple applications may register for a single voice intent, and users
-will have the opportunity to choose which application they prefer to use.</p>
-
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/design/user-interface.jd b/docs/html/wear/design/user-interface.jd
new file mode 100644
index 0000000..2a3e9ef
--- /dev/null
+++ b/docs/html/wear/design/user-interface.jd
@@ -0,0 +1,58 @@
+page.title=UI Overview
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="/wear/css/wear.css">
+
+@jd:body
+
+<style>
+h3 {
+ padding:30px 0 10px;
+}
+</style>
+
+<p>A new form factor deserves a new UI model. At a high level, the Android Wear UI consists of two
+main spaces centered around the core functions of <strong>Suggest</strong> and
+<strong>Demand</strong>. Your application will have an important role to play in both of these
+spaces.</p>
+
+
+
+<h3 id="Stream">Suggest: The Context Stream</h3>
+
+<div class="wear-inset-video-container" style="float:right;margin:0 -22px 60px 40px">
+  <img class="wear-bezel-only" src="{@docRoot}wear/images/screens/bezel.png" alt="">
+  <img class="gif" src="{@docRoot}wear/images/screens/stream.gif">
+</div>
+
+<p>The context stream is a vertical list of cards, each showing a useful or timely piece of
+information. Much like Google Now on Android phones and tablets, users swipe vertically to navigate
+from card to card for a brief and comprehensive update about what's important to them. Only one card
+is displayed on screen at a time, and background images are used to provide additional visual
+information. Your application can create cards and inject them into the stream when they are most
+likely to be useful.</p>
+
+<p>Cards in the stream are more than simple notifications. They can be swiped horizontally to
+reveal additional pages. Further horizontal swiping may reveal tappable buttons, allowing the user
+to take action on the notification. Cards can also be dismissed by swiping left to right, removing
+them from the stream until the next time they have useful information to display.
+In the emulator, hovering the mouse over the top of the screen illuminates a blue bar at
+the top of the device that takes you home when clicked.</p>
+
+
+
+<h3 id="CueCard">Demand: The Cue Card</h3>
+
+<div class="wear-inset-video-container" style="float:right;margin:0 -22px 60px 40px">
+  <img class="wear-bezel-only" src="{@docRoot}wear/images/screens/bezel.png" alt="">
+  <img class="gif" src="{@docRoot}wear/images/screens/cuecard.gif">
+</div>
+
+<p>For cases where the context stream can't anticipate what the user would like to do, the cue card
+allows users to speak to their device. The cue card is opened by saying, "Ok Google" or by tapping
+on the "g" icon on the home screen. Swiping up on the cue card shows a list of actions, which can
+also be tapped.</p>
+
+<p>The list of actions includes Android intents for voice actions. The upcoming Android Wear SDK
+will enable developers to match their applications to these intents so users can perform actions
+using these voice commands. Multiple applications may register for a single voice intent, and users
+will have the opportunity to choose which application they prefer to use.</p>
+
diff --git a/docs/html/wear/images/laptop-bridge.png b/docs/html/wear/images/laptop-bridge.png
index b481224..083b82b 100644
--- a/docs/html/wear/images/laptop-bridge.png
+++ b/docs/html/wear/images/laptop-bridge.png
Binary files differ
diff --git a/docs/html/wear/index.html b/docs/html/wear/index.html
deleted file mode 100644
index 9660463..0000000
--- a/docs/html/wear/index.html
+++ /dev/null
@@ -1,739 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=970" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Android Wear | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<link rel="stylesheet" type="text/css" href="/wear/css/wear.css">
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div id="body-content">
-
-
-
-
-<div class="fullpage" >
-
-
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <style>
-.fullpage>#footer,
-#jd-content>.content-footer.wrap {
-  display:none;
-}
-</style>
-
-
-
-
-<div id="video-container">
-  <div id="video-frame">
-    <div class="video-close">
-      <span id="icon-video-close">&nbsp;</span>
-    </div>
-    <script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
-    <div id="ytapiplayer">
-      <a href="http://www.youtube.com/watch?v=0xQ3y902DEQ"><img width=940
-      src="https://i1.ytimg.com/vi/0xQ3y902DEQ/maxresdefault.jpg"></a><!--You need Flash player 8+ and JavaScript enabled to view this video. -->
-    </div>
-  </div>
-</div>
-
-
-
-<div class="wear-body-content">
-  <div class="wear-hero-container">
-    <div class="wear-section wear-hero">
-      <div class="wear-hero-scrim"></div>
-      <div class="wear-hero-wrap">
-        <div class="vertical-center-outer">
-          <div class="vertical-center-inner">
-
-            <div class="col-10">
-              <div class="wear-section-header">
-                <div class="wear-h1 hero">Android Wear</div>
-                <div class="wear-subhead hero">Information that moves with you</div>
-              </div>
-              <div class="wear-hero-description">
-                <p>Small, powerful devices, worn on the body.
-                Useful information when you need it most.
-                Intelligent answers to spoken questions.
-                Tools to help reach fitness goals.
-                Your key to a multiscreen world.</p>
-              </div>
-
-              <div class="wear-body">
-                <a href="/wear/preview/start.html" class="wear-button wear-primary" style="margin-top: 40px;">
-                  Get the Developer Preview
-                </a>
-                <a id="watchVideo" href="https://youtube.googleapis.com/v/0xQ3y902DEQ">
-                  <div class="wear-video-link">Watch the video</div>
-                </a>
-<script>
-$("#watchVideo").on("click", function(e) {
-  $("#video-container").fadeIn(400, function(){$("#video-frame").show()});
-
-  var params = { allowScriptAccess: "always"};
-  var atts = { id: "ytapiplayer" };
-  swfobject.embedSWF("//www.youtube.com/v/0xQ3y902DEQ?enablejsapi=1&playerapiid=ytplayer&version=3&HD=1;rel=0;showinfo=0;modestbranding;origin=developer.android.com;autohide=1;autoplay=1",
-    "ytapiplayer", "940", "526.4", "8", null, null, params, atts);
-
-  e.preventDefault();
-});
-$("#icon-video-close").on("click", function() {
-  ytplayer = document.getElementById("ytapiplayer");
-  try {
-    ytplayer.stopVideo();
-    $(ytplayer).hide();
-    $("#video-container").fadeOut(400);
-  } catch(e) {
-    console.log('Video not available');
-    $("#video-container").fadeOut(400);
-  }
-});
-</script>
-              </div>
-            </div>
-
-          </div>
-        </div>
-      </div> <!-- end .wrap -->
-      <div class="wear-scroll-down-affordance">
-        <a class="wear-down-arrow" href="#extending-android-to-wearables">
-          <img src="/wear/images/carrot.png" alt="Scroll down to read more">
-        </a>
-      </div>
-    </div> <!-- end .wear-section .wear-hero -->
-  </div> <!-- end .wear-hero-container -->
-
-    <div class="wear-rest-of-page">
-      <div class="wear-section" id="extending-android-to-wearables">
-        <div class="wrap">
-          <div class="wear-section-header">
-            <div class="wear-h1">Extending Android to Wearables</div>
-            <div class="wear-subhead">
-              Android Wear extends the Android platform to a new generation of wearable devices. <br>
-              The user experience is designed specifically for wearables.
-            </div>
-          </div>
-
-          <div class="wear-body">
-            <div class="wear-breakout cols">
-              <div class="col-3-wide">
-
-                <div class="wear-inset-video-container">
-                  <img class="wear-bezel-only" src="/wear/images/screens/bezel.png" alt="">
-                  <img class="gif" src="/wear/images/screens/reservation_animated.gif">
-                </div>
-
-                <p class="wear-small">
-                  Say “Ok Google” to ask questions and get stuff done.
-                </p>
-              </div>
-              <div class="col-3-wide">
-                <img src="/wear/images/screens/circle_message2.png" alt="Image of a Hangouts message">
-                <p class="wear-small">
-                  Get glanceable, actionable information at just the right time throughout the day.
-                </p>
-              </div>
-              <div class="col-3-wide">
-                <img src="/wear/images/screens/fitness-24.png" alt="Image showing ">
-                <p class="wear-small">
-                  A wide range of sensors is available to your applications, from accelerometers to heart rate monitors.
-                </p>
-              </div>
-            </div>
-
-            <p>
-              The Android Wear Developer Preview lets you create wearable experiences for your existing Android apps and see how they will appear on square and round Android wearables.
-            </p>
-
-            <p>
-              Later this year, we’ll be launching the Android Wear SDK, enabling even more customized experiences.
-            </p>
-          </div>
-        </div>  <!-- end .wrap -->
-      </div>  <!-- end .wear-section -->
-
-      <div class="wear-section wear-gray-background">
-        <div class="wrap">
-          <div class="wear-section-header">
-            <div class="wear-h1">Developer Preview</div>
-            <div class="wear-subhead">
-              Your app’s notifications will already appear on Android wearables. <br>
-              With the new Android Wear APIs you can customize and extend those notifications.
-            </div>
-          </div>
-
-
-          <div class="wear-body">
-            <div class="wear-breakout cols">
-              <div class="col-3-wide">
-                <img src="images/screens/14_circle_voicereply.png" alt="">
-                <p>Receive Voice Replies</p>
-                <p class="wear-small">
-                  Add actions to your notifications to allow users to reply by voice or touch. The system delivers the text to your app on the phone.
-                </p>
-                <p class="wear-small">
-                  <a href="/wear/notifications/remote-input.html">Learn about input actions</a>
-                </p>
-              </div>
-              <div class="col-3-wide">
-
-
-                <div class="wear-inset-video-container">
-                  <img class="wear-bezel-only" src="/wear/images/screens/bezel.png" alt="">
-                  <img class="gif" src="/wear/images/screens/pages_animated.gif">
-                </div>
-
-                <p>Add Notification Pages</p>
-                <p class="wear-small">
-                  Add additional pages to your notification that are visible on the wearable device to provide detailed information on the wrist.
-                </p>
-                <p class="wear-small">
-                  <a href="/wear/notifications/pages.html">Learn about pages</a>
-                </p>
-              </div>
-              <div class="col-3-wide">
-                <img src="images/screens/11_stack_B.png" alt="">
-                <p>Stack Multiple Notifications</p>
-                <p class="wear-small">
-                  Your app should consolidate similar notifications. On a wearable, you can stack them together so the details for each are immediately available.
-                </p>
-                <p class="wear-small">
-                  <a href="/wear/notifications/stacks.html">Learn about stacks</a>
-                </p>
-              </div>
-            </div>
-
-            <p>
-              You can also trigger your notifications contextually using existing Android APIs.  For example, use <a href="/training/location/geofencing.html">geofences</a> to provide glanceable information to your users when they are at home, or use the <a href="/training/location/activity-recognition.html">activity detection APIs</a> to send messages to your users’ wrists while they are bicycling.
-            </p>
-
-            <p>See the <a href="/wear/design/index.html">Android Wear Developer Preview Design Principles</a> for more suggestions on creating great wearable experiences.</p>
-
-          </div>
-        </div>  <!-- end .wrap -->
-      </div>  <!-- end .wear-section -->
-
-      <div class="wear-section" style="background-color:#f5f5f5">
-        <div class="wrap">
-          <div class="wear-section-header">
-            <div class="wear-pre-h1">Coming soon</div>
-            <div class="wear-h1">The Android Wear SDK</div>
-            <div class="wear-subhead">
-              The Developer Preview is just the beginning for Android Wear.
-            </div>
-          </div>
-
-          <div class="wear-body">
-            <p>
-              In the coming months we’ll be launching new APIs and features for Android wearables to create even more unique experiences for the wrist:
-            </p>
-
-            <div class="wear-breakout cols">
-              <div class="col-4">
-                <img src="/wear/images/features/ts1.png" alt="">
-                <p>Build Custom UI</p>
-                <p class="wear-small">
-                  Create custom card layouts and run activities directly on  wearables.
-                </p>
-              </div>
-              <div class="col-4">
-                <img src="/wear/images/features/ts2.png" alt="">
-                <p>Send Data</p>
-                <p class="wear-small">
-                  Send data and actions between a phone and a wearable with data replication APIs and RPCs.
-                </p>
-              </div>
-              <div class="col-4">
-                <img src="/wear/images/features/ts3.png" alt="">
-                <p>Control Sensors</p>
-                <p class="wear-small">
-                  Gather sensor data and display it in real-time on Android wearables.
-                </p>
-              </div>
-              <div class="col-4">
-                <img src="/wear/images/features/ts4.png" alt="">
-                <p>Voice Actions</p>
-                <p class="wear-small">
-                  Register your app to handle voice actions, like "Ok Google, take a note."
-                </p>
-              </div>
-            </div>
-
-          </div>
-        </div> <!-- end .wrap -->
-      </div> <!-- end .wear-section -->
-
-      <div class="wear-section wear-white-background">
-        <div class="wrap">
-          <div class="wear-section-header">
-            <div class="wear-h2">Building an Ecosystem</div>
-            <div class="wear-body wear-align-center">
-              <p class="wear-small">
-                We’re working with several partners to bring you watches powered by Android Wear later this year!
-              </p>
-            </div>
-          </div>
-
-          <div class="wear-partners cols">
-            <div class="col-4">
-              <img src="/wear/images/partners/asus.png" alt="Asus">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/broadcom.png" alt="Broadcom">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/fossil.png" alt="Fossil">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/htc.png" alt="HTC">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/intel.png" alt="Intel">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/lg.png" alt="LG">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/mediatek.png" alt="Mediatek">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/mips.png" alt="MIPS">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/motorola.png" alt="Motorola">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/qualcomm.png" alt="Qualcomm">
-            </div>
-            <div class="col-4">
-              <img src="/wear/images/partners/samsung.png" alt="Samsung">
-            </div>
-          </div>
-        </div> <!-- end .wrap -->
-      </div> <!-- end .wear-section -->
-
-      <div class="wear-section wear-red-background">
-        <div class="wrap">
-          <div class="wear-section-header">
-            <div class="wear-h1 wear-align-left">Start working with Android Wear</div>
-            <div class="wear-subhead wear-subhead-red">
-              <p>
-                Your app’s notifications will already appear on Android wearables. <br>
-                With the new Android Wear APIs, you can customize and extend those notifications.
-              </p>
-              <p>
-                We’re excited about wearables and the experiences developers can create with them. <br>
-                We can’t wait to see what you do next.</p>
-            </div>
-          </div>
-          <div class="wear-body">
-            <a href="/wear/preview/start.html" class="wear-button wear-secondary" style="margin-top: 20px;">
-              Get the Developer Preview
-            </a>
-          </div>
-        </div>
-      </div>
-
-      <div class="wear-section">
-        <div class="wrap">
-          <div class="cols">
-            <div class="wear-body">
-              <div class="col-3-wide">
-                  <a target="_blank" href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef">
-                    <img class="wear-social-image" src="//www.google.com/images/icons/product/youtube-128.png" alt="">
-                  </a>
-                <div class="wear-social-copy">
-                  <p>DevBytes</p>
-                  <p class="wear-small">
-                    Learn how to optimize your app notifications for wearable devices in this <a target="_blank" href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef">DevBytes video</a> using the Android Wear Developer Preview.
-                  </p>
-                </div>
-              </div>
-              <div class="col-3-wide">
-                <a target="_blank" href="http://android-developers.blogspot.com/2014/03/android-wear-developer-preview.html">
-                  <img class="wear-social-image" src="/wear/images/blogger.png" alt="">
-                </a>
-                <div class="wear-social-copy">
-                  <p>Blog Post</p>
-                  <p class="wear-small">
-                    Read more about the Android Wear Developer Preview announcement
-                    at the <a target="_blank" href="http://android-developers.blogspot.com/2014/03/android-wear-developer-preview.html">Android Developers Blog</a>.
-                  </p>
-                </div>
-              </div>
-              <div class="col-3-wide">
-                <a target="_blank" href="http://g.co/androidweardev">
-                  <img class="wear-social-image" src="//www.google.com/images/icons/product/gplus-128.png" alt="+Android Wear Developers">
-                </a>
-                <div class="wear-social-copy">
-                  <p>G+ Community</p>
-                  <p class="wear-small">
-                    Follow us on Google+ to stay up-to-date on Android Wear development and join the discussion!
-                  </p>
-                  <p class="wear-small">
-                    <a target="_blank" href="http://g.co/androidweardev">+Android Wear Developers</a>
-                  </p>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div> <!-- end .wrap -->
-      </div> <!-- end .wear-section -->
-    </div> <!-- end .wear-rest-of-page -->
-
-
-    <div class="content-footer wrap" itemscope="" itemtype="http://schema.org/SiteNavigationElement">
-      <div class="layout-content-col col-16" style="padding-top:4px">
-        <style>#___plusone_0 {float:right !important;}</style>
-        <div class="g-plusone" data-size="medium"></div>
-      </div>
-    </div>
-    <div id="footer" class="wrap" style="width:940px;position:relative;top:-35px;z-index:-1">
-      <div id="copyright">
-        Except as noted, this content is
-        licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-        Creative Commons Attribution 2.5</a>. For details and
-        restrictions, see the <a href="/license.html">Content
-        License</a>.
-      </div>
-    </div>
-
-
-  </div> <!-- end wear-body-content -->
-
-  <script>
-  $("a.wear-down-arrow").on("click", function(e) {
-    $("body").animate({
-      scrollTop: $(".wear-hero").height() + 76
-    }, 1000, "easeOutQuint");
-    e.preventDefault();
-  });
-  </script>
-
-
-    </div>
-
-      <div class="content-footer wrap"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-16" style="padding-top:4px">
-          <style>#___plusone_0 {float:right !important;}</style>
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" style="width:940px">
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/index.jd b/docs/html/wear/index.jd
new file mode 100644
index 0000000..a6a6460
--- /dev/null
+++ b/docs/html/wear/index.jd
@@ -0,0 +1,405 @@
+page.title=Android Wear
+page.viewport_width=970
+fullpage=true
+no_footer_links=true
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="/wear/css/wear.css">
+
+@jd:body
+
+<style>
+.fullpage>#footer,
+#jd-content>.content-footer.wrap {
+  display:none;
+}
+</style>
+
+
+
+
+<div id="video-container">
+  <div id="video-frame">
+    <div class="video-close">
+      <span id="icon-video-close">&nbsp;</span>
+    </div>
+    <script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
+    <div id="ytapiplayer">
+      <a href="http://www.youtube.com/watch?v=0xQ3y902DEQ"><img width=940
+      src="https://i1.ytimg.com/vi/0xQ3y902DEQ/maxresdefault.jpg"></a><!--You need Flash player 8+ and JavaScript enabled to view this video. -->
+    </div>
+  </div>
+</div>
+
+
+
+<div class="wear-body-content">
+  <div class="wear-hero-container">
+    <div class="wear-section wear-hero">
+      <div class="wear-hero-scrim"></div>
+      <div class="wear-hero-wrap">
+        <div class="vertical-center-outer">
+          <div class="vertical-center-inner">
+
+            <div class="col-10">
+              <div class="wear-section-header">
+                <div class="wear-h1 hero">Android Wear</div>
+                <div class="wear-subhead hero">Information that moves with you</div>
+              </div>
+              <div class="wear-hero-description">
+                <p>Small, powerful devices, worn on the body.
+                Useful information when you need it most.
+                Intelligent answers to spoken questions.
+                Tools to help reach fitness goals.
+                Your key to a multiscreen world.</p>
+              </div>
+
+              <div class="wear-body">
+                <a href="/wear/preview/start.html" class="wear-button wear-primary" style="margin-top: 40px;">
+                  Get the Developer Preview
+                </a>
+                <a id="watchVideo" href="https://youtube.googleapis.com/v/0xQ3y902DEQ">
+                  <div class="wear-video-link">Watch the video</div>
+                </a>
+<script>
+$("#watchVideo").on("click", function(e) {
+  $("#video-container").fadeIn(400, function(){$("#video-frame").show()});
+
+  var params = { allowScriptAccess: "always"};
+  var atts = { id: "ytapiplayer" };
+  swfobject.embedSWF("//www.youtube.com/v/0xQ3y902DEQ?enablejsapi=1&playerapiid=ytplayer&version=3&HD=1;rel=0;showinfo=0;modestbranding;origin=developer.android.com;autohide=1;autoplay=1",
+    "ytapiplayer", "940", "526.4", "8", null, null, params, atts);
+
+  e.preventDefault();
+});
+$("#icon-video-close").on("click", function() {
+  ytplayer = document.getElementById("ytapiplayer");
+  try {
+    ytplayer.stopVideo();
+    $(ytplayer).hide();
+    $("#video-container").fadeOut(400);
+  } catch(e) {
+    console.log('Video not available');
+    $("#video-container").fadeOut(400);
+  }
+});
+</script>
+              </div>
+            </div>
+
+          </div>
+        </div>
+      </div> <!-- end .wrap -->
+      <div class="wear-scroll-down-affordance">
+        <a class="wear-down-arrow" href="#extending-android-to-wearables">
+          <img src="/wear/images/carrot.png" alt="Scroll down to read more">
+        </a>
+      </div>
+    </div> <!-- end .wear-section .wear-hero -->
+  </div> <!-- end .wear-hero-container -->
+
+    <div class="wear-rest-of-page">
+      <div class="wear-section" id="extending-android-to-wearables">
+        <div class="wrap">
+          <div class="wear-section-header">
+            <div class="wear-h1">Extending Android to Wearables</div>
+            <div class="wear-subhead">
+              Android Wear extends the Android platform to a new generation of wearable devices. <br>
+              The user experience is designed specifically for wearables.
+            </div>
+          </div>
+
+          <div class="wear-body">
+            <div class="wear-breakout cols">
+              <div class="col-3-wide">
+
+                <div class="wear-inset-video-container">
+                  <img class="wear-bezel-only" src="/wear/images/screens/bezel.png" alt="">
+                  <img class="gif" src="/wear/images/screens/reservation_animated.gif">
+                </div>
+
+                <p class="wear-small">
+                  Say “Ok Google” to ask questions and get stuff done.
+                </p>
+              </div>
+              <div class="col-3-wide">
+                <img src="/wear/images/screens/circle_message2.png" alt="Image of a Hangouts message">
+                <p class="wear-small">
+                  Get glanceable, actionable information at just the right time throughout the day.
+                </p>
+              </div>
+              <div class="col-3-wide">
+                <img src="/wear/images/screens/fitness-24.png" alt="Image showing ">
+                <p class="wear-small">
+                  A wide range of sensors is available to your applications, from accelerometers to heart rate monitors.
+                </p>
+              </div>
+            </div>
+
+            <p>
+              The Android Wear Developer Preview lets you create wearable experiences for your existing Android apps and see how they will appear on square and round Android wearables.
+            </p>
+
+            <p>
+              Later this year, we’ll be launching the Android Wear SDK, enabling even more customized experiences.
+            </p>
+          </div>
+        </div>  <!-- end .wrap -->
+      </div>  <!-- end .wear-section -->
+
+      <div class="wear-section wear-gray-background">
+        <div class="wrap">
+          <div class="wear-section-header">
+            <div class="wear-h1">Developer Preview</div>
+            <div class="wear-subhead">
+              Your app’s notifications will already appear on Android wearables. <br>
+              With the new Android Wear APIs you can customize and extend those notifications.
+            </div>
+          </div>
+
+
+          <div class="wear-body">
+            <div class="wear-breakout cols">
+              <div class="col-3-wide">
+                <img src="images/screens/14_circle_voicereply.png" alt="">
+                <p>Receive Voice Replies</p>
+                <p class="wear-small">
+                  Add actions to your notifications to allow users to reply by voice or touch. The system delivers the text to your app on the phone.
+                </p>
+                <p class="wear-small">
+                  <a href="/wear/notifications/remote-input.html">Learn about input actions</a>
+                </p>
+              </div>
+              <div class="col-3-wide">
+
+
+                <div class="wear-inset-video-container">
+                  <img class="wear-bezel-only" src="/wear/images/screens/bezel.png" alt="">
+                  <img class="gif" src="/wear/images/screens/pages_animated.gif">
+                </div>
+
+                <p>Add Notification Pages</p>
+                <p class="wear-small">
+                  Add additional pages to your notification that are visible on the wearable device to provide detailed information on the wrist.
+                </p>
+                <p class="wear-small">
+                  <a href="/wear/notifications/pages.html">Learn about pages</a>
+                </p>
+              </div>
+              <div class="col-3-wide">
+                <img src="images/screens/11_stack_B.png" alt="">
+                <p>Stack Multiple Notifications</p>
+                <p class="wear-small">
+                  Your app should consolidate similar notifications. On a wearable, you can stack them together so the details for each are immediately available.
+                </p>
+                <p class="wear-small">
+                  <a href="/wear/notifications/stacks.html">Learn about stacks</a>
+                </p>
+              </div>
+            </div>
+
+            <p>
+              You can also trigger your notifications contextually using existing Android APIs.  For example, use <a href="{@docRoot}training/location/geofencing.html">geofences</a> to provide glanceable information to your users when they are at home, or use the <a href="{@docRoot}training/location/activity-recognition.html">activity detection APIs</a> to send messages to your users’ wrists while they are bicycling.
+            </p>
+
+            <p>See the <a href="{@docRoot}wear/design/index.html">Android Wear Developer Preview Design Principles</a> for more suggestions on creating great wearable experiences.</p>
+
+          </div>
+        </div>  <!-- end .wrap -->
+      </div>  <!-- end .wear-section -->
+
+      <div class="wear-section" style="background-color:#f5f5f5">
+        <div class="wrap">
+          <div class="wear-section-header">
+            <div class="wear-pre-h1">Coming soon</div>
+            <div class="wear-h1">The Android Wear SDK</div>
+            <div class="wear-subhead">
+              The Developer Preview is just the beginning for Android Wear.
+            </div>
+          </div>
+
+          <div class="wear-body">
+            <p>
+              In the coming months we’ll be launching new APIs and features for Android wearables to create even more unique experiences for the wrist:
+            </p>
+
+            <div class="wear-breakout cols">
+              <div class="col-4">
+                <img src="/wear/images/features/ts1.png" alt="">
+                <p>Build Custom UI</p>
+                <p class="wear-small">
+                  Create custom card layouts and run activities directly on  wearables.
+                </p>
+              </div>
+              <div class="col-4">
+                <img src="/wear/images/features/ts2.png" alt="">
+                <p>Send Data</p>
+                <p class="wear-small">
+                  Send data and actions between a phone and a wearable with data replication APIs and RPCs.
+                </p>
+              </div>
+              <div class="col-4">
+                <img src="/wear/images/features/ts3.png" alt="">
+                <p>Control Sensors</p>
+                <p class="wear-small">
+                  Gather sensor data and display it in real-time on Android wearables.
+                </p>
+              </div>
+              <div class="col-4">
+                <img src="/wear/images/features/ts4.png" alt="">
+                <p>Voice Actions</p>
+                <p class="wear-small">
+                  Register your app to handle voice actions, like "Ok Google, take a note."
+                </p>
+              </div>
+            </div>
+
+          </div>
+        </div> <!-- end .wrap -->
+      </div> <!-- end .wear-section -->
+
+      <div class="wear-section wear-white-background">
+        <div class="wrap">
+          <div class="wear-section-header">
+            <div class="wear-h2">Building an Ecosystem</div>
+            <div class="wear-body wear-align-center">
+              <p class="wear-small">
+                We’re working with several partners to bring you watches powered by Android Wear later this year!
+              </p>
+            </div>
+          </div>
+
+          <div class="wear-partners cols">
+            <div class="col-4">
+              <img src="/wear/images/partners/asus.png" alt="Asus">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/broadcom.png" alt="Broadcom">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/fossil.png" alt="Fossil">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/htc.png" alt="HTC">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/intel.png" alt="Intel">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/lg.png" alt="LG">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/mediatek.png" alt="Mediatek">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/mips.png" alt="MIPS">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/motorola.png" alt="Motorola">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/qualcomm.png" alt="Qualcomm">
+            </div>
+            <div class="col-4">
+              <img src="/wear/images/partners/samsung.png" alt="Samsung">
+            </div>
+          </div>
+        </div> <!-- end .wrap -->
+      </div> <!-- end .wear-section -->
+
+      <div class="wear-section wear-red-background">
+        <div class="wrap">
+          <div class="wear-section-header">
+            <div class="wear-h1 wear-align-left">Start working with Android Wear</div>
+            <div class="wear-subhead wear-subhead-red">
+              <p>
+                Your app’s notifications will already appear on Android wearables. <br>
+                With the new Android Wear APIs, you can customize and extend those notifications.
+              </p>
+              <p>
+                We’re excited about wearables and the experiences developers can create with them. <br>
+                We can’t wait to see what you do next.</p>
+            </div>
+          </div>
+          <div class="wear-body">
+            <a href="/wear/preview/start.html" class="wear-button wear-secondary" style="margin-top: 20px;">
+              Get the Developer Preview
+            </a>
+          </div>
+        </div>
+      </div>
+
+      <div class="wear-section">
+        <div class="wrap">
+          <div class="cols">
+            <div class="wear-body">
+              <div class="col-3-wide">
+                  <a target="_blank" href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef">
+                    <img class="wear-social-image" src="//www.google.com/images/icons/product/youtube-128.png" alt="">
+                  </a>
+                <div class="wear-social-copy">
+                  <p>DevBytes</p>
+                  <p class="wear-small">
+                    Learn how to optimize your app notifications for wearable devices in this <a target="_blank" href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef">DevBytes video</a> using the Android Wear Developer Preview.
+                  </p>
+                </div>
+              </div>
+              <div class="col-3-wide">
+                <a target="_blank" href="http://android-developers.blogspot.com/2014/03/android-wear-developer-preview.html">
+                  <img class="wear-social-image" src="/wear/images/blogger.png" alt="">
+                </a>
+                <div class="wear-social-copy">
+                  <p>Blog Post</p>
+                  <p class="wear-small">
+                    Read more about the Android Wear Developer Preview announcement
+                    at the <a target="_blank" href="http://android-developers.blogspot.com/2014/03/android-wear-developer-preview.html">Android Developers Blog</a>.
+                  </p>
+                </div>
+              </div>
+              <div class="col-3-wide">
+                <a target="_blank" href="http://g.co/androidweardev">
+                  <img class="wear-social-image" src="//www.google.com/images/icons/product/gplus-128.png" alt="+Android Wear Developers">
+                </a>
+                <div class="wear-social-copy">
+                  <p>G+ Community</p>
+                  <p class="wear-small">
+                    Follow us on Google+ to stay up-to-date on Android Wear development and join the discussion!
+                  </p>
+                  <p class="wear-small">
+                    <a target="_blank" href="http://g.co/androidweardev">+Android Wear Developers</a>
+                  </p>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> <!-- end .wrap -->
+      </div> <!-- end .wear-section -->
+    </div> <!-- end .wear-rest-of-page -->
+
+
+    <div class="content-footer wrap" itemscope="" itemtype="http://schema.org/SiteNavigationElement">
+      <div class="layout-content-col col-16" style="padding-top:4px">
+        <style>#___plusone_0 {float:right !important;}</style>
+        <div class="g-plusone" data-size="medium"></div>
+      </div>
+    </div>
+    <div id="footer" class="wrap" style="width:940px;position:relative;top:-35px;z-index:-1">
+      <div id="copyright">
+        Except as noted, this content is
+        licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
+        Creative Commons Attribution 2.5</a>. For details and
+        restrictions, see the <a href="/license.html">Content
+        License</a>.
+      </div>
+    </div>
+
+
+  </div> <!-- end wear-body-content -->
+
+  <script>
+  $("a.wear-down-arrow").on("click", function(e) {
+    $("body").animate({
+      scrollTop: $(".wear-hero").height() + 76
+    }, 1000, "easeOutQuint");
+    e.preventDefault();
+  });
+  </script>
+
diff --git a/docs/html/wear/license.html b/docs/html/wear/license.html
deleted file mode 100644
index c7569bc..0000000
--- a/docs/html/wear/license.html
+++ /dev/null
@@ -1,581 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Developer Preview License Agreement | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Developer Preview License Agreement</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-This is the Android Wear Developer Preview License Agreement.
-
-1. Introduction
-
-1.1 The Android Wear Developer Preview Kit (referred to in this License Agreement as the “Developer Preview” and specifically including the Android system files, packaged APIs, Developer Preview library files, and the Developer Preview companion app, if and when they are made available) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Developer Preview.
-
-1.2 "Android Wear" means the Android Wear devices and the Android Wear software stack for use on Android Wear devices.
-
-1.3 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Accepting this License Agreement
-
-2.1 In order to use the Developer Preview, you must first agree to this License Agreement. You may not use the Developer Preview if you do not accept this License Agreement.
-
-2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
-
-2.3 You may not use the Developer Preview and may not accept the License Agreement if you are a person barred from receiving the Developer Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Developer Preview.
-
-2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Developer Preview on behalf of your employer or other entity.
-
-3. Developer Preview License from Google
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, internal-use, non-assignable and non-exclusive license to use the Developer Preview solely to develop applications to run on the Android Wear platform for Android Wear devices.
-
-3.2 You agree that Google or third parties own all legal right, title and interest in and to the Developer Preview, including any Intellectual Property Rights that subsist in the Developer Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.3 You may not use the Developer Preview for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Developer Preview or any part of the Developer Preview; or (b) load any part of the Developer Preview onto a mobile handset or wearable computing device or any other hardware device except an Android Wear device, combine any part of the Developer Preview with other software, or distribute any software or device incorporating a part of the Developer Preview.
-
-3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android Wear, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Developer Preview.
-
-3.5 Use, reproduction and distribution of components of the Developer Preview licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
-
-3.6 You agree that the form and nature of the Developer Preview that Google provides may change without prior notice to you and that future versions of the Developer Preview may be incompatible with applications developed on previous versions of the Developer Preview. You agree that Google may stop (permanently or temporarily) providing the Developer Preview (or any features within the Developer Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Developer Preview.
-
-3.9 Your use of any Android system files, packaged APIs, or other components of the Developer Preview which are part of the Android Software Development Kit is subject to the terms of the Android Software Development Kit License Agreement located at http://developer.android.com/sdk/terms.html. These terms are hereby incorporated by reference into this License Agreement.
-
-4. Use of the Developer Preview by You
-
-4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Developer Preview, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the Developer Preview and write applications only for purposes that are permitted by (a) this License Agreement, (b) the Google Play Developer Program Policies located at https://play.google.com/about/developer-content-policy.html, and hereby incorporated into this License Agreement by reference), and (c) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).  You agree to use reasonable efforts to comply with the Android Wear Platform Design Guide available on the Android Wear developer website
-
-4.3 You agree that if you use the Developer Preview to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the Developer Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android Wear and/or applications for Android Wear, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-4.7 Unless otherwise specified in writing by Google, Google does not intend use of Android Wear to create obligations under the Health Insurance Portability and Accountability Act, as amended, (“HIPAA”), and makes no representations that Android Wear satisfies HIPAA requirements. If you are (or become) a Covered Entity or Business Associate under HIPAA, you agree not to use Android Wear for any purpose or in any manner involving Protected Health Information unless you have received prior written consent to such use from Google.
-
-4.8 The Developer Preview is in development, and your testing and feedback are an important part of the development process. By using the Developer Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Developer Preview, Android Wear devices, Android Wear system software, or Android Wear services having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Developer Preview as this Developer Preview will no longer be supported after the official SDK is released.
-
-5. Your Developer Credentials
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-6. Privacy and Information
-
-6.1 In order to continually innovate and improve the Developer Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Developer Preview are being used and how they are being used. Before any of this information is collected, the Developer Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the Developer Preview and is maintained in accordance with Google's Privacy Policy lcoated at http://www.google.com/policies/privacy/.
-
-7. Third Party Applications
-
-7.1 If you use the Developer Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
-
-8. Using Google APIs
-
-8.1 Google APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-9. Terminating this License Agreement
-
-9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Developer Preview and any relevant developer credentials.
-
-9.3 Google may at any time, terminate this License Agreement with you if:
-(A) you have breached any provision of this License Agreement; or
-(B) Google is required to do so by law; or
-(C) the partner with whom Google offered certain parts of Developer Preview (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Developer Preview to you; or
-(D) Google decides to no longer provide the Developer Preview or certain parts of the Developer Preview to users in the country in which you are resident or from which you use the service, or the provision of the Developer Preview or certain Developer Preview services to you by Google is, in Google's sole discretion, no longer commercially viable.
-
-9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
-
-10. DISCLAIMER OF WARRANTIES
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE DEVELOPER PREVIEW IS AT YOUR SOLE RISK AND THAT THE DEVELOPER PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE DEVELOPER PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE DEVELOPER PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-11. LIMITATION OF LIABILITY
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-12. Indemnification
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Developer Preview, (b) any application you develop on the Developer Preview that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
-
-13. Changes to the License Agreement
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Developer Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Developer Preview is made available.
-
-14. General Legal Terms
-
-14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Developer Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Developer Preview.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE DEVELOPER PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE DEVELOPER PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
-
-14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-</div>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/license.jd b/docs/html/wear/license.jd
new file mode 100644
index 0000000..b07dacf
--- /dev/null
+++ b/docs/html/wear/license.jd
@@ -0,0 +1,142 @@
+page.title=Developer Preview License Agreement
+
+@jd:body
+
+
+<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
+This is the Android Wear Developer Preview License Agreement.
+
+1. Introduction
+
+1.1 The Android Wear Developer Preview Kit (referred to in this License Agreement as the “Developer Preview” and specifically including the Android system files, packaged APIs, Developer Preview library files, and the Developer Preview companion app, if and when they are made available) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Developer Preview.
+
+1.2 "Android Wear" means the Android Wear devices and the Android Wear software stack for use on Android Wear devices.
+
+1.3 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting this License Agreement
+
+2.1 In order to use the Developer Preview, you must first agree to this License Agreement. You may not use the Developer Preview if you do not accept this License Agreement.
+
+2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+
+2.3 You may not use the Developer Preview and may not accept the License Agreement if you are a person barred from receiving the Developer Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Developer Preview.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Developer Preview on behalf of your employer or other entity.
+
+3. Developer Preview License from Google
+
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, internal-use, non-assignable and non-exclusive license to use the Developer Preview solely to develop applications to run on the Android Wear platform for Android Wear devices.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the Developer Preview, including any Intellectual Property Rights that subsist in the Developer Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the Developer Preview for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Developer Preview or any part of the Developer Preview; or (b) load any part of the Developer Preview onto a mobile handset or wearable computing device or any other hardware device except an Android Wear device, combine any part of the Developer Preview with other software, or distribute any software or device incorporating a part of the Developer Preview.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android Wear, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Developer Preview.
+
+3.5 Use, reproduction and distribution of components of the Developer Preview licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+
+3.6 You agree that the form and nature of the Developer Preview that Google provides may change without prior notice to you and that future versions of the Developer Preview may be incompatible with applications developed on previous versions of the Developer Preview. You agree that Google may stop (permanently or temporarily) providing the Developer Preview (or any features within the Developer Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Developer Preview.
+
+3.9 Your use of any Android system files, packaged APIs, or other components of the Developer Preview which are part of the Android Software Development Kit is subject to the terms of the Android Software Development Kit License Agreement located at http://developer.android.com/sdk/terms.html. These terms are hereby incorporated by reference into this License Agreement.
+
+4. Use of the Developer Preview by You
+
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Developer Preview, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the Developer Preview and write applications only for purposes that are permitted by (a) this License Agreement, (b) the Google Play Developer Program Policies located at https://play.google.com/about/developer-content-policy.html, and hereby incorporated into this License Agreement by reference), and (c) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).  You agree to use reasonable efforts to comply with the Android Wear Platform Design Guide available on the Android Wear developer website
+
+4.3 You agree that if you use the Developer Preview to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the Developer Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android Wear and/or applications for Android Wear, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+4.7 Unless otherwise specified in writing by Google, Google does not intend use of Android Wear to create obligations under the Health Insurance Portability and Accountability Act, as amended, (“HIPAA”), and makes no representations that Android Wear satisfies HIPAA requirements. If you are (or become) a Covered Entity or Business Associate under HIPAA, you agree not to use Android Wear for any purpose or in any manner involving Protected Health Information unless you have received prior written consent to such use from Google.
+
+4.8 The Developer Preview is in development, and your testing and feedback are an important part of the development process. By using the Developer Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Developer Preview, Android Wear devices, Android Wear system software, or Android Wear services having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Developer Preview as this Developer Preview will no longer be supported after the official SDK is released.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the Developer Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Developer Preview are being used and how they are being used. Before any of this information is collected, the Developer Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the Developer Preview and is maintained in accordance with Google's Privacy Policy lcoated at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the Developer Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating this License Agreement
+
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Developer Preview and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+(A) you have breached any provision of this License Agreement; or
+(B) Google is required to do so by law; or
+(C) the partner with whom Google offered certain parts of Developer Preview (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Developer Preview to you; or
+(D) Google decides to no longer provide the Developer Preview or certain parts of the Developer Preview to users in the country in which you are resident or from which you use the service, or the provision of the Developer Preview or certain Developer Preview services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+
+10. DISCLAIMER OF WARRANTIES
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE DEVELOPER PREVIEW IS AT YOUR SOLE RISK AND THAT THE DEVELOPER PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE DEVELOPER PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE DEVELOPER PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Developer Preview, (b) any application you develop on the Developer Preview that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Developer Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Developer Preview is made available.
+
+14. General Legal Terms
+
+14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Developer Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Developer Preview.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE DEVELOPER PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE DEVELOPER PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+</div>
diff --git a/docs/html/wear/notifications/creating.html b/docs/html/wear/notifications/creating.html
deleted file mode 100644
index 7ad6833..0000000
--- a/docs/html/wear/notifications/creating.html
+++ /dev/null
@@ -1,722 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Creating Notifications for Android Wear | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Creating Notifications for Android Wear</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <p>When an Android device such as a phone or tablet is connected to an Android wearable,
-all notifications are shared between the devices by default. On the Android wearable, each
-notification appears as a new card in the <a href="/wear/design/user-interface.html#Stream"
->context stream</a>.</p>
-
-<img src="/wear/images/notification_phone@2x.png" width="700" height="265" />
-
-
-<p>So without any effort, your app notifications are available to users on Android Wear.
-However, you can enhance the user experience in several ways. For instance,
-if users may respond to a notification by entering text, such as to reply to
-a message, you can add the ability for users to reply by voice directly from the
-wearable.</p>
-
-<p>To help you provide the best user experience
-for your notifications on Android Wear, this guide shows you how to
-build notifications using standard templates in
-the <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html">NotificationCompat.Builder</a></code> APIs, plus how to begin
-extending your notification's capabilities for the wearable user experience.</p>
-
-<p class="note"><strong>Note:</strong>
-Notifications using <code><a href="/reference/android/widget/RemoteViews.html">RemoteViews</a></code> are stripped of custom
-layouts and the system uses only the text and icons in the
-<code><a href="/reference/android/app/Notification.html">Notification</a></code> object to
-display the notification in a card. However, custom card layouts will be supported by
-the official Android Wear SDK that is coming later.</p>
-</div>
-
-
-
-
-<h2 id="Import">Import the Necessary Classes</h2>
-
-<p>To begin development, you must first complete the instructions in the <a
-href="/wear/preview/start">Get Started with the Developer Preview</a> document.
-As mentioned in that document, your app must include
-both the <a href="http://developer.android.com/tools/support-library/features.html#v4">v4 support
-library</a> and the Developer Preview support library. So to get started,
-you should include the following imports in your project code:</p>
-
-<pre>
-import android.preview.support.wearable.notifications.*;
-import android.preview.support.v4.app.NotificationManagerCompat;
-import android.support.v4.app.NotificationCompat;
-</pre>
-
-<p class="caution"><strong>Caution:</strong>
-The APIs in the current Android Wear Developer Preview are intended for <b>development and testing purposes only</b>, not for production apps. Google may change this Developer Preview significantly prior to the official release of the Android Wear SDK. You may not publicly distribute or ship any application using this Developer Preview, as this Developer Preview will no longer be supported after the official SDK is released (which will cause applications based only on the Developer Preview to break).</p>
-
-
-
-<h2 id="NotificationBuilder">Create Notifications with the Notification Builder</h2>
-
-<p>The <a href="http://developer.android.com/tools/support-library/features.html#v4">v4
-support library</a> allows you to create notifications using the latest notification features
-such as action buttons and large icons, while remaining compatible with Android 1.6 (API level
-4) and higher.</p>
-
-
-<p>For example, here's some code that creates and issues a notification using the
-<code><a href="/reference/android/support/v4/app/NotificationCompat.html">NotificationCompat</a></code> APIs combined with the new
-<a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">
-<code>NotificationManagerCompat</code></a> API:</p>
-
-
-<pre>
-int notificationId = 001;
-// Build intent for notification content
-Intent viewIntent = new Intent(this, ViewEventActivity.class);
-viewIntent.putExtra(EXTRA_EVENT_ID, eventId);
-PendingIntent viewPendingIntent =
-        PendingIntent.getActivity(this, 0, viewIntent, 0);
-
-NotificationCompat.Builder notificationBuilder =
-        new NotificationCompat.Builder(this)
-        .setSmallIcon(R.drawable.ic_event)
-        .setContentTitle(eventTitle)
-        .setContentText(eventLocation)
-        .setContentIntent(viewPendingIntent);
-
-// Get an instance of the NotificationManager service
-NotificationManagerCompat notificationManager =
-        NotificationManagerCompat.from(this);
-
-// Build the notification and issues it with notification manager.
-notificationManager.notify(notificationId, notificationBuilder.build());
-</pre>
-
-<p>When this notification appears on a handheld device, the user can invoke the
-<code><a href="/reference/android/app/PendingIntent.html">PendingIntent</a></code>
-specified by the <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">setContentIntent()</a></code> method by touching the notification. When this
-notification appears on an Android wearable, the user can swipe the notification to the left to
-reveal the <strong>Open</strong> action, which invokes the intent on the handheld device.</p>
-
-
-
-
-
-
-<img src="/wear/images/circle_email_action.png" height="200" style="float:right;clear:right;margin:0 0 20px 60px" />
-
-<h2 id="ActionButtons">Add Action Buttons</h2>
-
-<p>In addition to the primary content action defined by
-<code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">setContentIntent()</a></code>, you can add other actions by passing a <code><a href="/reference/android/app/PendingIntent.html">PendingIntent</a></code> to
-the <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#addAction(int, java.lang.CharSequence, android.app.PendingIntent)">addAction()</a></code> method.</p>
-
-<p>For example, the following code shows the same type of notification from above, but adds an
-action to view the event location on a map.</p>
-
-<pre style="clear:right">
-// Build an intent for an action to view a map
-Intent mapIntent = new Intent(Intent.ACTION_VIEW);
-Uri geoUri = Uri.parse("geo:0,0?q=" + Uri.encode(location));
-mapIntent.setData(geoUri);
-PendingIntent mapPendingIntent =
-        PendingIntent.getActivity(this, 0, mapIntent, 0);
-
-NotificationCompat.Builder notificationBuilder =
-        new NotificationCompat.Builder(this)
-        .setSmallIcon(R.drawable.ic_event)
-        .setContentTitle(eventTitle)
-        .setContentText(eventLocation)
-        .setContentIntent(viewPendingIntent)
-        <b>.addAction(R.drawable.ic_map,
-                getString(R.string.map), mapPendingIntent);</b>
-</pre>
-
-<p>On a handheld device, the action appears as an
-additional button attached to the notification. On an Android wearable, the action appears as
-a large button when the user swipes the notification to the left. When the user taps the action,
-the associated <code><a href="/reference/android/content/Intent.html">Intent</a></code> is invoked on the handheld device.</p>
-
-<p class="note"><strong>Tip:</strong> If your notifications includes a "Reply" action
-  (such as for a messaging app), you can enhance the behavior by enabling
-  voice input replies directly from the Android wearable. For more information, read
-  <a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification</a>.
-</p>
-
-<p>For details about designing action buttons (including the icon specifications), see the
-<a href="/wear/design/index.html#NotifictionActions">Design Principles of Android
-Wear</a>.</p>
-
-
-<h2 id="BigView">Add a Big View</h2>
-
-<img src="/wear/images/06_images.png" height="200" style="float:right;margin:0 0 20px 40px" />
-
-<p>You can insert extended text content
-to your notification by adding one of the "big view" styles to your notification. On a
-handheld device, users can see the big view content by expanding the notification,
-while on Android Wear, the big view content is visible by default.</p>
-
-<p>To add the extended content to your notification, call <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setStyle(android.support.v4.app.NotificationCompat.Style)">setStyle()</a></code> on the <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html">NotificationCompat.Builder</a></code> object, passing it an instance of either
-<code><a href="/reference/android/support/v4/app/NotificationCompat.BigTextStyle.html">BigTextStyle</a></code> or
-<code><a href="/reference/android/support/v4/app/NotificationCompat.InboxStyle.html">InboxStyle</a></code>.</p>
-
-<p>For example, the following code adds an instance of
-<code><a href="/reference/android/support/v4/app/NotificationCompat.BigTextStyle.html">NotificationCompat.BigTextStyle</a></code> to the event notification,
-in order to include the complete event description (which includes more text than can fit
-into the space provided for <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setContentText(java.lang.CharSequence)">setContentText()</a></code>).</p>
-
-
-<pre style="clear:right">
-// Specify the 'big view' content to display the long
-// event description that may not fit the normal content text.
-BigTextStyle bigStyle = new NotificationCompat.BigTextStyle();
-bigStyle.bigText(eventDescription);
-
-NotificationCompat.Builder notificationBuilder =
-        new NotificationCompat.Builder(this)
-        .setSmallIcon(R.drawable.ic_event)
-        .setLargeIcon(BitmapFractory.decodeResource(
-                getResources(), R.drawable.notif_background))
-        .setContentTitle(eventTitle)
-        .setContentText(eventLocation)
-        .setContentIntent(viewPendingIntent)
-        .addAction(R.drawable.ic_map,
-                getString(R.string.map), mapPendingIntent)
-        <b>.setStyle(bigStyle);</b>
-</pre>
-
-<p>Notice that you can add a large background image to any notification using the
-<code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setLargeIcon(android.graphics.Bitmap)">setLargeIcon()</a></code>
-method. For more information about designing notifications with large images, see the
-<a href="/wear/design/index.html#Images">Design Principles of Android
-Wear</a>.</p>
-
-
-
-<h2 id="NewFeatures">Add New Features for Wearables</h2>
-
-<p>The Android Wear preview support library provides new APIs that
-  allow you to enhance the user experience for notifications on a wearable device. For example,
-  you can add additional pages of content that users can view by swiping to the left, or add the ability
-for users to deliver your app a text response using voice input.</p>
-
-<p>To use these new APIs, pass your instance of
-<code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html">NotificationCompat.Builder</a></code> to the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#WearableNotifications.Builder(android.content.Context)"> <code>WearableNotifications.Builder()</code></a> constructor. You can then add new
-features to your notification using the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"
-  ><code>WearableNotifications.Builder</code></a> methods. For example:</p>
-
-<pre>
-// Create a NotificationCompat.Builder for standard notification features
-NotificationCompat.Builder notificationBuilder =
-        new NotificationCompat.Builder(mContext)
-        .setContentTitle("New mail from " + sender.toString())
-        .setContentText(subject)
-        .setSmallIcon(R.drawable.new_mail);
-
-// Create a WearablesNotification.Builder to add special functionality for wearables
-Notification notification =
-        new WearableNotifications.Builder(notificationBuilder)
-        .setHintHideIcon(true)
-        .build();
-</pre>
-
-<p>The <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setBigActionIcon(int)">
-  <code>setHintHideIcon()</code></a> method removes your app icon from the notification card.
-  This method is just one example of new notification features available from the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"
-  ><code>WearableNotifications.Builder</code></a> class.</p>
-
-<p>When you want to deliver your notifications, be certain to always use the
-  <a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">
-    <code>NotificationManagerCompat</code></a> API:</p>
-
-<pre>
-// Get an instance of the NotificationManager service
-NotificationManagerCompat notificationManager =
-        NotificationManagerCompat.from(this);
-
-// Build the notification and issues it with notification manager.
-notificationManager.notify(notificationId, notification);
-</pre>
-
-<p>If you instead use the framework's <code><a href="/reference/android/app/NotificationManager.html">NotificationManager</a></code>, some
-features from <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"><code>WearableNotifications.Builder</code></a>
-will not work.</p>
-
-<p>To continue enhancing your notifications for wearables using
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"
-  ><code>WearableNotifications.Builder</code></a> and other APIs in the
-  preview support library, see the following developer guides:</p>
-
-  <dl>
-    <dt><a href="/wear/notifications/remote-input.html">Receiving Voice Input
-from a Notification</a></dt>
-      <dd>Add an action that receives voice input from the user and delivers the
-transcribed message to your app.</dd>
-    <dt><a href="/wear/notifications/pages.html">Adding Pages to a Notification</a></dt>
-      <dd>Add additional pages of information that are visible when the user
-swipes to the left.</dd>
-    <dt><a href="/wear/notifications/stacks.html">Stacking Notifications</a></dt>
-      <dd>Place all similar notifications from your app in a stack, allowing each to be
-viewed individually without adding multiple cards to the card stream.</dd>
-  </dl>
-
-
-<div class="next-docs">
-
-<div class="col-12">
-  <h2 class="norule">You might also want to read:</h2>
-  <dl>
-    <dt><a href="/training/notify-user/index.html">Notifying the User</a></dt>
-    <dd>Learn more about how to create notifications.</dd>
-    <dt><a href="/guide/components/intents-filters.html">Intents and Intent Filters</a></dt>
-    <dd>Learn everything you need to know about the <code><a href="/reference/android/content/Intent.html">Intent</a></code>
-APIs, used by notificaton actions.</dd>
-  </dl>
-</div>
-</div>
-
-
-</body>
-</html>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/notifications/creating.jd b/docs/html/wear/notifications/creating.jd
new file mode 100644
index 0000000..ce9e117
--- /dev/null
+++ b/docs/html/wear/notifications/creating.jd
@@ -0,0 +1,289 @@
+page.title=Creating Notifications for Android Wear
+
+@jd:body
+
+
+<p>When an Android device such as a phone or tablet is connected to an Android wearable,
+all notifications are shared between the devices by default. On the Android wearable, each
+notification appears as a new card in the <a href="{@docRoot}wear/design/user-interface.html#Stream"
+>context stream</a>.</p>
+
+<img src="{@docRoot}wear/images/notification_phone@2x.png" width="700" height="265" />
+
+
+<p>So without any effort, your app notifications are available to users on Android Wear.
+However, you can enhance the user experience in several ways. For instance,
+if users may respond to a notification by entering text, such as to reply to
+a message, you can add the ability for users to reply by voice directly from the
+wearable.</p>
+
+<p>To help you provide the best user experience
+for your notifications on Android Wear, this guide shows you how to
+build notifications using standard templates in
+the {@link android.support.v4.app.NotificationCompat.Builder} APIs, plus how to begin
+extending your notification's capabilities for the wearable user experience.</p>
+
+<p class="note"><strong>Note:</strong>
+Notifications using {@link android.widget.RemoteViews} are stripped of custom
+layouts and the system uses only the text and icons in the
+{@link android.app.Notification} object to
+display the notification in a card. However, custom card layouts will be supported by
+the official Android Wear SDK that is coming later.</p>
+</div>
+
+
+
+
+<h2 id="Import">Import the Necessary Classes</h2>
+
+<p>To begin development, you must first complete the instructions in the <a
+href="{@docRoot}wear/preview/start.html">Get Started with the Developer Preview</a> document.
+As mentioned in that document, your app must include
+both the <a href="http://developer.android.com/tools/support-library/features.html#v4">v4 support
+library</a> and the Developer Preview support library. So to get started,
+you should include the following imports in your project code:</p>
+
+<pre>
+import android.preview.support.wearable.notifications.*;
+import android.preview.support.v4.app.NotificationManagerCompat;
+import android.support.v4.app.NotificationCompat;
+</pre>
+
+<p class="caution"><strong>Caution:</strong>
+The APIs in the current Android Wear Developer Preview are intended for <b>development and testing purposes only</b>, not for production apps. Google may change this Developer Preview significantly prior to the official release of the Android Wear SDK. You may not publicly distribute or ship any application using this Developer Preview, as this Developer Preview will no longer be supported after the official SDK is released (which will cause applications based only on the Developer Preview to break).</p>
+
+
+
+<h2 id="NotificationBuilder">Create Notifications with the Notification Builder</h2>
+
+<p>The <a href="http://developer.android.com/tools/support-library/features.html#v4">v4
+support library</a> allows you to create notifications using the latest notification features
+such as action buttons and large icons, while remaining compatible with Android 1.6 (API level
+4) and higher.</p>
+
+
+<p>For example, here's some code that creates and issues a notification using the
+{@link android.support.v4.app.NotificationCompat} APIs combined with the new
+<a href="{@docRoot}reference/android/preview/support/v4/app/NotificationManagerCompat.html">
+<code>NotificationManagerCompat</code></a> API:</p>
+
+
+<pre>
+int notificationId = 001;
+// Build intent for notification content
+Intent viewIntent = new Intent(this, ViewEventActivity.class);
+viewIntent.putExtra(EXTRA_EVENT_ID, eventId);
+PendingIntent viewPendingIntent =
+        PendingIntent.getActivity(this, 0, viewIntent, 0);
+
+NotificationCompat.Builder notificationBuilder =
+        new NotificationCompat.Builder(this)
+        .setSmallIcon(R.drawable.ic_event)
+        .setContentTitle(eventTitle)
+        .setContentText(eventLocation)
+        .setContentIntent(viewPendingIntent);
+
+// Get an instance of the NotificationManager service
+NotificationManagerCompat notificationManager =
+        NotificationManagerCompat.from(this);
+
+// Build the notification and issues it with notification manager.
+notificationManager.notify(notificationId, notificationBuilder.build());
+</pre>
+
+<p>When this notification appears on a handheld device, the user can invoke the
+{@link android.app.PendingIntent}
+specified by the {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent
+setContentIntent()} method by touching the notification. When this
+notification appears on an Android wearable, the user can swipe the notification to the left to
+reveal the <strong>Open</strong> action, which invokes the intent on the handheld device.</p>
+
+
+
+
+
+
+<img src="{@docRoot}wear/images/circle_email_action.png" height="200" style="float:right;clear:right;margin:0 0 20px 60px" />
+
+<h2 id="ActionButtons">Add Action Buttons</h2>
+
+<p>In addition to the primary content action defined by
+{@link android.support.v4.app.NotificationCompat.Builder#setContentIntent
+setContentIntent()}, you can add other actions by passing a {@link android.app.PendingIntent} to
+the {@link android.support.v4.app.NotificationCompat.Builder#addAction
+addAction()} method.</p>
+
+<p>For example, the following code shows the same type of notification from above, but adds an
+action to view the event location on a map.</p>
+
+<pre style="clear:right">
+// Build an intent for an action to view a map
+Intent mapIntent = new Intent(Intent.ACTION_VIEW);
+Uri geoUri = Uri.parse("geo:0,0?q=" + Uri.encode(location));
+mapIntent.setData(geoUri);
+PendingIntent mapPendingIntent =
+        PendingIntent.getActivity(this, 0, mapIntent, 0);
+
+NotificationCompat.Builder notificationBuilder =
+        new NotificationCompat.Builder(this)
+        .setSmallIcon(R.drawable.ic_event)
+        .setContentTitle(eventTitle)
+        .setContentText(eventLocation)
+        .setContentIntent(viewPendingIntent)
+        <b>.addAction(R.drawable.ic_map,
+                getString(R.string.map), mapPendingIntent);</b>
+</pre>
+
+<p>On a handheld device, the action appears as an
+additional button attached to the notification. On an Android wearable, the action appears as
+a large button when the user swipes the notification to the left. When the user taps the action,
+the associated {@link android.content.Intent} is invoked on the handheld device.</p>
+
+<p class="note"><strong>Tip:</strong> If your notifications includes a "Reply" action
+  (such as for a messaging app), you can enhance the behavior by enabling
+  voice input replies directly from the Android wearable. For more information, read
+  <a href="{@docRoot}wear/notifications/remote-input.html">Receiving Voice Input from a Notification</a>.
+</p>
+
+<p>For details about designing action buttons (including the icon specifications), see the
+<a href="{@docRoot}wear/design/index.html#NotifictionActions">Design Principles of Android
+Wear</a>.</p>
+
+
+<h2 id="BigView">Add a Big View</h2>
+
+<img src="{@docRoot}wear/images/06_images.png" height="200" style="float:right;margin:0 0 20px 40px" />
+
+<p>You can insert extended text content
+to your notification by adding one of the "big view" styles to your notification. On a
+handheld device, users can see the big view content by expanding the notification,
+while on Android Wear, the big view content is visible by default.</p>
+
+<p>To add the extended content to your notification, call {@link
+android.support.v4.app.NotificationCompat.Builder#setStyle setStyle()} on the {@link
+android.support.v4.app.NotificationCompat.Builder} object, passing it an instance of either
+{@link android.support.v4.app.NotificationCompat.BigTextStyle BigTextStyle} or
+{@link android.support.v4.app.NotificationCompat.InboxStyle InboxStyle}.</p>
+
+<p>For example, the following code adds an instance of
+{@link android.support.v4.app.NotificationCompat.BigTextStyle} to the event notification,
+in order to include the complete event description (which includes more text than can fit
+into the space provided for {@link android.support.v4.app.NotificationCompat.Builder#setContentText
+setContentText()}).</p>
+
+
+<pre style="clear:right">
+// Specify the 'big view' content to display the long
+// event description that may not fit the normal content text.
+BigTextStyle bigStyle = new NotificationCompat.BigTextStyle();
+bigStyle.bigText(eventDescription);
+
+NotificationCompat.Builder notificationBuilder =
+        new NotificationCompat.Builder(this)
+        .setSmallIcon(R.drawable.ic_event)
+        .setLargeIcon(BitmapFractory.decodeResource(
+                getResources(), R.drawable.notif_background))
+        .setContentTitle(eventTitle)
+        .setContentText(eventLocation)
+        .setContentIntent(viewPendingIntent)
+        .addAction(R.drawable.ic_map,
+                getString(R.string.map), mapPendingIntent)
+        <b>.setStyle(bigStyle);</b>
+</pre>
+
+<p>Notice that you can add a large background image to any notification using the
+{@link android.support.v4.app.NotificationCompat.Builder#setLargeIcon setLargeIcon()}
+method. For more information about designing notifications with large images, see the
+<a href="{@docRoot}wear/design/index.html#Images">Design Principles of Android
+Wear</a>.</p>
+
+
+
+<h2 id="NewFeatures">Add New Features for Wearables</h2>
+
+<p>The Android Wear preview support library provides new APIs that
+  allow you to enhance the user experience for notifications on a wearable device. For example,
+  you can add additional pages of content that users can view by swiping to the left, or add the ability
+for users to deliver your app a text response using voice input.</p>
+
+<p>To use these new APIs, pass your instance of
+{@link android.support.v4.app.NotificationCompat.Builder} to the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#WearableNotifications.Builder(android.content.Context)"> <code>WearableNotifications.Builder()</code></a> constructor. You can then add new
+features to your notification using the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"
+  ><code>WearableNotifications.Builder</code></a> methods. For example:</p>
+
+<pre>
+// Create a NotificationCompat.Builder for standard notification features
+NotificationCompat.Builder notificationBuilder =
+        new NotificationCompat.Builder(mContext)
+        .setContentTitle("New mail from " + sender.toString())
+        .setContentText(subject)
+        .setSmallIcon(R.drawable.new_mail);
+
+// Create a WearablesNotification.Builder to add special functionality for wearables
+Notification notification =
+        new WearableNotifications.Builder(notificationBuilder)
+        .setHintHideIcon(true)
+        .build();
+</pre>
+
+<p>The <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setBigActionIcon(int)">
+  <code>setHintHideIcon()</code></a> method removes your app icon from the notification card.
+  This method is just one example of new notification features available from the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"
+  ><code>WearableNotifications.Builder</code></a> class.</p>
+
+<p>When you want to deliver your notifications, be certain to always use the
+  <a href="{@docRoot}reference/android/preview/support/v4/app/NotificationManagerCompat.html">
+    <code>NotificationManagerCompat</code></a> API:</p>
+
+<pre>
+// Get an instance of the NotificationManager service
+NotificationManagerCompat notificationManager =
+        NotificationManagerCompat.from(this);
+
+// Build the notification and issues it with notification manager.
+notificationManager.notify(notificationId, notification);
+</pre>
+
+<p>If you instead use the framework's {@link android.app.NotificationManager}, some
+features from <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"><code>WearableNotifications.Builder</code></a>
+will not work.</p>
+
+<p>To continue enhancing your notifications for wearables using
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"
+  ><code>WearableNotifications.Builder</code></a> and other APIs in the
+  preview support library, see the following developer guides:</p>
+
+  <dl>
+    <dt><a href="{@docRoot}wear/notifications/remote-input.html">Receiving Voice Input
+from a Notification</a></dt>
+      <dd>Add an action that receives voice input from the user and delivers the
+transcribed message to your app.</dd>
+    <dt><a href="{@docRoot}wear/notifications/pages.html">Adding Pages to a Notification</a></dt>
+      <dd>Add additional pages of information that are visible when the user
+swipes to the left.</dd>
+    <dt><a href="{@docRoot}wear/notifications/stacks.html">Stacking Notifications</a></dt>
+      <dd>Place all similar notifications from your app in a stack, allowing each to be
+viewed individually without adding multiple cards to the card stream.</dd>
+  </dl>
+
+
+<div class="next-docs">
+
+<div class="col-12">
+  <h2 class="norule">You might also want to read:</h2>
+  <dl>
+    <dt><a href="{@docRoot}training/notify-user/index.html">Notifying the User</a></dt>
+    <dd>Learn more about how to create notifications.</dd>
+    <dt><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a></dt>
+    <dd>Learn everything you need to know about the {@link android.content.Intent}
+APIs, used by notificaton actions.</dd>
+  </dl>
+</div>
+</div>
+
+
+</body>
+</html>
diff --git a/docs/html/wear/notifications/pages.html b/docs/html/wear/notifications/pages.html
deleted file mode 100644
index ce568eb..0000000
--- a/docs/html/wear/notifications/pages.html
+++ /dev/null
@@ -1,500 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Adding Pages to a Notification | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Adding Pages to a Notification</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <img src="/wear/images/09_pages.png" height="200" style="float:right;margin:0 0 20px 40px" />
-<img src="/wear/images/08_pages.png" height="200" style="float:right;margin:0 0 20px 40px" />
-
-<p>When you'd like to provide more information without requiring users
-to open your app on their handheld device, you can
-add one or more pages to the notification on Android Wear. The additional pages
-appear immediately to the right of the main notification card.
-For information about when to use and how to design
-multiple pages, see the
-<a href="/wear/design/index.html#NotificationPages">Design Principles of Android
-Wear</a>.</p>
-
-
-<p>When creating a notification with multiple pages, start by creating the main notification
-(the first page) the way you'd like the notification to appear on a phone
-or tablet. Then, add pages one at a time with the
-<a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addPage(android.app.Notification)">
-<code>addPage()</code></a> method, or add multiple pages in a <code><a href="/reference/java/util/Collection.html">Collection</a></code> with the
-<a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addPages(java.util.Collection<android.app.Notification>)">
-<code>addPages()</code></a> method.</p>
-
-
-<p>For example, here's some code that adds a second page to a notification:</p>
-
-<pre>
-// Create builder for the main notification
-NotificationCompat.Builder notificationBuilder =
-        new NotificationCompat.Builder(this)
-        .setSmallIcon(R.drawable.new_message)
-        .setContentTitle("Page 1")
-        .setContentText("Short message")
-        .setContentIntent(viewPendingIntent);
-
-// Create a big text style for the second page
-BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle();
-secondPageStyle.setBigContentTitle("Page 2")
-               .bigText("A lot of text...");
-
-// Create second page notification
-Notification secondPageNotification =
-        new NotificationCompat.Builder(this)
-        .setStyle(secondPageStyle)
-        .build();
-
-// Create main notification and add the second page
-Notification twoPageNotification =
-        new WearableNotifications.Builder(notificationBuilder)
-        .addPage(secondPageNotification)
-        .build();
-</pre>
-
-
-
-
-</body>
-</html>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/notifications/pages.jd b/docs/html/wear/notifications/pages.jd
new file mode 100644
index 0000000..558f7b8
--- /dev/null
+++ b/docs/html/wear/notifications/pages.jd
@@ -0,0 +1,61 @@
+page.title=Adding Pages to a Notification
+
+@jd:body
+
+
+<img src="{@docRoot}wear/images/09_pages.png" height="200" style="float:right;margin:0 0 20px 40px" />
+<img src="{@docRoot}wear/images/08_pages.png" height="200" style="float:right;margin:0 0 20px 40px" />
+
+<p>When you'd like to provide more information without requiring users
+to open your app on their handheld device, you can
+add one or more pages to the notification on Android Wear. The additional pages
+appear immediately to the right of the main notification card.
+For information about when to use and how to design
+multiple pages, see the
+<a href="{@docRoot}wear/design/index.html#NotificationPages">Design Principles of Android
+Wear</a>.</p>
+
+
+<p>When creating a notification with multiple pages, start by creating the main notification
+(the first page) the way you'd like the notification to appear on a phone
+or tablet. Then, add pages one at a time with the
+<a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addPage(android.app.Notification)">
+<code>addPage()</code></a> method, or add multiple pages in a {@link java.util.Collection} with the
+<a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addPages(java.util.Collection<android.app.Notification>)">
+<code>addPages()</code></a> method.</p>
+
+
+<p>For example, here's some code that adds a second page to a notification:</p>
+
+<pre>
+// Create builder for the main notification
+NotificationCompat.Builder notificationBuilder =
+        new NotificationCompat.Builder(this)
+        .setSmallIcon(R.drawable.new_message)
+        .setContentTitle("Page 1")
+        .setContentText("Short message")
+        .setContentIntent(viewPendingIntent);
+
+// Create a big text style for the second page
+BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle();
+secondPageStyle.setBigContentTitle("Page 2")
+               .bigText("A lot of text...");
+
+// Create second page notification
+Notification secondPageNotification =
+        new NotificationCompat.Builder(this)
+        .setStyle(secondPageStyle)
+        .build();
+
+// Create main notification and add the second page
+Notification twoPageNotification =
+        new WearableNotifications.Builder(notificationBuilder)
+        .addPage(secondPageNotification)
+        .build();
+</pre>
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/wear/notifications/remote-input.html b/docs/html/wear/notifications/remote-input.html
deleted file mode 100644
index 3d869b5..0000000
--- a/docs/html/wear/notifications/remote-input.html
+++ /dev/null
@@ -1,652 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Receiving Voice Input from a Notification | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Receiving Voice Input from a Notification</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <img src="/wear/images/13_voicereply.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
-
-<img src="/wear/images/03_actions.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
-
-<p>If your notification includes an action to respond with text,
-    such as to reply to an email, it should normally launch an activity
-    on the handheld device. However, when your notification appears on an Android wearable, you can
-    allow users to dictate a reply with voice input. You can also provide pre-defined text
-    messages for the user to select.</p>
-
-<p>When the user replies with voice or selects one of the available
-messages, the system sends the message to your app on the connected handheld device.
-The message is attached as an extra in the <code><a href="/reference/android/content/Intent.html">Intent</a></code> you specified
-to be used for the notification action.</p>
-
-<p class="note"><strong>Note:</strong> When developing with the Android emulator,
-you must type text replies into the voice input field, so be sure you have enabled
-<strong>Hardware keyboard present</strong> in the AVD settings.</p>
-
-
-<h2 id="RemoteInput">Define the Remote Input</h2>
-
-<p>To create an action that supports voice input, first create an instance of
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">
-<code>RemoteInput</code></a> using the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html"><code>RemoteInput.Builder</code></a> APIs.
-    The
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html"><code>RemoteInput.Builder</code></a> constructor takes a string that the system
-    will use as a key for the <code><a href="/reference/android/content/Intent.html">Intent</a></code> extra that carries the reply message
-    to your app on the handheld.</p>
-
-<p>For example, here's how to create a new
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">
-<code>RemoteInput</code></a> object that provides a custom
-    label for the voice input prompt:</p>
-
-<pre class="prettyprint">
-// Key for the string that's delivered in the action's intent
-private static final String EXTRA_VOICE_REPLY = "extra_voice_reply";
-
-String replyLabel = getResources().getString(R.string.reply_label);
-
-RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
-        .setLabel(replyLabel)
-        .build();
-</pre>
-
-
-<h3>Add Pre-defined Text Responses</h3>
-
-<img src="/wear/images/12_voicereply.png" height="200" style="float:right;margin:0 0 20px 40px" />
-
-<p>In addition to allowing voice input, you can
-    provide up to five text responses that the user can select for quick replies. Call
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html#setChoices(java.lang.String[])"><code>setChoices()</code></a> and pass it a string array.</p>
-
-<p>For example, you may define some responses in a resource array:</p>
-
-<p class="code-caption">res/values/strings.xml</code>
-<pre class="prettyprint">
-&lt;?xml version="1.0" encoding="utf-8"?>
-&lt;resources>
-    &lt;string-array name="reply_choices">
-        &lt;item>Yes&lt;/item>
-        &lt;item>No&lt;/item>
-        &lt;item>Maybe&lt;/item>
-    &lt;/string-array>
-&lt;/resources>
-</pre>
-
-<p>Then, inflate the string array and add it to the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a>:</p>
-
-<pre>
-String replyLabel = getResources().getString(R.string.reply_label);
-String[] replyChoices = getResources().getStringArray(R.array.reply_choices);
-
-RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
-        .setLabel(replyLabel)
-        .setChoices(replyChoices)
-        .build();
-</pre>
-
-
-
-
-<h2 id="PrimaryAction">Receive Voice Input for the Primary Action</h2>
-
-<p>If "Reply" is your notification's primary action (defined by the <code><a href="/reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">setContentIntent()</a></code>
-method), then you should attach the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> to the main action using
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addRemoteInputForContentIntent(android.preview.support.wearable.notifications.RemoteInput)">
-<code>addRemoteInputForContentIntent()</code></a>. For example:</p>
-
-<pre>
-// Create intent for reply action
-Intent replyIntent = new Intent(this, ReplyActivity.class);
-PendingIntent replyPendingIntent =
-        PendingIntent.getActivity(this, 0, replyIntent, 0);
-
-// Build the notification
-NotificationCompat.Builder replyNotificationBuilder =
-        new NotificationCompat.Builder(this)
-        .setSmallIcon(R.drawable.ic_new_message)
-        .setContentTitle("Message from Travis")
-        .setContentText("I love key lime pie!")
-        .setContentIntent(replyPendingIntent);
-
-// Create the remote input
-RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
-        .setLabel(replyLabel)
-        .build();
-
-// Create wearable notification and add remote input
-Notification replyNotification =
-        new WearableNotifications.Builder(replyNotificationBuilder)
-        .addRemoteInputForContentIntent(remoteInput)
-        .build();
-</pre>
-
-
-<p>By using
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addRemoteInputForContentIntent(android.preview.support.wearable.notifications.RemoteInput)">
-<code>addRemoteInputForContentIntent()</code></a> to add the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> object to the notification's primary action,
-the button that normally appears as an "Open" action becomes the "Reply" action
-and starts the voice input UI when users select it on Android Wear.</p>
-
-
-
-<h2 id="NewAction">Receive Voice Input for a Secondary Action</h2>
-
-<p>If the "Reply" action is not your notification's primary action and you want to enable
-voice input for a secondary action, add the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> to a new action button defined by an
-  <a href="/reference/android/preview/support/wearable/notifications/Action.html">
-<code>Action</code></a> object.</p>
-
-<p>You should instantiate the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
-<code>Action</code></a> with the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html"><code>Action.Builder()</code></a>
-constructor, which takes an icon and text label for the action button, plus the
-<code><a href="/reference/android/app/PendingIntent.html">PendingIntent</a></code>
-the system should use to invoke your app when the user selects the action. For example:</p>
-
-<pre>
-// Create the pending intent to fire when the user selects the action
-Intent replyIntent = new Intent(this, ReplyActivity.class);
-PendingIntent pendingReplyIntent =
-        PendingIntent.getActivity(this, 0, replyIntent, 0);
-
-// Create the remote input
-RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
-        .setLabel(replyLabel)
-        .build();
-
-// Create the notification action
-Action replyAction = new Action.Builder(R.drawable.ic_message,
-        "Reply", pendingIntent)
-        .addRemoteInput(remoteInput)
-        .build();
-</pre>
-
-
-<p>After you add the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> to the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
-<code>Action</code></a>, add the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
-<code>Action</code></a> to the
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"><code>WearableNotifications.Builder</code></a> using
-  <a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addAction(Action)"><code>addAction()</code></a>.
-For example:</p>
-
-<pre>
-// Create basic notification builder
-NotificationCompat.Builder replyNotificationBuilder =
-        new NotificationCompat.Builder(this)
-        .setContentTitle("New message");
-
-// Create the notification action and add remote input
-Action replyAction = new Action.Builder(R.drawable.ic_message,
-        "Reply", pendingIntent)
-        .addRemoteInput(remoteInput)
-        .build();
-
-// Create wearable notification and add action
-Notification replyNotification =
-        new WearableNotifications.Builder(replyNotificationBuilder)
-        .addAction(replyAction)
-        .build();
-</pre>
-
-<p>Now, when the user selects "Reply" from an Android wearable, the system prompts the user
-    for voice input (and shows the list of pre-defined replies, if provided).
-    Once the user completes a response, the system invokes
-    the <code><a href="/reference/android/content/Intent.html">Intent</a></code> attached to the action and adds the
-<code>EXTRA_VOICE_REPLY</code> extra (the string
-    you passed to the
-  <a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html"><code>RemoteInput.Builder</code></a> constructor)
-    with the user's message as the string value.</p>
-
-
-
-
-</body>
-</html>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/notifications/remote-input.jd b/docs/html/wear/notifications/remote-input.jd
new file mode 100644
index 0000000..1668363
--- /dev/null
+++ b/docs/html/wear/notifications/remote-input.jd
@@ -0,0 +1,213 @@
+page.title=Receiving Voice Input from a Notification
+
+@jd:body
+
+<img src="{@docRoot}wear/images/13_voicereply.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
+
+<img src="{@docRoot}wear/images/03_actions.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
+
+<p>If your notification includes an action to respond with text,
+    such as to reply to an email, it should normally launch an activity
+    on the handheld device. However, when your notification appears on an Android wearable, you can
+    allow users to dictate a reply with voice input. You can also provide pre-defined text
+    messages for the user to select.</p>
+
+<p>When the user replies with voice or selects one of the available
+messages, the system sends the message to your app on the connected handheld device.
+The message is attached as an extra in the {@link android.content.Intent} you specified
+to be used for the notification action.</p>
+
+<p class="note"><strong>Note:</strong> When developing with the Android emulator,
+you must type text replies into the voice input field, so be sure you have enabled
+<strong>Hardware keyboard present</strong> in the AVD settings.</p>
+
+
+<h2 id="RemoteInput">Define the Remote Input</h2>
+
+<p>To create an action that supports voice input, first create an instance of
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html">
+<code>RemoteInput</code></a> using the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html"><code>RemoteInput.Builder</code></a> APIs.
+    The
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html"><code>RemoteInput.Builder</code></a> constructor takes a string that the system
+    will use as a key for the {@link android.content.Intent} extra that carries the reply message
+    to your app on the handheld.</p>
+
+<p>For example, here's how to create a new
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html">
+<code>RemoteInput</code></a> object that provides a custom
+    label for the voice input prompt:</p>
+
+<pre class="prettyprint">
+// Key for the string that's delivered in the action's intent
+private static final String EXTRA_VOICE_REPLY = "extra_voice_reply";
+
+String replyLabel = getResources().getString(R.string.reply_label);
+
+RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
+        .setLabel(replyLabel)
+        .build();
+</pre>
+
+
+<h3>Add Pre-defined Text Responses</h3>
+
+<img src="{@docRoot}wear/images/12_voicereply.png" height="200" style="float:right;margin:0 0 20px 40px" />
+
+<p>In addition to allowing voice input, you can
+    provide up to five text responses that the user can select for quick replies. Call
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html#setChoices(java.lang.String[])"><code>setChoices()</code></a> and pass it a string array.</p>
+
+<p>For example, you may define some responses in a resource array:</p>
+
+<p class="code-caption">res/values/strings.xml</code>
+<pre class="prettyprint">
+&lt;?xml version="1.0" encoding="utf-8"?>
+&lt;resources>
+    &lt;string-array name="reply_choices">
+        &lt;item>Yes&lt;/item>
+        &lt;item>No&lt;/item>
+        &lt;item>Maybe&lt;/item>
+    &lt;/string-array>
+&lt;/resources>
+</pre>
+
+<p>Then, inflate the string array and add it to the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a>:</p>
+
+<pre>
+String replyLabel = getResources().getString(R.string.reply_label);
+String[] replyChoices = getResources().getStringArray(R.array.reply_choices);
+
+RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
+        .setLabel(replyLabel)
+        .setChoices(replyChoices)
+        .build();
+</pre>
+
+
+
+
+<h2 id="PrimaryAction">Receive Voice Input for the Primary Action</h2>
+
+<p>If "Reply" is your notification's primary action (defined by the {@link
+android.support.v4.app.NotificationCompat.Builder#setContentIntent setContentIntent()}
+method), then you should attach the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> to the main action using
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addRemoteInputForContentIntent(android.preview.support.wearable.notifications.RemoteInput)">
+<code>addRemoteInputForContentIntent()</code></a>. For example:</p>
+
+<pre>
+// Create intent for reply action
+Intent replyIntent = new Intent(this, ReplyActivity.class);
+PendingIntent replyPendingIntent =
+        PendingIntent.getActivity(this, 0, replyIntent, 0);
+
+// Build the notification
+NotificationCompat.Builder replyNotificationBuilder =
+        new NotificationCompat.Builder(this)
+        .setSmallIcon(R.drawable.ic_new_message)
+        .setContentTitle("Message from Travis")
+        .setContentText("I love key lime pie!")
+        .setContentIntent(replyPendingIntent);
+
+// Create the remote input
+RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
+        .setLabel(replyLabel)
+        .build();
+
+// Create wearable notification and add remote input
+Notification replyNotification =
+        new WearableNotifications.Builder(replyNotificationBuilder)
+        .addRemoteInputForContentIntent(remoteInput)
+        .build();
+</pre>
+
+
+<p>By using
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addRemoteInputForContentIntent(android.preview.support.wearable.notifications.RemoteInput)">
+<code>addRemoteInputForContentIntent()</code></a> to add the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> object to the notification's primary action,
+the button that normally appears as an "Open" action becomes the "Reply" action
+and starts the voice input UI when users select it on Android Wear.</p>
+
+
+
+<h2 id="NewAction">Receive Voice Input for a Secondary Action</h2>
+
+<p>If the "Reply" action is not your notification's primary action and you want to enable
+voice input for a secondary action, add the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> to a new action button defined by an
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
+<code>Action</code></a> object.</p>
+
+<p>You should instantiate the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
+<code>Action</code></a> with the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html"><code>Action.Builder()</code></a>
+constructor, which takes an icon and text label for the action button, plus the
+{@link android.app.PendingIntent}
+the system should use to invoke your app when the user selects the action. For example:</p>
+
+<pre>
+// Create the pending intent to fire when the user selects the action
+Intent replyIntent = new Intent(this, ReplyActivity.class);
+PendingIntent pendingReplyIntent =
+        PendingIntent.getActivity(this, 0, replyIntent, 0);
+
+// Create the remote input
+RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)
+        .setLabel(replyLabel)
+        .build();
+
+// Create the notification action
+Action replyAction = new Action.Builder(R.drawable.ic_message,
+        "Reply", pendingIntent)
+        .addRemoteInput(remoteInput)
+        .build();
+</pre>
+
+
+<p>After you add the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.html"><code>RemoteInput</code></a> to the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
+<code>Action</code></a>, add the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">
+<code>Action</code></a> to the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html"><code>WearableNotifications.Builder</code></a> using
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#addAction(Action)"><code>addAction()</code></a>.
+For example:</p>
+
+<pre>
+// Create basic notification builder
+NotificationCompat.Builder replyNotificationBuilder =
+        new NotificationCompat.Builder(this)
+        .setContentTitle("New message");
+
+// Create the notification action and add remote input
+Action replyAction = new Action.Builder(R.drawable.ic_message,
+        "Reply", pendingIntent)
+        .addRemoteInput(remoteInput)
+        .build();
+
+// Create wearable notification and add action
+Notification replyNotification =
+        new WearableNotifications.Builder(replyNotificationBuilder)
+        .addAction(replyAction)
+        .build();
+</pre>
+
+<p>Now, when the user selects "Reply" from an Android wearable, the system prompts the user
+    for voice input (and shows the list of pre-defined replies, if provided).
+    Once the user completes a response, the system invokes
+    the {@link android.content.Intent} attached to the action and adds the
+<code>EXTRA_VOICE_REPLY</code> extra (the string
+    you passed to the
+  <a href="{@docRoot}reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html"><code>RemoteInput.Builder</code></a> constructor)
+    with the user's message as the string value.</p>
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/wear/notifications/stacks.html b/docs/html/wear/notifications/stacks.html
deleted file mode 100644
index e4f74a0..0000000
--- a/docs/html/wear/notifications/stacks.html
+++ /dev/null
@@ -1,512 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Stacking Notifications | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Stacking Notifications</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <img src="/wear/images/11_bundles_B.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
-<img src="/wear/images/11_bundles_A.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
-
-<p>When creating notifications for a handheld device, you should always aggregate similar
-notifications into a single summary notification. For example, if your app creates notifications
-for received messages, you should not show more than one notification
-on a handheld device&mdash;when more than one is message is received, use a single notification
-to provide a summary such as "2 new messages."</p>
-
-<p>However, a summary notification is less useful on an Android wearable because users
-are not able to read details from each message on the wearable (they must open your app on the
-handheld to view more information). So for the wearable device, you should
-group all the notifications together in a stack. The stack of notifications appears as a single
-card, which users can expand to view the details from each notification separately. The new
-<a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setGroup(java.lang.String, int)">
-<code>setGroup()</code></a> method makes this possible while allowing you to still provide
-only one summary notification on the handheld device.</p>
-
-<p>For details about designing notification stacks, see the
-<a href="/wear/design/index.html#NotificationStacks">Design Principles of Android
-Wear</a>.</p>
-
-
-<h2 id="AddGroup">Add Each Notification to a Group</h2>
-
-<p>To create a stack, call <a
-href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setGroup(java.lang.String, int)">
-<code>setGroup()</code></a> for each notification you want in the stack, passing the same
-group key. For example:</p>
-
-<pre style="clear:right">
-final static String GROUP_KEY_EMAILS = "group_key_emails";
-
-NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
-         .setContentTitle("New mail from " + sender)
-         .setContentText(subject)
-         .setSmallIcon(R.drawable.new_mail);
-
-Notification notif = new WearableNotifications.Builder(builder)
-         .setGroup(GROUP_KEY_EMAILS)
-         .build();
-</pre>
-
-<p>By default, notifications appear in the order in which you added them, with the most recent
-  notification visible at the top.  You can define a specific position in the group
-  by passing an order position as the second parameter for <a
-href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setGroup(java.lang.String, int)">
-<code>setGroup()</code></a>.</p>
-
-
-<h2 id="AddSummary">Add a Summary Notification</h2>
-
-<p>It's important that you still provide a summary notification that appears on handheld devices.
-So in addition to adding each unique notification to the same stack group, also add a summary
-notification, but set its order position to be <a
-href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html#GROUP_ORDER_SUMMARY"><code>GROUP_ORDER_SUMMARY</code></a>.</p>
-
-<pre>
-Notification summaryNotification = new WearableNotifications.Builder(builder)
-         .setGroup(GROUP_KEY_EMAILS, WearableNotifications.GROUP_ORDER_SUMMARY)
-         .build();
-</pre>
-
-<p>This notification will not appear in your stack of notifications on the wearable, but
-appears as the only notification on the handheld device.
-
-</body>
-</html>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/notifications/stacks.jd b/docs/html/wear/notifications/stacks.jd
new file mode 100644
index 0000000..7f955f6
--- /dev/null
+++ b/docs/html/wear/notifications/stacks.jd
@@ -0,0 +1,72 @@
+page.title=Stacking Notifications
+
+@jd:body
+
+<img src="{@docRoot}wear/images/11_bundles_B.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
+<img src="{@docRoot}wear/images/11_bundles_A.png" height="200" width="169" style="float:right;margin:0 0 20px 40px" />
+
+<p>When creating notifications for a handheld device, you should always aggregate similar
+notifications into a single summary notification. For example, if your app creates notifications
+for received messages, you should not show more than one notification
+on a handheld device&mdash;when more than one is message is received, use a single notification
+to provide a summary such as "2 new messages."</p>
+
+<p>However, a summary notification is less useful on an Android wearable because users
+are not able to read details from each message on the wearable (they must open your app on the
+handheld to view more information). So for the wearable device, you should
+group all the notifications together in a stack. The stack of notifications appears as a single
+card, which users can expand to view the details from each notification separately. The new
+<a href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setGroup(java.lang.String, int)">
+<code>setGroup()</code></a> method makes this possible while allowing you to still provide
+only one summary notification on the handheld device.</p>
+
+<p>For details about designing notification stacks, see the
+<a href="{@docRoot}wear/design/index.html#NotificationStacks">Design Principles of Android
+Wear</a>.</p>
+
+
+<h2 id="AddGroup">Add Each Notification to a Group</h2>
+
+<p>To create a stack, call <a
+href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setGroup(java.lang.String, int)">
+<code>setGroup()</code></a> for each notification you want in the stack, passing the same
+group key. For example:</p>
+
+<pre style="clear:right">
+final static String GROUP_KEY_EMAILS = "group_key_emails";
+
+NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
+         .setContentTitle("New mail from " + sender)
+         .setContentText(subject)
+         .setSmallIcon(R.drawable.new_mail);
+
+Notification notif = new WearableNotifications.Builder(builder)
+         .setGroup(GROUP_KEY_EMAILS)
+         .build();
+</pre>
+
+<p>By default, notifications appear in the order in which you added them, with the most recent
+  notification visible at the top.  You can define a specific position in the group
+  by passing an order position as the second parameter for <a
+href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html#setGroup(java.lang.String, int)">
+<code>setGroup()</code></a>.</p>
+
+
+<h2 id="AddSummary">Add a Summary Notification</h2>
+
+<p>It's important that you still provide a summary notification that appears on handheld devices.
+So in addition to adding each unique notification to the same stack group, also add a summary
+notification, but set its order position to be <a
+href="{@docRoot}reference/android/preview/support/wearable/notifications/WearableNotifications.html#GROUP_ORDER_SUMMARY"><code>GROUP_ORDER_SUMMARY</code></a>.</p>
+
+<pre>
+Notification summaryNotification = new WearableNotifications.Builder(builder)
+         .setGroup(GROUP_KEY_EMAILS, WearableNotifications.GROUP_ORDER_SUMMARY)
+         .build();
+</pre>
+
+<p>This notification will not appear in your stack of notifications on the wearable, but
+appears as the only notification on the handheld device.
+
+</body>
+</html>
diff --git a/docs/html/wear/preview/signup.html b/docs/html/wear/preview/signup.html
deleted file mode 100644
index ca50179..0000000
--- a/docs/html/wear/preview/signup.html
+++ /dev/null
@@ -1,609 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Sign Up for the Developer Preview | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Sign Up for the Developer Preview</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <p>To get started with the Android Wear Developer Preview, you must agree to the
-  following terms and conditions and provide the email address for your Google account.
-After signing up, you’ll have access to:</p>
-<ul>
-  <li>New APIs that allow you to build enhanced notifications for wearables.</li>
-  <li>Sample code using the new APIs.</li>
-  <li>The Android Wear Preview app that delivers your notifications to the Android Wear emulator.</li>
-</ul>
-
-<div class="sdk-terms" style="width:678px" onfocus="this.blur()"><div class="sdk-terms-padding">
-This is the Android Wear Developer Preview License Agreement.
-
-1. Introduction
-
-1.1 The Android Wear Developer Preview Kit (referred to in this License Agreement as the “Developer Preview” and specifically including the Android system files, packaged APIs, Developer Preview library files, and the Developer Preview companion app, if and when they are made available) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Developer Preview.
-
-1.2 "Android Wear" means the Android Wear devices and the Android Wear software stack for use on Android Wear devices.
-
-1.3 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Accepting this License Agreement
-
-2.1 In order to use the Developer Preview, you must first agree to this License Agreement. You may not use the Developer Preview if you do not accept this License Agreement.
-
-2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
-
-2.3 You may not use the Developer Preview and may not accept the License Agreement if you are a person barred from receiving the Developer Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Developer Preview.
-
-2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Developer Preview on behalf of your employer or other entity.
-
-3. Developer Preview License from Google
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, internal-use, non-assignable and non-exclusive license to use the Developer Preview solely to develop applications to run on the Android Wear platform for Android Wear devices.
-
-3.2 You agree that Google or third parties own all legal right, title and interest in and to the Developer Preview, including any Intellectual Property Rights that subsist in the Developer Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.3 You may not use the Developer Preview for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Developer Preview or any part of the Developer Preview; or (b) load any part of the Developer Preview onto a mobile handset or wearable computing device or any other hardware device except an Android Wear device, combine any part of the Developer Preview with other software, or distribute any software or device incorporating a part of the Developer Preview.
-
-3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android Wear, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Developer Preview.
-
-3.5 Use, reproduction and distribution of components of the Developer Preview licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
-
-3.6 You agree that the form and nature of the Developer Preview that Google provides may change without prior notice to you and that future versions of the Developer Preview may be incompatible with applications developed on previous versions of the Developer Preview. You agree that Google may stop (permanently or temporarily) providing the Developer Preview (or any features within the Developer Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Developer Preview.
-
-3.9 Your use of any Android system files, packaged APIs, or other components of the Developer Preview which are part of the Android Software Development Kit is subject to the terms of the Android Software Development Kit License Agreement located at http://developer.android.com/sdk/terms.html. These terms are hereby incorporated by reference into this License Agreement.
-
-4. Use of the Developer Preview by You
-
-4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Developer Preview, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the Developer Preview and write applications only for purposes that are permitted by (a) this License Agreement, (b) the Google Play Developer Program Policies located at https://play.google.com/about/developer-content-policy.html, and hereby incorporated into this License Agreement by reference), and (c) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).  You agree to use reasonable efforts to comply with the Android Wear Platform Design Guide available on the Android Wear developer website
-
-4.3 You agree that if you use the Developer Preview to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the Developer Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android Wear and/or applications for Android Wear, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-4.7 Unless otherwise specified in writing by Google, Google does not intend use of Android Wear to create obligations under the Health Insurance Portability and Accountability Act, as amended, (“HIPAA”), and makes no representations that Android Wear satisfies HIPAA requirements. If you are (or become) a Covered Entity or Business Associate under HIPAA, you agree not to use Android Wear for any purpose or in any manner involving Protected Health Information unless you have received prior written consent to such use from Google.
-
-4.8 The Developer Preview is in development, and your testing and feedback are an important part of the development process. By using the Developer Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Developer Preview, Android Wear devices, Android Wear system software, or Android Wear services having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Developer Preview as this Developer Preview will no longer be supported after the official SDK is released.
-
-5. Your Developer Credentials
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-6. Privacy and Information
-
-6.1 In order to continually innovate and improve the Developer Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Developer Preview are being used and how they are being used. Before any of this information is collected, the Developer Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the Developer Preview and is maintained in accordance with Google's Privacy Policy lcoated at http://www.google.com/policies/privacy/.
-
-7. Third Party Applications
-
-7.1 If you use the Developer Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
-
-8. Using Google APIs
-
-8.1 Google APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-9. Terminating this License Agreement
-
-9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Developer Preview and any relevant developer credentials.
-
-9.3 Google may at any time, terminate this License Agreement with you if:
-(A) you have breached any provision of this License Agreement; or
-(B) Google is required to do so by law; or
-(C) the partner with whom Google offered certain parts of Developer Preview (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Developer Preview to you; or
-(D) Google decides to no longer provide the Developer Preview or certain parts of the Developer Preview to users in the country in which you are resident or from which you use the service, or the provision of the Developer Preview or certain Developer Preview services to you by Google is, in Google's sole discretion, no longer commercially viable.
-
-9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
-
-10. DISCLAIMER OF WARRANTIES
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE DEVELOPER PREVIEW IS AT YOUR SOLE RISK AND THAT THE DEVELOPER PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE DEVELOPER PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE DEVELOPER PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-11. LIMITATION OF LIABILITY
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-12. Indemnification
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Developer Preview, (b) any application you develop on the Developer Preview that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
-
-13. Changes to the License Agreement
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Developer Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Developer Preview is made available.
-
-14. General Legal Terms
-
-14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Developer Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Developer Preview.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE DEVELOPER PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE DEVELOPER PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
-
-14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-
-
-</div></div>
-
-
-<p class="caution">
-  <strong>Important:</strong> Your email address is used to provide your Google account
-  access to the Android Wear Preview app Beta Preview on Google Play Store. As such, the
-  email address you provide below must be for the account you use to download apps on Google Play Store.
-  We may also use your email address to provide you with updates about the Android Wear
-  platform release.
-</p>
-
-<iframe src="https://docs.google.com/forms/d/1iSJ084kEkV242cZisNMnj6G8qpi9r_zdEyfXA-hB1ao/viewform?embedded=true" width="100%" height="540" frameborder="0" marginheight="0" marginwidth="0" id="signupform">Loading...</iframe>
-
-
-
-
-</body>
-</html>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/preview/signup.jd b/docs/html/wear/preview/signup.jd
new file mode 100644
index 0000000..8e8ec9a
--- /dev/null
+++ b/docs/html/wear/preview/signup.jd
@@ -0,0 +1,169 @@
+page.title=Sign Up for the Developer Preview
+
+@jd:body
+
+<p>To get started with the Android Wear Developer Preview, you must agree to the
+  following terms and conditions and provide the email address for your Google account.
+After signing up, you’ll have access to:</p>
+<ul>
+  <li>New APIs that allow you to build enhanced notifications for wearables.</li>
+  <li>Sample code using the new APIs.</li>
+  <li>The Android Wear Preview app that delivers your notifications to the Android Wear emulator.</li>
+</ul>
+
+<div class="sdk-terms" style="width:678px" onfocus="this.blur()"><div class="sdk-terms-padding">
+This is the Android Wear Developer Preview License Agreement.
+
+1. Introduction
+
+1.1 The Android Wear Developer Preview Kit (referred to in this License Agreement as the “Developer Preview” and specifically including the Android system files, packaged APIs, Developer Preview library files, and the Developer Preview companion app, if and when they are made available) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Developer Preview.
+
+1.2 "Android Wear" means the Android Wear devices and the Android Wear software stack for use on Android Wear devices.
+
+1.3 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting this License Agreement
+
+2.1 In order to use the Developer Preview, you must first agree to this License Agreement. You may not use the Developer Preview if you do not accept this License Agreement.
+
+2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+
+2.3 You may not use the Developer Preview and may not accept the License Agreement if you are a person barred from receiving the Developer Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Developer Preview.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Developer Preview on behalf of your employer or other entity.
+
+3. Developer Preview License from Google
+
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, internal-use, non-assignable and non-exclusive license to use the Developer Preview solely to develop applications to run on the Android Wear platform for Android Wear devices.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the Developer Preview, including any Intellectual Property Rights that subsist in the Developer Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the Developer Preview for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Developer Preview or any part of the Developer Preview; or (b) load any part of the Developer Preview onto a mobile handset or wearable computing device or any other hardware device except an Android Wear device, combine any part of the Developer Preview with other software, or distribute any software or device incorporating a part of the Developer Preview.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android Wear, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Developer Preview.
+
+3.5 Use, reproduction and distribution of components of the Developer Preview licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+
+3.6 You agree that the form and nature of the Developer Preview that Google provides may change without prior notice to you and that future versions of the Developer Preview may be incompatible with applications developed on previous versions of the Developer Preview. You agree that Google may stop (permanently or temporarily) providing the Developer Preview (or any features within the Developer Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Developer Preview.
+
+3.9 Your use of any Android system files, packaged APIs, or other components of the Developer Preview which are part of the Android Software Development Kit is subject to the terms of the Android Software Development Kit License Agreement located at http://developer.android.com/sdk/terms.html. These terms are hereby incorporated by reference into this License Agreement.
+
+4. Use of the Developer Preview by You
+
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Developer Preview, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the Developer Preview and write applications only for purposes that are permitted by (a) this License Agreement, (b) the Google Play Developer Program Policies located at https://play.google.com/about/developer-content-policy.html, and hereby incorporated into this License Agreement by reference), and (c) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).  You agree to use reasonable efforts to comply with the Android Wear Platform Design Guide available on the Android Wear developer website
+
+4.3 You agree that if you use the Developer Preview to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the Developer Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android Wear and/or applications for Android Wear, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+4.7 Unless otherwise specified in writing by Google, Google does not intend use of Android Wear to create obligations under the Health Insurance Portability and Accountability Act, as amended, (“HIPAA”), and makes no representations that Android Wear satisfies HIPAA requirements. If you are (or become) a Covered Entity or Business Associate under HIPAA, you agree not to use Android Wear for any purpose or in any manner involving Protected Health Information unless you have received prior written consent to such use from Google.
+
+4.8 The Developer Preview is in development, and your testing and feedback are an important part of the development process. By using the Developer Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Developer Preview, Android Wear devices, Android Wear system software, or Android Wear services having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Developer Preview as this Developer Preview will no longer be supported after the official SDK is released.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the Developer Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Developer Preview are being used and how they are being used. Before any of this information is collected, the Developer Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the Developer Preview and is maintained in accordance with Google's Privacy Policy lcoated at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the Developer Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating this License Agreement
+
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Developer Preview and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+(A) you have breached any provision of this License Agreement; or
+(B) Google is required to do so by law; or
+(C) the partner with whom Google offered certain parts of Developer Preview (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Developer Preview to you; or
+(D) Google decides to no longer provide the Developer Preview or certain parts of the Developer Preview to users in the country in which you are resident or from which you use the service, or the provision of the Developer Preview or certain Developer Preview services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+
+10. DISCLAIMER OF WARRANTIES
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE DEVELOPER PREVIEW IS AT YOUR SOLE RISK AND THAT THE DEVELOPER PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE DEVELOPER PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE DEVELOPER PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Developer Preview, (b) any application you develop on the Developer Preview that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Developer Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Developer Preview is made available.
+
+14. General Legal Terms
+
+14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Developer Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Developer Preview.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE DEVELOPER PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE DEVELOPER PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+
+</div></div>
+
+
+<p class="caution">
+  <strong>Important:</strong> Your email address is used to provide your Google account
+  access to the Android Wear Preview app Beta Preview on Google Play Store. As such, the
+  email address you provide below must be for the account you use to download apps on Google Play Store.
+  We may also use your email address to provide you with updates about the Android Wear
+  platform release.
+</p>
+
+<iframe src="https://docs.google.com/forms/d/1iSJ084kEkV242cZisNMnj6G8qpi9r_zdEyfXA-hB1ao/viewform?embedded=true" width="100%" height="540" frameborder="0" marginheight="0" marginwidth="0" id="signupform">Loading...</iframe>
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/wear/preview/start.html b/docs/html/wear/preview/start.html
deleted file mode 100644
index b1861f5..0000000
--- a/docs/html/wear/preview/start.html
+++ /dev/null
@@ -1,693 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Get Started with the Developer Preview | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-
-<body class="gc-documentation 
-  " itemscope itemtype="http://schema.org/Article">
-
-
-  
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo-wear">
-          <a href="/wear/index.html">
-            <img src="/wear/images/android-wear.png" height="16" alt="Android Wear" />
-          </a>
-          </div>
-
-
-	<div class="col-8" style="margin:0"><h1 style="margin:1px 0 0 20px;padding:0;line-height:16px;
-  color:#666;font-weight:100;font-size:24px;">Developer Preview</h1></div>
-            
-
-          <!-- New Search -->
-          <div class="menu-container">
-            <div class="moremenu">
-	        <div id="more-btn"></div>
-	    </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div><!-- end mid -->
-    <div class="bottom"></div>
-  </div><!-- end morehover -->
-
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div><!--  end search -->
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-      <div class="child-card samples no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div><!-- end search_filtered_wrapper -->
-
-  </div>
-  <!-- end menu_container -->
-
-
-        </div><!-- end header-wrap -->
-    </div>
-    <!-- /Header -->
-
-
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-
-  
-
-  
-
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/preview/start.html">Get Started
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/user-interface.html">UI Overview
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/design/index.html">Design Principles
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/creating.html">Creating Notifications for Android Wear
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/remote-input.html">Receiving Voice Input from a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/pages.html">Adding Pages to a Notification
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/notifications/stacks.html">Stacking Notifications
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/reference/android/preview/support/package-summary.html">Notification Reference</a></div>
-    <ul class="tree-list-children">
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
-  <ul>
-<li><a href="/reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
-  </ul>
-</li>
-
-<li class="nav-section">
-<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
-<ul>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
-<li><a href="/reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
-
-<li><a href="/reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
-	</ul>
-  </li>
-</ul>
-</li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/wear/license.html">License Agreement</a></div>
-  </li>
-
-
-</ul>
-
-        
-
-      </div>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-
-
-<div class="col-12" id="doc-col" >
-
-
-  
-    
-      
-        <h1 itemprop="name" >Get Started with the Developer Preview</h1>
-      
-    
-  
-
-
-  
-  <div id="jd-content">
-
-
-    <div class="jd-descr" itemprop="articleBody">
-    <div class="cols">
-
-  <div class="col-5">
-<p>The Android Wear Developer Preview includes tools and APIs that allow you to
-enhance your app notifications
-to provide an optimized user experience on Android wearables.</p>
-
-<p>With the Android Wear Developer Preview, you can:</p>
-
-<ul>
-  <li>Run the Android Wear platform in the Android emulator.</li>
-  <li>Connect your Android device to the emulator and view notifications from the
-device as cards on Android Wear.</li>
-  <li>Try new APIs in the preview support library that enhance your app's notifications
-with features such as voice replies and notification pages.</li>
-</ul>
-
-<p>To get access to the Developer Preview tools,
-click the sign up button on the right, then follow the setup instructions below.</p>
-  </div>
-
-  <div class="col-7">
-<img src="/wear/images/laptop-bridge.png" width="400" height="222" alt="" />
-
-<a href="/wear/preview/signup.html" class="button" style="
-    width: 370px;
-    margin: 10px 0 20px;
-    font-weight: bold;
-    font-size: 16px;
-">Sign Up for the Developer Preview</a>
-
-<p>Signing up provides you access to:</p>
-<ul>
-<li>New notification APIs in the preview support library.</li>
-<li>Sample apps using the new notification APIs.</li>
-<li>The <em>Android Wear Preview</em> app for your mobile device, which connects
-your device to the Android Wear emulator.</li>
-</ul>
-
-  </div>
-</div>
-
-
-<p class="caution"><strong>Caution:</strong>
-The current Android Wear Developer Preview is intended for <b>development and testing purposes only</b>, not for production apps. Google may change this Developer Preview significantly prior to the official release of the Android Wear SDK. You may not publicly distribute or ship any application using this Developer Preview, as this Developer Preview will no longer be supported after the official SDK is released (which will cause applications based only on the Developer Preview to break).</p>
-
-
-
-
-<h2 id="Prereq">Prerequisites</h2>
-
-<p>Before you begin the setup, you must:</p>
-
-<ol>
-  <li><a href="/sdk/index.html"><b>Install the Android SDK</b></a>.
-  <p>The Android SDK includes all the developer tools required to build
-apps for Android (optional IDEs are also available for download).</p></li>
-  <li><a href="/wear/preview/signup.html"><b>Sign up for the Android Wear Developer Preview</b></a>.
-  <p>You must sign up with a Gmail or other Google account in order to download the
-preview support library and receive access to the
-<em>Android Wear Preview</em> beta app on Google Play Store.</p></li>
-</ol>
-
-<p class="note"><strong>Note:</strong>
-If you're using the ADT plugin for Eclipse, you must update to version 22.6.1 or higher.
-If you're using Android Studio, you must update to version 0.5.1 or higher</p>
-
-
-
-<h2 id="Install">1. Install the Android Wear System Image</h2>
-
-
-<ol>
-  <li>Launch <a href="/tools/help/sdk-manager.html"
-    >Android SDK Manager</a>.
-  <ul>
-    <li>From Eclipse, select <b>Window > Android SDK Manager</b>.</li>
-    <li>From Android Studio, select <b>Tools > Android > SDK Manager</b>.</li>
-  </ul>
-  </li>
-  <li>Below Tools, verify that you have Android SDK Tools revision 22.6 or higher.
-    <p>If your version of Android SDK Tools is lower than 22.6, you must update:</p>
-    <ol>
-      <li>Select <strong>Android SDK Tools</strong>.</li>
-      <li>Click <strong>Install package</strong>.</li>
-      <li>Accept the license and click <strong>Install</strong>.</li>
-      <li>When the installation completes, restart Android SDK Manager.</li>
-    </ol>
-  </li>
-
-  <li>Below Android 4.4.2, select <strong>Android Wear ARM EABI v7a System Image</strong>.
-<p class="note"><strong>Note:</strong> Android Wear is designed to support multiple processor architectures.
-</p></li>
-  <li>Below Extras, ensure that you have the latest version of the
-<a href="/tools/support-library/index.html">Android Support Library</a>.
-    If an update is available, select <strong>Android Support Library</strong>. If you're using Android Studio, also select <strong>Android Support Repository</strong>.</li>
-  <li>Click <strong>Install packages</strong>.</li>
-  <li>Accept the license and click <strong>Install</strong>.</li>
-</ol>
-
-
-
-<h2 id="SetupEmulator">2. Set Up the Android Wear Emulator</h2>
-
-<ol>
-<li>Launch the <a href="/tools/help/avd-manager.html"
-  >Android Virtual Device Manager</a>.
-<ul>
-<li>From Eclipse, select <b>Window > Android Virtual Device Manager</b>.</li>
-<li>From Android Studio, select <b>Tools > Android > AVD Manager</b>.</li>
-</ul>
-</li>
-<li>Click <strong>New</strong>.</li>
-<li>For the AVD Name, enter "AndroidWearSquare" or "AndroidWearRound", depending on whether
-you want to create an emulator with a square or round display.</li>
-<li>For the Device, select <strong>Android Wear Square</strong> or
-	<strong>Android Wear Round</strong>.</li>
-<li>For the Target, select <strong>Android 4.4.2 - API Level 19</strong> (or higher).</li>
-<li>For the CPU/ABI, select <strong>Android Wear ARM (armeabi-v7a)</strong>.
-<p class="note"><strong>Note:</strong> Android Wear is designed to support multiple processor architectures.
-</p></li>
-<li>For the Skin, select <strong>AndroidWearSquare</strong> or
-<strong>AndroidWearRound</strong>.</li>
-<li>Leave all other options set to their defaults and click <strong>OK</strong>.
-  <p>Although real Android wearables do not provide a keyboard as an input method,
-    you should keep <strong>Hardware keyboard present</strong> selected so you can
-    provide text input on screens where users will instead provide voice input.</p>
-</li>
-<!--
-<li>Click <strong>Device Definitions</strong>.</li>
-<li>Select <strong>Android WearSquare</strong> then click <strong>Create AVD</strong>.</li>
-<li>Click <strong>OK</strong>.</li>
--->
-<li>In the list of AVDs, select the one you just created and click
- <strong>Start</strong>. In the following window, click <strong>Launch</strong>.</li>
-</ol>
-
-<p>The Android Wear emulator now starts. To begin testing your app's notifications,
-you must now pair the emulator to your development device
-that has the <em>Android Wear Preview</em> app installed.</p>
-
-<p class="note"><strong>Tip:</strong> To improve the emulator startup time, edit your AVD
-and enable <strong>Snapshot</strong> under Emulator Options. When you start the emulator,
-select <strong>Save to snapshot</strong> then click <strong>Launch</strong>. Once the emulator
-is running, close it to save a snapshot of the system.
-Start the AVD again, but select <strong>Launch from snapshot</strong> and
-deselect <strong>Save to snapshot</strong>.</p>
-
-<p class="caution"><strong>Caution:</strong> Do not install apps on the Android Wear emulator.
-The system does not support traditional Android apps and the result of running such apps is
-unpredictable.</p>
-
-
-
-<h2 id="SetupApp">3. Set Up the Android Wear Preview App</h2>
-
-<p>To view your app's notifications on the Android Wear emulator, you must have the
-<em>Android Wear Preview</em> app installed on your Android device (a phone or tablet).</p>
-
-<p>To receive the Android Wear Preview app, you must <a
-href="/wear/preview/signup.html">sign up for the Developer Preview</a> using the same
-Gmail or Google account you use with Google Play Store.</p>
-</p>
-
-<p class="note"><strong>Note:</strong> The <em>Android Wear Preview</em> app is compatible with
-    Android 4.3 and higher and is not available for the Android emulator.</p>
-
-<p>After you've signed up for the Developer Preview,
-  you'll receive a confirmation email that includes a link to opt-in to the
-  <em>Android Wear Preview</em> app beta program. Once you opt-in, it may take up to 24 hours for the
-  app to become available in Google Play Store.</p>
-
-<p>After you install the <em>Android Wear Preview</em> app, you can set up
-  your device to communicate with the Android Wear emulator:</p>
-
-<ol>
-<li>Open the <em>Android Wear Preview</em> app. You should see a notice that the app is currently
-  not enabled as a notification listener. Tap the message to open the system settings,
-  then select Android Wear Preview to grant it notification access.</li>
-<li>Connect your device to your development machine over USB. Be sure that no other
- Android devices are connected to the machine.</li>
-<li>Ensure that the Android Wear emulator (created in the previous section) is running.
-The emulator should show the time and an icon that indicates no device is connected.</li>
-<li>Open a command line terminal, navigate to your Android SDK's <code>platform-tools/</code>
-directory, then execute:
-<pre style="margin-top:.5em">adb -d forward tcp:5601 tcp:5601</pre>
-<p class="note"><strong>Note:</strong> You must execute this command each time you connect your
-device over USB.</p>
-</li>
-<li>Return to the Android Wear Preview app. It should now indicate that it is connected to
-  the emulator. The Android Wear emulator should now show the 'g' orb icon, indicating
-  that is is connected to your device.
-</ol>
-
-<p>Now, notifications from your device also appear in the Android Wear emulator.</p>
-
-
-
-
-<h2 id="AddLibrary">4. Add the Support Library to Your Project</h2>
-
-<p>The Android Wear preview support library includes several APIs that allow you to
-optimize your app's notifications for the Android Wear user experience.</p>
-
-<p>To receive the preview support library, you must <a
-href="/wear/preview/signup.html">sign up for the Developer Preview</a>. The
-confirmation email you receive after you sign up includes a link to download a ZIP file,
-which contains the preview support library and some sample apps.</p>
-
-<p>After you download and unzip the package, add the preview support library
-sto your Android project:</p>
-
-<p><b>If you're using Eclipse:</b></p>
-    <ol>
-      <li>In your Android app project, create a <code>libs/</code> directory in your project root
-    (the same location as the <code>AndroidManifest.xml</code> file).</li>
-      <li>Copy the v4 support library JAR file from your Android SDK directory (e.g.,
-        <code>&lt;sdk&gt;/extras/android/support/v4/android-support-v4.jar</code>) into your
-        project <code>libs/</code> directory.
-      <li>Also save the <code>wearable-preview-support.jar</code> file in the <code>libs/</code> directory.
-      <li>Right click each JAR file and select <strong>Build Path &gt; Add to Build Path</strong>.</li>
-    </ol>
-
- <p><b>If you're using Android Studio:</b></p>
-    <ol>
-     <li>In your Android app project, create a <code>libs/</code> directory in your project root
-    (the same location as the <code>AndroidManifest.xml</code> file).</li>
-      <li>Save the <code>wearable-preview-support.jar</code> file in the <code>libs/</code> directory.
-      <li>Open the <code>build.gradle</code> file in your app module.</li>
-      <li>Add a dependency rule for both the v4 support library and the Android Wear
-      preview support library:
-<pre>
-dependencies {
-    compile "com.android.support:support-v4:18.0.+"
-    compile files('../libs/wearable-preview-support.jar')
-}
-</pre>
-      </li>
-      <li>Click <strong>Sync Project with Gradle Files</strong> in the toolbar.</li>
-    </ol>
-
-<p>To start optimizing your notifications for Android Wear,
-  read <a href="/wear/notifications/creating.html"
-  >Creating Notifications for Android Wear</a>.</p>
-
-
-
-</body>
-</html>
-
-    </div>
-
-      <div class="content-footer layout-content-row"
-                    itemscope itemtype="http://schema.org/SiteNavigationElement">
-        <div class="layout-content-col col-9" style="padding-top:4px">
-          
-            <div class="g-plusone" data-size="medium"></div>
-          
-        </div>
-        
-        <div class="paging-links layout-content-col col-4">
-          
-        </div>
-        
-      </div>
-
-      
-      
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is 
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and 
-  restrictions, see the <a href="/license.html">Content 
-  License</a>.
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-<!-- Start of Tag -->
-<script type="text/javascript">
-var axel = Math.random() + "";
-var a = axel * 10000000000000;
-document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
-</script>
-<noscript>
-<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
-</noscript>
-<!-- End of Tag -->
-</body>
-</html>
-
-
-
diff --git a/docs/html/wear/preview/start.jd b/docs/html/wear/preview/start.jd
new file mode 100644
index 0000000..f8f0129
--- /dev/null
+++ b/docs/html/wear/preview/start.jd
@@ -0,0 +1,254 @@
+page.title=Get Started with the Developer Preview
+
+@jd:body
+
+
+<div class="cols">
+
+  <div class="col-5">
+<p>The Android Wear Developer Preview includes tools and APIs that allow you to
+enhance your app notifications
+to provide an optimized user experience on Android wearables.</p>
+
+<p>With the Android Wear Developer Preview, you can:</p>
+
+<ul>
+  <li>Run the Android Wear platform in the Android emulator.</li>
+  <li>Connect your Android device to the emulator and view notifications from the
+device as cards on Android Wear.</li>
+  <li>Try new APIs in the preview support library that enhance your app's notifications
+with features such as voice replies and notification pages.</li>
+</ul>
+
+<p>To get access to the Developer Preview tools,
+click the sign up button on the right, then follow the setup instructions below.</p>
+  </div>
+
+  <div class="col-7">
+<img src="/wear/images/laptop-bridge.png" width="400" height="222" alt="" />
+
+<a href="/wear/preview/signup.html" class="button" style="
+    width: 370px;
+    margin: 10px 0 20px;
+    font-weight: bold;
+    font-size: 16px;
+">Sign Up for the Developer Preview</a>
+
+<p>Signing up provides you access to:</p>
+<ul>
+<li>New notification APIs in the preview support library.</li>
+<li>Sample apps using the new notification APIs.</li>
+<li>The <em>Android Wear Preview</em> app for your mobile device, which connects
+your device to the Android Wear emulator.</li>
+</ul>
+
+  </div>
+</div>
+
+
+<p class="caution"><strong>Caution:</strong>
+The current Android Wear Developer Preview is intended for <b>development and testing purposes only</b>, not for production apps. Google may change this Developer Preview significantly prior to the official release of the Android Wear SDK. You may not publicly distribute or ship any application using this Developer Preview, as this Developer Preview will no longer be supported after the official SDK is released (which will cause applications based only on the Developer Preview to break).</p>
+
+
+
+
+<h2 id="Prereq">Prerequisites</h2>
+
+<p>Before you begin the setup, you must:</p>
+
+<ol>
+  <li><a href="{@docRoot}sdk/index.html"><b>Install the Android SDK</b></a>.
+  <p>The Android SDK includes all the developer tools required to build
+apps for Android (optional IDEs are also available for download).</p></li>
+  <li><a href="{@docRoot}wear/preview/signup.html"><b>Sign up for the Android Wear Developer Preview</b></a>.
+  <p>You must sign up with a Gmail or other Google account in order to download the
+preview support library and receive access to the
+<em>Android Wear Preview</em> beta app on Google Play Store.</p></li>
+</ol>
+
+<p class="note"><strong>Note:</strong>
+If you're using the ADT plugin for Eclipse, you must update to version 22.6.1 or higher.
+If you're using Android Studio, you must update to version 0.5.1 or higher</p>
+
+
+
+<h2 id="Install">1. Install the Android Wear System Image</h2>
+
+
+<ol>
+  <li>Launch <a href="{@docRoot}tools/help/sdk-manager.html"
+    >Android SDK Manager</a>.
+  <ul>
+    <li>From Eclipse, select <b>Window > Android SDK Manager</b>.</li>
+    <li>From Android Studio, select <b>Tools > Android > SDK Manager</b>.</li>
+  </ul>
+  </li>
+  <li>Below Tools, verify that you have Android SDK Tools revision 22.6 or higher.
+    <p>If your version of Android SDK Tools is lower than 22.6, you must update:</p>
+    <ol>
+      <li>Select <strong>Android SDK Tools</strong>.</li>
+      <li>Click <strong>Install package</strong>.</li>
+      <li>Accept the license and click <strong>Install</strong>.</li>
+      <li>When the installation completes, restart Android SDK Manager.</li>
+    </ol>
+  </li>
+
+  <li>Below Android 4.4.2, select <strong>Android Wear ARM EABI v7a System Image</strong>.
+<p class="note"><strong>Note:</strong> Android Wear is designed to support multiple processor architectures.
+</p></li>
+  <li>Below Extras, ensure that you have the latest version of the
+<a href="{@docRoot}tools/support-library/index.html">Android Support Library</a>.
+    If an update is available, select <strong>Android Support Library</strong>. If you're using Android Studio, also select <strong>Android Support Repository</strong>.</li>
+  <li>Click <strong>Install packages</strong>.</li>
+  <li>Accept the license and click <strong>Install</strong>.</li>
+</ol>
+
+
+
+<h2 id="SetupEmulator">2. Set Up the Android Wear Emulator</h2>
+
+<ol>
+<li>Launch the <a href="{@docRoot}tools/help/avd-manager.html"
+  >Android Virtual Device Manager</a>.
+<ul>
+<li>From Eclipse, select <b>Window > Android Virtual Device Manager</b>.</li>
+<li>From Android Studio, select <b>Tools > Android > AVD Manager</b>.</li>
+</ul>
+</li>
+<li>Click <strong>New</strong>.</li>
+<li>For the AVD Name, enter "AndroidWearSquare" or "AndroidWearRound", depending on whether
+you want to create an emulator with a square or round display.</li>
+<li>For the Device, select <strong>Android Wear Square</strong> or
+	<strong>Android Wear Round</strong>.</li>
+<li>For the Target, select <strong>Android 4.4.2 - API Level 19</strong> (or higher).</li>
+<li>For the CPU/ABI, select <strong>Android Wear ARM (armeabi-v7a)</strong>.
+<p class="note"><strong>Note:</strong> Android Wear is designed to support multiple processor architectures.
+</p></li>
+<li>For the Skin, select <strong>AndroidWearSquare</strong> or
+<strong>AndroidWearRound</strong>.</li>
+<li>Leave all other options set to their defaults and click <strong>OK</strong>.
+  <p>Although real Android wearables do not provide a keyboard as an input method,
+    you should keep <strong>Hardware keyboard present</strong> selected so you can
+    provide text input on screens where users will instead provide voice input.</p>
+</li>
+<!--
+<li>Click <strong>Device Definitions</strong>.</li>
+<li>Select <strong>Android WearSquare</strong> then click <strong>Create AVD</strong>.</li>
+<li>Click <strong>OK</strong>.</li>
+-->
+<li>In the list of AVDs, select the one you just created and click
+ <strong>Start</strong>. In the following window, click <strong>Launch</strong>.</li>
+</ol>
+
+<p>The Android Wear emulator now starts. To begin testing your app's notifications,
+you must now pair the emulator to your development device
+that has the <em>Android Wear Preview</em> app installed.</p>
+
+<p class="note"><strong>Tip:</strong> To improve the emulator startup time, edit your AVD
+and enable <strong>Snapshot</strong> under Emulator Options. When you start the emulator,
+select <strong>Save to snapshot</strong> then click <strong>Launch</strong>. Once the emulator
+is running, close it to save a snapshot of the system.
+Start the AVD again, but select <strong>Launch from snapshot</strong> and
+deselect <strong>Save to snapshot</strong>.</p>
+
+<p class="caution"><strong>Caution:</strong> Do not install apps on the Android Wear emulator.
+The system does not support traditional Android apps and the result of running such apps is
+unpredictable.</p>
+
+
+
+<h2 id="SetupApp">3. Set Up the Android Wear Preview App</h2>
+
+<p>To view your app's notifications on the Android Wear emulator, you must have the
+<em>Android Wear Preview</em> app installed on your Android device (a phone or tablet).</p>
+
+<p>To receive the Android Wear Preview app, you must <a
+href="{@docRoot}wear/preview/signup.html">sign up for the Developer Preview</a> using the same
+Gmail or Google account you use with Google Play Store.</p>
+</p>
+
+<p class="note"><strong>Note:</strong> The <em>Android Wear Preview</em> app is compatible with
+    Android 4.3 and higher and is not available for the Android emulator.</p>
+
+<p>After you've signed up for the Developer Preview,
+  you'll receive a confirmation email that includes a link to opt-in to the
+  <em>Android Wear Preview</em> app beta program. Once you opt-in, it may take up to 24 hours for the
+  app to become available in Google Play Store.</p>
+
+<p>After you install the <em>Android Wear Preview</em> app, you can set up
+  your device to communicate with the Android Wear emulator:</p>
+
+<ol>
+<li>Open the <em>Android Wear Preview</em> app. You should see a notice that the app is currently
+  not enabled as a notification listener. Tap the message to open the system settings,
+  then select Android Wear Preview to grant it notification access.</li>
+<li>Connect your device to your development machine over USB. Be sure that no other
+ Android devices are connected to the machine.</li>
+<li>Ensure that the Android Wear emulator (created in the previous section) is running.
+The emulator should show the time and an icon that indicates no device is connected.</li>
+<li>Open a command line terminal, navigate to your Android SDK's <code>platform-tools/</code>
+directory, then execute:
+<pre style="margin-top:.5em">adb -d forward tcp:5601 tcp:5601</pre>
+<p class="note"><strong>Note:</strong> You must execute this command each time you connect your
+device over USB.</p>
+</li>
+<li>Return to the Android Wear Preview app. It should now indicate that it is connected to
+  the emulator. The Android Wear emulator should now show the 'g' orb icon, indicating
+  that is is connected to your device.
+</ol>
+
+<p>Now, notifications from your device also appear in the Android Wear emulator.</p>
+
+
+
+
+<h2 id="AddLibrary">4. Add the Support Library to Your Project</h2>
+
+<p>The Android Wear preview support library includes several APIs that allow you to
+optimize your app's notifications for the Android Wear user experience.</p>
+
+<p>To receive the preview support library, you must <a
+href="{@docRoot}wear/preview/signup.html">sign up for the Developer Preview</a>. The
+confirmation email you receive after you sign up includes a link to download a ZIP file,
+which contains the preview support library and some sample apps.</p>
+
+<p>After you download and unzip the package, add the preview support library
+sto your Android project:</p>
+
+<p><b>If you're using Eclipse:</b></p>
+    <ol>
+      <li>In your Android app project, create a <code>libs/</code> directory in your project root
+    (the same location as the <code>AndroidManifest.xml</code> file).</li>
+      <li>Copy the v4 support library JAR file from your Android SDK directory (e.g.,
+        <code>&lt;sdk&gt;/extras/android/support/v4/android-support-v4.jar</code>) into your
+        project <code>libs/</code> directory.
+      <li>Also save the <code>wearable-preview-support.jar</code> file in the <code>libs/</code> directory.
+      <li>Right click each JAR file and select <strong>Build Path &gt; Add to Build Path</strong>.</li>
+    </ol>
+
+ <p><b>If you're using Android Studio:</b></p>
+    <ol>
+     <li>In your Android app project, create a <code>libs/</code> directory in your project root
+    (the same location as the <code>AndroidManifest.xml</code> file).</li>
+      <li>Save the <code>wearable-preview-support.jar</code> file in the <code>libs/</code> directory.
+      <li>Open the <code>build.gradle</code> file in your app module.</li>
+      <li>Add a dependency rule for both the v4 support library and the Android Wear
+      preview support library:
+<pre>
+dependencies {
+    compile "com.android.support:support-v4:18.0.+"
+    compile files('../libs/wearable-preview-support.jar')
+}
+</pre>
+      </li>
+      <li>Click <strong>Sync Project with Gradle Files</strong> in the toolbar.</li>
+    </ol>
+
+<p>To start optimizing your notifications for Android Wear,
+  read <a href="{@docRoot}wear/notifications/creating.html"
+  >Creating Notifications for Android Wear</a>.</p>
+
+
+
+</body>
+</html>
diff --git a/docs/html/wear/wear_toc.cs b/docs/html/wear/wear_toc.cs
new file mode 100644
index 0000000..65ac2e9
--- /dev/null
+++ b/docs/html/wear/wear_toc.cs
@@ -0,0 +1,74 @@
+<ul id="nav">
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/preview/start.html">Get Started
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/design/user-interface.html">UI Overview
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/design/index.html">Design Principles
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/notifications/creating.html">Creating Notifications for Android Wear
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/notifications/remote-input.html">Receiving Voice Input from a Notification
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/notifications/pages.html">Adding Pages to a Notification
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/notifications/stacks.html">Stacking Notifications
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="<?cs var:toroot ?>reference/android/preview/support/package-summary.html">Notification Reference</a></div>
+    <ul class="tree-list-children">
+<li class="nav-section">
+<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.v4.app">android.preview.support.v4.app</span></div>
+  <ul>
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/v4/app/NotificationManagerCompat.html">NotificationManagerCompat</a></li>
+  </ul>
+</li>
+
+<li class="nav-section">
+<div class="nav-section-header-ref"><span class="tree-list-subtitle package" title="android.preview.support.wearable.notifications">android.preview.support.wearable.notifications</span></div>
+<ul>
+
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/wearable/notifications/RemoteInput.html">RemoteInput</a></li>
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/wearable/notifications/RemoteInput.Builder.html" >RemoteInput.Builder</a></li>
+
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/wearable/notifications/WearableNotifications.html">WearableNotifications</a></li>
+
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/wearable/notifications/WearableNotifications.Action.html">WearableNotifications.Action</a></li>
+
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/wearable/notifications/WearableNotifications.Action.Builder.html">WearableNotifications.Action.Builder</a></li>
+
+<li><a href="<?cs var:toroot ?>reference/android/preview/support/wearable/notifications/WearableNotifications.Builder.html">WearableNotifications.Builder</a></li>
+	</ul>
+  </li>
+</ul>
+</li>
+
+
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>wear/license.html">License Agreement</a></div>
+  </li>
+
+
+</ul>
diff --git a/docs/image_sources/gcm/CCS-ack.graffle b/docs/image_sources/gcm/CCS-ack.graffle
new file mode 100644
index 0000000..addd456
--- /dev/null
+++ b/docs/image_sources/gcm/CCS-ack.graffle
@@ -0,0 +1,1580 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGrafflePro</string>
+		<string>139.18.0.187838</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {576.00002479553223, 733}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>FontInfo</key>
+		<dict>
+			<key>Font</key>
+			<string>Helvetica</string>
+			<key>Size</key>
+			<real>12</real>
+		</dict>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2013-08-08 01:54:22 +0000</string>
+	<key>Creator</key>
+	<string>Katie McCormick</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{89, 329}, {169, 44}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>250</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 Now app server can send\
+message no. 101}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{102, 266}, {114, 44}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>249</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 App server waits\
+for ack 1}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{153, 154}, {98, 44}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>244</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 Average\
+response time}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>226</integer>
+				<key>Position</key>
+				<real>0.375</real>
+			</dict>
+			<key>ID</key>
+			<integer>242</integer>
+			<key>Points</key>
+			<array>
+				<string>{263.00000095367432, 314.5}</string>
+				<string>{261, 99}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.112257</string>
+						<key>g</key>
+						<string>0.107007</string>
+						<key>r</key>
+						<string>0.934433</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>227</integer>
+				<key>Position</key>
+				<real>0.34722220897674561</real>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>227</integer>
+				<key>Position</key>
+				<real>0.3541666567325592</real>
+			</dict>
+			<key>ID</key>
+			<integer>241</integer>
+			<key>Points</key>
+			<array>
+				<string>{261, 99}</string>
+				<string>{262.50000071525574, 314.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.112257</string>
+						<key>g</key>
+						<string>0.107007</string>
+						<key>r</key>
+						<string>0.934433</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>226</integer>
+				<key>Position</key>
+				<real>0.375</real>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>227</integer>
+			</dict>
+			<key>ID</key>
+			<integer>240</integer>
+			<key>Points</key>
+			<array>
+				<string>{257.5, 336.5}</string>
+				<string>{288, 314.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.112257</string>
+						<key>g</key>
+						<string>0.107007</string>
+						<key>r</key>
+						<string>0.934433</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>239</integer>
+			<key>Points</key>
+			<array>
+				<string>{231, 288.50000116229057}</string>
+				<string>{231, 251.25}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.112257</string>
+						<key>g</key>
+						<string>0.107007</string>
+						<key>r</key>
+						<string>0.934433</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>238</integer>
+				<key>Position</key>
+				<real>0.56800001859664917</real>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>238</integer>
+			<key>Points</key>
+			<array>
+				<string>{231, 253}</string>
+				<string>{231, 315.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.112257</string>
+						<key>g</key>
+						<string>0.107007</string>
+						<key>r</key>
+						<string>0.934433</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{476, 33}, {49, 32}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>18</real>
+			</dict>
+			<key>ID</key>
+			<integer>230</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 CCS}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{243, 35}, {101, 32}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>18</real>
+			</dict>
+			<key>ID</key>
+			<integer>229</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 App Server}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>228</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 252}</string>
+				<string>{216, 252}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>227</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 314.5}</string>
+				<string>{216, 314.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>226</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 99}</string>
+				<string>{216, 99}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{393.69128000000001, 348.37441999999999}, {57, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>223</integer>
+			<key>Rotation</key>
+			<real>23</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 no. 101}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{290.12054000000001, 420.17102}, {60, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>14</real>
+			</dict>
+			<key>ID</key>
+			<integer>222</integer>
+			<key>Rotation</key>
+			<real>341</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 ack 100}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>220</integer>
+			<key>Points</key>
+			<array>
+				<string>{504, 351}</string>
+				<string>{288, 463}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{430.51697000000001, 279.19488999999999}, {44, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>14</real>
+			</dict>
+			<key>ID</key>
+			<integer>219</integer>
+			<key>Rotation</key>
+			<real>341</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 ack.. }</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{390.63733000000002, 258.42700000000002}, {44, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>14</real>
+			</dict>
+			<key>ID</key>
+			<integer>218</integer>
+			<key>Rotation</key>
+			<real>341</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 ack 2}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{290.74178999999998, 239.21059}, {57, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>217</integer>
+			<key>Rotation</key>
+			<real>23</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 no. 100}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{342.63623000000001, 185.82861}, {38, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>216</integer>
+			<key>Rotation</key>
+			<real>18</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 no...}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{361.60431, 234}, {44, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>14</real>
+			</dict>
+			<key>ID</key>
+			<integer>209</integer>
+			<key>Rotation</key>
+			<real>341</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 ack 1}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{351.16005999999999, 153.43960999999999}, {42, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>172</integer>
+			<key>Rotation</key>
+			<real>18</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 no. 2}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{363, 117}, {42, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>171</integer>
+			<key>Rotation</key>
+			<real>18</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 no. 1}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>169</integer>
+			<key>Points</key>
+			<array>
+				<string>{504, 200.62189000000001}</string>
+				<string>{288, 312.62189000000001}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>168</integer>
+			<key>Points</key>
+			<array>
+				<string>{504, 241.00763000000001}</string>
+				<string>{288, 353.00763000000001}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>167</integer>
+			<key>Points</key>
+			<array>
+				<string>{504, 279}</string>
+				<string>{288, 391}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>165</integer>
+			<key>Points</key>
+			<array>
+				<string>{289, 391}</string>
+				<string>{505, 492}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>164</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 353}</string>
+				<string>{504, 454}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>163</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 313}</string>
+				<string>{504, 414}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>162</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 180}</string>
+				<string>{504, 281}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>161</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 252}</string>
+				<string>{504, 353}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>160</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 139.5}</string>
+				<string>{504, 240.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>158</integer>
+				<key>Position</key>
+				<real>0.29398149251937866</real>
+			</dict>
+			<key>ID</key>
+			<integer>159</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 98.000000596046448}</string>
+				<string>{504, 199.00000476837158}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.934433</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>0.122713</string>
+					</dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>157</integer>
+				<key>Position</key>
+				<real>0.060185186564922333</real>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>158</integer>
+			<key>Points</key>
+			<array>
+				<string>{504, 72}</string>
+				<string>{504, 504}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>157</integer>
+			<key>Points</key>
+			<array>
+				<string>{288, 72}</string>
+				<string>{288, 504}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict>
+		<key>ShowsGrid</key>
+		<string>YES</string>
+	</dict>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2014-01-22 22:42:38 +0000</string>
+	<key>Modifier</key>
+	<string>Katie McCormick</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{612.00002479553223, 792}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{170, 139}, {1218, 882}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{40.5, 0}, {534.5, 364}}</string>
+		<key>Zoom</key>
+		<real>2</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>2</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
diff --git a/docs/image_sources/mediarouter/media-route-provider-framework.graffle/._data.plist b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/._data.plist
new file mode 100644
index 0000000..d82ea05
--- /dev/null
+++ b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/._data.plist
Binary files differ
diff --git a/docs/image_sources/mediarouter/media-route-provider-framework.graffle/._image1.png b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/._image1.png
new file mode 100644
index 0000000..3435e35
--- /dev/null
+++ b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/._image1.png
Binary files differ
diff --git a/docs/image_sources/mediarouter/media-route-provider-framework.graffle/data.plist b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/data.plist
new file mode 100644
index 0000000..07791df
--- /dev/null
+++ b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/data.plist
Binary files differ
diff --git a/docs/image_sources/mediarouter/media-route-provider-framework.graffle/image1.png b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/image1.png
new file mode 100644
index 0000000..d6e3e95
--- /dev/null
+++ b/docs/image_sources/mediarouter/media-route-provider-framework.graffle/image1.png
Binary files differ
diff --git a/docs/image_sources/mediarouter/media-router-framework.graffle/data.plist b/docs/image_sources/mediarouter/media-router-framework.graffle/data.plist
new file mode 100644
index 0000000..ffd8212
--- /dev/null
+++ b/docs/image_sources/mediarouter/media-router-framework.graffle/data.plist
Binary files differ
diff --git a/docs/image_sources/mediarouter/media-router-framework.graffle/image1.png b/docs/image_sources/mediarouter/media-router-framework.graffle/image1.png
new file mode 100644
index 0000000..d6e3e95
--- /dev/null
+++ b/docs/image_sources/mediarouter/media-router-framework.graffle/image1.png
Binary files differ
diff --git a/graphics/java/android/graphics/Matrix.java b/graphics/java/android/graphics/Matrix.java
index c8bcf26..66bf75c 100644
--- a/graphics/java/android/graphics/Matrix.java
+++ b/graphics/java/android/graphics/Matrix.java
@@ -352,13 +352,19 @@
     }
 
     /**
-     * Set the matrix to the concatenation of the two specified matrices,
-     * returning true if the the result can be represented. Either of the two
-     * matrices may also be the target matrix. this = a * b
+     * Set the matrix to the concatenation of the two specified matrices and
+     * return true.
+     *
+     * <p>Either of the two matrices may also be the target matrix, that is
+     * <code>matrixA.setConcat(matrixA, matrixB);</code> is valid.</p>
+     *
+     * <p class="note">In {@link android.os.Build.VERSION_CODES#GINGERBREAD_MR1} and below, this
+     * function returns true only if the result can be represented. In
+     * {@link android.os.Build.VERSION_CODES#HONEYCOMB} and above, it always returns true.</p>
      */
     public boolean setConcat(Matrix a, Matrix b) {
-        return native_setConcat(native_instance, a.native_instance,
-                                b.native_instance);
+        native_setConcat(native_instance, a.native_instance, b.native_instance);
+        return true;
     }
 
     /**
@@ -366,7 +372,8 @@
      * M' = M * T(dx, dy)
      */
     public boolean preTranslate(float dx, float dy) {
-        return native_preTranslate(native_instance, dx, dy);
+        native_preTranslate(native_instance, dx, dy);
+        return true;
     }
 
     /**
@@ -374,7 +381,8 @@
      * M' = M * S(sx, sy, px, py)
      */
     public boolean preScale(float sx, float sy, float px, float py) {
-        return native_preScale(native_instance, sx, sy, px, py);
+        native_preScale(native_instance, sx, sy, px, py);
+        return true;
     }
 
     /**
@@ -382,7 +390,8 @@
      * M' = M * S(sx, sy)
      */
     public boolean preScale(float sx, float sy) {
-        return native_preScale(native_instance, sx, sy);
+        native_preScale(native_instance, sx, sy);
+        return true;
     }
 
     /**
@@ -390,7 +399,8 @@
      * M' = M * R(degrees, px, py)
      */
     public boolean preRotate(float degrees, float px, float py) {
-        return native_preRotate(native_instance, degrees, px, py);
+        native_preRotate(native_instance, degrees, px, py);
+        return true;
     }
 
     /**
@@ -398,7 +408,8 @@
      * M' = M * R(degrees)
      */
     public boolean preRotate(float degrees) {
-        return native_preRotate(native_instance, degrees);
+        native_preRotate(native_instance, degrees);
+        return true;
     }
 
     /**
@@ -406,7 +417,8 @@
      * M' = M * K(kx, ky, px, py)
      */
     public boolean preSkew(float kx, float ky, float px, float py) {
-        return native_preSkew(native_instance, kx, ky, px, py);
+        native_preSkew(native_instance, kx, ky, px, py);
+        return true;
     }
 
     /**
@@ -414,7 +426,8 @@
      * M' = M * K(kx, ky)
      */
     public boolean preSkew(float kx, float ky) {
-        return native_preSkew(native_instance, kx, ky);
+        native_preSkew(native_instance, kx, ky);
+        return true;
     }
 
     /**
@@ -422,7 +435,8 @@
      * M' = M * other
      */
     public boolean preConcat(Matrix other) {
-        return native_preConcat(native_instance, other.native_instance);
+        native_preConcat(native_instance, other.native_instance);
+        return true;
     }
 
     /**
@@ -430,7 +444,8 @@
      * M' = T(dx, dy) * M
      */
     public boolean postTranslate(float dx, float dy) {
-        return native_postTranslate(native_instance, dx, dy);
+        native_postTranslate(native_instance, dx, dy);
+        return true;
     }
 
     /**
@@ -438,7 +453,8 @@
      * M' = S(sx, sy, px, py) * M
      */
     public boolean postScale(float sx, float sy, float px, float py) {
-        return native_postScale(native_instance, sx, sy, px, py);
+        native_postScale(native_instance, sx, sy, px, py);
+        return true;
     }
 
     /**
@@ -446,7 +462,8 @@
      * M' = S(sx, sy) * M
      */
     public boolean postScale(float sx, float sy) {
-        return native_postScale(native_instance, sx, sy);
+        native_postScale(native_instance, sx, sy);
+        return true;
     }
 
     /**
@@ -454,7 +471,8 @@
      * M' = R(degrees, px, py) * M
      */
     public boolean postRotate(float degrees, float px, float py) {
-        return native_postRotate(native_instance, degrees, px, py);
+        native_postRotate(native_instance, degrees, px, py);
+        return true;
     }
 
     /**
@@ -462,7 +480,8 @@
      * M' = R(degrees) * M
      */
     public boolean postRotate(float degrees) {
-        return native_postRotate(native_instance, degrees);
+        native_postRotate(native_instance, degrees);
+        return true;
     }
 
     /**
@@ -470,7 +489,8 @@
      * M' = K(kx, ky, px, py) * M
      */
     public boolean postSkew(float kx, float ky, float px, float py) {
-        return native_postSkew(native_instance, kx, ky, px, py);
+        native_postSkew(native_instance, kx, ky, px, py);
+        return true;
     }
 
     /**
@@ -478,7 +498,8 @@
      * M' = K(kx, ky) * M
      */
     public boolean postSkew(float kx, float ky) {
-        return native_postSkew(native_instance, kx, ky);
+        native_postSkew(native_instance, kx, ky);
+        return true;
     }
 
     /**
@@ -486,7 +507,8 @@
      * M' = other * M
      */
     public boolean postConcat(Matrix other) {
-        return native_postConcat(native_instance, other.native_instance);
+        native_postConcat(native_instance, other.native_instance);
+        return true;
     }
 
     /** Controlls how the src rect should align into the dst rect for
@@ -828,41 +850,41 @@
                                         float kx, float ky, float px, float py);
     private static native void native_setSkew(long native_object,
                                               float kx, float ky);
-    private static native boolean native_setConcat(long native_object,
-                                                   long native_a,
-                                                   long native_b);
-    private static native boolean native_preTranslate(long native_object,
-                                                      float dx, float dy);
-    private static native boolean native_preScale(long native_object,
-                                        float sx, float sy, float px, float py);
-    private static native boolean native_preScale(long native_object,
-                                                  float sx, float sy);
-    private static native boolean native_preRotate(long native_object,
-                                            float degrees, float px, float py);
-    private static native boolean native_preRotate(long native_object,
-                                                   float degrees);
-    private static native boolean native_preSkew(long native_object,
-                                        float kx, float ky, float px, float py);
-    private static native boolean native_preSkew(long native_object,
-                                                 float kx, float ky);
-    private static native boolean native_preConcat(long native_object,
-                                                   long native_other_matrix);
-    private static native boolean native_postTranslate(long native_object,
-                                                       float dx, float dy);
-    private static native boolean native_postScale(long native_object,
-                                        float sx, float sy, float px, float py);
-    private static native boolean native_postScale(long native_object,
-                                                   float sx, float sy);
-    private static native boolean native_postRotate(long native_object,
-                                            float degrees, float px, float py);
-    private static native boolean native_postRotate(long native_object,
-                                                    float degrees);
-    private static native boolean native_postSkew(long native_object,
-                                        float kx, float ky, float px, float py);
-    private static native boolean native_postSkew(long native_object,
-                                                  float kx, float ky);
-    private static native boolean native_postConcat(long native_object,
-                                                    long native_other_matrix);
+    private static native void native_setConcat(long native_object,
+                                                long native_a,
+                                                long native_b);
+    private static native void native_preTranslate(long native_object,
+                                                   float dx, float dy);
+    private static native void native_preScale(long native_object,
+                                               float sx, float sy, float px, float py);
+    private static native void native_preScale(long native_object,
+                                               float sx, float sy);
+    private static native void native_preRotate(long native_object,
+                                                float degrees, float px, float py);
+    private static native void native_preRotate(long native_object,
+                                                float degrees);
+    private static native void native_preSkew(long native_object,
+                                              float kx, float ky, float px, float py);
+    private static native void native_preSkew(long native_object,
+                                              float kx, float ky);
+    private static native void native_preConcat(long native_object,
+                                                long native_other_matrix);
+    private static native void native_postTranslate(long native_object,
+                                                    float dx, float dy);
+    private static native void native_postScale(long native_object,
+                                                float sx, float sy, float px, float py);
+    private static native void native_postScale(long native_object,
+                                                float sx, float sy);
+    private static native void native_postRotate(long native_object,
+                                                 float degrees, float px, float py);
+    private static native void native_postRotate(long native_object,
+                                                 float degrees);
+    private static native void native_postSkew(long native_object,
+                                               float kx, float ky, float px, float py);
+    private static native void native_postSkew(long native_object,
+                                               float kx, float ky);
+    private static native void native_postConcat(long native_object,
+                                                 long native_other_matrix);
     private static native boolean native_setRectToRect(long native_object,
                                                 RectF src, RectF dst, int stf);
     private static native boolean native_setPolyToPoly(long native_object,
diff --git a/graphics/java/android/graphics/TemporaryBuffer.java b/graphics/java/android/graphics/TemporaryBuffer.java
index c5b8143..36a2275 100644
--- a/graphics/java/android/graphics/TemporaryBuffer.java
+++ b/graphics/java/android/graphics/TemporaryBuffer.java
@@ -31,7 +31,7 @@
         }
 
         if (buf == null || buf.length < len) {
-            buf = new char[ArrayUtils.idealCharArraySize(len)];
+            buf = ArrayUtils.newUnpaddedCharArray(len);
         }
 
         return buf;
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 19131f2..66a88a2 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -595,7 +595,6 @@
      * Specifies the blending mode used to apply tint.
      *
      * @param tintMode A Porter-Duff blending mode
-     * @hide Pending finalization of supported Modes
      */
     public void setTintMode(Mode tintMode) {
         if (mBitmapState.mTintMode != tintMode) {
@@ -606,10 +605,7 @@
     }
 
     /**
-     * Returns the tint mode for this drawable, or {@code null} if none set.
-     *
-     * @return the tint mode for this drawable, or {@code null} if none set
-     * @hide
+     * @hide only needed by a hack within ProgressBar
      */
     public Mode getTintMode() {
         return mBitmapState.mTintMode;
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index de2b68f..21cd5db 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -121,20 +121,6 @@
  * document.</p></div>
  */
 public abstract class Drawable {
-    /**
-     * Hotspot identifier mask for tracking touch points.
-     *
-     * @hide until hotspot APIs are finalized
-     */
-    public static final int HOTSPOT_TOUCH_MASK = 0xFF;
-
-    /**
-     * Hotspot identifier for tracking keyboard focus.
-     *
-     * @hide until hotspot APIs are finalized
-     */
-    public static final int HOTSPOT_FOCUS = 0x100;
-
     private static final Rect ZERO_BOUNDS_RECT = new Rect();
 
     private int[] mStateSet = StateSet.WILD_CARD;
@@ -499,14 +485,13 @@
 
     /**
      * Indicates whether the drawable supports hotspots. Hotspots are uniquely
-     * identifiable coordinates the may be added, updated and removed within the
+     * identifiable coordinates the may be added, updated and removed within a
      * drawable.
      *
      * @return true if hotspots are supported
      * @see #setHotspot(int, float, float)
      * @see #removeHotspot(int)
      * @see #clearHotspots()
-     * @hide until hotspot APIs are finalized
      */
     public boolean supportsHotspots() {
         return false;
@@ -514,33 +499,33 @@
 
     /**
      * Specifies a hotspot's location within the drawable.
+     * <p>
+     * The specified key should be an id declared in the resources of the
+     * application to ensure it is unique (see the <a
+     * href={@docRoot}guide/topics/resources/more-resources.html#Id">ID resource type</a>).
      *
-     * @param id unique identifier for the hotspot
-     * @param x x-coordinate
-     * @param y y-coordinate
-     * @hide until hotspot APIs are finalized
+     * @param key The key identifying the hotspot
+     * @param x The X coordinate of the center of the hotspot
+     * @param y The Y coordinate of the center of the hotspot
      */
-    public void setHotspot(int id, float x, float y) {}
+    public void setHotspot(int key, float x, float y) {}
 
     /**
-     * Removes the specified hotspot from the drawable.
+     * Removes the hotspot with the specified key from the drawable.
      *
-     * @param id unique identifier for the hotspot
-     * @hide until hotspot APIs are finalized
+     * @param key The key identifying the hotspot
      */
-    public void removeHotspot(int id) {}
+    public void removeHotspot(int key) {}
 
     /**
      * Removes all hotspots from the drawable.
-     *
-     * @hide until hotspot APIs are finalized
      */
     public void clearHotspots() {}
 
     /**
      * Whether this drawable requests projection.
      *
-     * @hide
+     * @hide until we finalize these APIs
      */
     public boolean isProjected() {
         return false;
@@ -1054,14 +1039,14 @@
             drawable = new LayerDrawable();
         } else if (name.equals("transition")) {
             drawable = new TransitionDrawable();
-        } else if (name.equals("reveal")) {
-            drawable = new RevealDrawable();
         } else if (name.equals("touch-feedback")) {
             drawable = new TouchFeedbackDrawable();
         } else if (name.equals("color")) {
             drawable = new ColorDrawable();
         } else if (name.equals("shape")) {
             drawable = new GradientDrawable();
+        } else if (name.equals("vector")) {
+            drawable = new VectorDrawable();
         } else if (name.equals("scale")) {
             drawable = new ScaleDrawable();
         } else if (name.equals("clip")) {
@@ -1263,16 +1248,14 @@
      */
     static PorterDuff.Mode parseTintMode(int value, Mode defaultMode) {
         switch (value) {
-            case 0:
-                return Mode.SRC_IN;
-            case 1:
-                return Mode.SRC_ATOP;
-            case 2:
-                return Mode.MULTIPLY;
-            case 3:
-                return Mode.SCREEN;
+            case 3: return Mode.SRC_OVER;
+            case 5: return Mode.SRC_IN;
+            case 9: return Mode.SRC_ATOP;
+            case 14: return Mode.MULTIPLY;
+            case 15: return Mode.SCREEN;
+            case 16: return Mode.ADD;
+            default: return defaultMode;
         }
-        return defaultMode;
     }
 }
 
diff --git a/graphics/java/android/graphics/drawable/DrawableWrapper.java b/graphics/java/android/graphics/drawable/DrawableWrapper.java
index 2eb7b90..6ab33f8 100644
--- a/graphics/java/android/graphics/drawable/DrawableWrapper.java
+++ b/graphics/java/android/graphics/drawable/DrawableWrapper.java
@@ -118,33 +118,21 @@
         return mWrappedDrawable.getDirtyBounds();
     }
 
-    /**
-     * @hide
-     */
     @Override
     public boolean supportsHotspots() {
         return mWrappedDrawable.supportsHotspots();
     }
 
-    /**
-     * @hide
-     */
     @Override
     public void setHotspot(int id, float x, float y) {
         mWrappedDrawable.setHotspot(id, x, y);
     }
 
-    /**
-     * @hide
-     */
     @Override
     public void removeHotspot(int id) {
         mWrappedDrawable.removeHotspot(id);
     }
 
-    /**
-     * @hide
-     */
     @Override
     public void clearHotspots() {
         mWrappedDrawable.clearHotspots();
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index 59a0c93..9384caf 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -183,33 +183,21 @@
         }
     }
 
-    /**
-     * @hide
-     */
     @Override
     public boolean supportsHotspots() {
         return mInsetState.mDrawable.supportsHotspots();
     }
 
-    /**
-     * @hide
-     */
     @Override
     public void setHotspot(int id, float x, float y) {
         mInsetState.mDrawable.setHotspot(id, x, y);
     }
 
-    /**
-     * @hide
-     */
     @Override
     public void removeHotspot(int id) {
         mInsetState.mDrawable.removeHotspot(id);
     }
 
-    /**
-     * @hide
-     */
     @Override
     public void clearHotspots() {
         mInsetState.mDrawable.clearHotspots();
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index 3d48cda..b366987 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -80,8 +80,8 @@
     }
 
     /**
-     * Create a new layer drawable with the specified list of layers and the specified
-     * constant state.
+     * Create a new layer drawable with the specified list of layers and the
+     * specified constant state.
      *
      * @param layers The list of layers to add to this drawable.
      * @param state The constant drawable state.
@@ -326,6 +326,7 @@
         childDrawable.mInsetR = right;
         childDrawable.mInsetB = bottom;
         st.mNum++;
+        st.invalidateCache();
 
         layer.setCallback(this);
     }
@@ -419,6 +420,7 @@
                 }
 
                 childDrawable.mDrawable = drawable;
+                mLayerState.invalidateCache();
                 return true;
             }
         }
@@ -527,58 +529,6 @@
         }
     }
 
-    /**
-     * @hide
-     */
-    @Override
-    public boolean supportsHotspots() {
-        final ChildDrawable[] array = mLayerState.mChildren;
-        final int N = mLayerState.mNum;
-        for (int i = 0; i < N; i++) {
-            if (array[i].mDrawable.supportsHotspots()) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * @hide
-     */
-    @Override
-    public void setHotspot(int id, float x, float y) {
-        final ChildDrawable[] array = mLayerState.mChildren;
-        final int N = mLayerState.mNum;
-        for (int i = 0; i < N; i++) {
-            array[i].mDrawable.setHotspot(id, x, y);
-        }
-    }
-
-    /**
-     * @hide
-     */
-    @Override
-    public void removeHotspot(int id) {
-        final ChildDrawable[] array = mLayerState.mChildren;
-        final int N = mLayerState.mNum;
-        for (int i = 0; i < N; i++) {
-            array[i].mDrawable.removeHotspot(id);
-        }
-    }
-
-    /**
-     * @hide
-     */
-    @Override
-    public void clearHotspots() {
-        final ChildDrawable[] array = mLayerState.mChildren;
-        final int N = mLayerState.mNum;
-        for (int i = 0; i < N; i++) {
-            array[i].mDrawable.clearHotspots();
-        }
-    }
-
     private void computeStackedPadding(Rect padding) {
         padding.left = 0;
         padding.top = 0;
@@ -599,6 +549,46 @@
     }
 
     @Override
+    public boolean supportsHotspots() {
+        final ChildDrawable[] array = mLayerState.mChildren;
+        final int N = mLayerState.mNum;
+        for (int i = 0; i < N; i++) {
+            if (array[i].mDrawable.supportsHotspots()) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public void setHotspot(int id, float x, float y) {
+        final ChildDrawable[] array = mLayerState.mChildren;
+        final int N = mLayerState.mNum;
+        for (int i = 0; i < N; i++) {
+            array[i].mDrawable.setHotspot(id, x, y);
+        }
+    }
+
+    @Override
+    public void removeHotspot(int id) {
+        final ChildDrawable[] array = mLayerState.mChildren;
+        final int N = mLayerState.mNum;
+        for (int i = 0; i < N; i++) {
+            array[i].mDrawable.removeHotspot(id);
+        }
+    }
+
+    @Override
+    public void clearHotspots() {
+        final ChildDrawable[] array = mLayerState.mChildren;
+        final int N = mLayerState.mNum;
+        for (int i = 0; i < N; i++) {
+            array[i].mDrawable.clearHotspots();
+        }
+    }
+
+    @Override
     public boolean setVisible(boolean visible, boolean restart) {
         final boolean changed = super.setVisible(visible, restart);
         final ChildDrawable[] array = mLayerState.mChildren;
@@ -632,7 +622,8 @@
     public int getAlpha() {
         final ChildDrawable[] array = mLayerState.mChildren;
         if (mLayerState.mNum > 0) {
-            // All layers should have the same alpha set on them - just return the first one
+            // All layers should have the same alpha set on them - just return
+            // the first one
             return array[0].mDrawable.getAlpha();
         } else {
             return super.getAlpha();
@@ -649,12 +640,11 @@
     }
 
     /**
-     * Sets the opacity of this drawable directly, instead of collecting the states from
-     * the layers
+     * Sets the opacity of this drawable directly, instead of collecting the
+     * states from the layers
      *
-     * @param opacity The opacity to use, or {@link PixelFormat#UNKNOWN PixelFormat.UNKNOWN}
-     * for the default behavior
-     *
+     * @param opacity The opacity to use, or {@link PixelFormat#UNKNOWN
+     *            PixelFormat.UNKNOWN} for the default behavior
      * @see PixelFormat#UNKNOWN
      * @see PixelFormat#TRANSLUCENT
      * @see PixelFormat#TRANSPARENT
@@ -702,7 +692,7 @@
         final int N = mLayerState.mNum;
         for (int i = 0; i < N; i++) {
             final ChildDrawable r = array[i];
-            if (r.mDrawable.setState(state)) {
+            if (r.mDrawable.isStateful() && r.mDrawable.setState(state)) {
                 changed = true;
             }
 
@@ -839,7 +829,7 @@
     /**
      * Ensures the child padding caches are large enough.
      */
-    private void ensurePadding() {
+    void ensurePadding() {
         final int N = mLayerState.mNum;
         if (mPaddingL != null && mPaddingL.length >= N) {
             return;
@@ -890,7 +880,7 @@
         public int[] mThemeAttrs;
         public int mInsetL, mInsetT, mInsetR, mInsetB;
         public int mId;
-        
+
         ChildDrawable() {
             // Default empty constructor.
         }
@@ -920,14 +910,11 @@
         int mChangingConfigurations;
         int mChildrenChangingConfigurations;
 
-        private boolean mHaveOpacity = false;
+        private boolean mHaveOpacity;
         private int mOpacity;
 
-        private boolean mHaveStateful = false;
-        private boolean mStateful;
-
-        private boolean mCheckedConstantState;
-        private boolean mCanConstantState;
+        private boolean mHaveIsStateful;
+        private boolean mIsStateful;
 
         private boolean mAutoMirrored;
 
@@ -951,9 +938,8 @@
 
                 mHaveOpacity = orig.mHaveOpacity;
                 mOpacity = orig.mOpacity;
-                mHaveStateful = orig.mHaveStateful;
-                mStateful = orig.mStateful;
-                mCheckedConstantState = mCanConstantState = true;
+                mHaveIsStateful = orig.mHaveIsStateful;
+                mIsStateful = orig.mIsStateful;
                 mAutoMirrored = orig.mAutoMirrored;
                 mPaddingMode = orig.mPaddingMode;
                 mThemeAttrs = orig.mThemeAttrs;
@@ -993,49 +979,54 @@
                 return mOpacity;
             }
 
+            final ChildDrawable[] array = mChildren;
             final int N = mNum;
-            int op = N > 0 ? mChildren[0].mDrawable.getOpacity() : PixelFormat.TRANSPARENT;
+            int op = N > 0 ? array[0].mDrawable.getOpacity() : PixelFormat.TRANSPARENT;
             for (int i = 1; i < N; i++) {
-                op = Drawable.resolveOpacity(op, mChildren[i].mDrawable.getOpacity());
+                op = Drawable.resolveOpacity(op, array[i].mDrawable.getOpacity());
             }
+
             mOpacity = op;
             mHaveOpacity = true;
             return op;
         }
 
         public final boolean isStateful() {
-            if (mHaveStateful) {
-                return mStateful;
+            if (mHaveIsStateful) {
+                return mIsStateful;
             }
 
-            boolean stateful = false;
+            final ChildDrawable[] array = mChildren;
             final int N = mNum;
+            boolean isStateful = false;
             for (int i = 0; i < N; i++) {
-                if (mChildren[i].mDrawable.isStateful()) {
-                    stateful = true;
+                if (array[i].mDrawable.isStateful()) {
+                    isStateful = true;
                     break;
                 }
             }
 
-            mStateful = stateful;
-            mHaveStateful = true;
-            return stateful;
+            mIsStateful = isStateful;
+            mHaveIsStateful = true;
+            return isStateful;
         }
 
-        public boolean canConstantState() {
-            if (!mCheckedConstantState && mChildren != null) {
-                mCanConstantState = true;
-                final int N = mNum;
-                for (int i = 0; i < N; i++) {
-                    if (mChildren[i].mDrawable.getConstantState() == null) {
-                        mCanConstantState = false;
-                        break;
-                    }
+        public final boolean canConstantState() {
+            final ChildDrawable[] array = mChildren;
+            final int N = mNum;
+            for (int i = 0; i < N; i++) {
+                if (array[i].mDrawable.getConstantState() == null) {
+                    return false;
                 }
-                mCheckedConstantState = true;
             }
 
-            return mCanConstantState;
+            // Don't cache the result, this method is not called very often.
+            return true;
+        }
+
+        public void invalidateCache() {
+            mHaveOpacity = false;
+            mHaveIsStateful = false;
         }
     }
 }
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index 66193a5..3e9ca0a 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -345,7 +345,6 @@
      * Specifies the blending mode used to apply tint.
      *
      * @param tintMode A Porter-Duff blending mode
-     * @hide Pending finalization of supported Modes
      */
     public void setTintMode(Mode tintMode) {
         if (mNinePatchState.mTintMode != tintMode) {
diff --git a/graphics/java/android/graphics/drawable/RevealDrawable.java b/graphics/java/android/graphics/drawable/RevealDrawable.java
deleted file mode 100644
index 2f96fe4..0000000
--- a/graphics/java/android/graphics/drawable/RevealDrawable.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright (C) 2013 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 android.graphics.drawable;
-
-import android.content.res.Resources;
-import android.content.res.Resources.Theme;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.PorterDuff.Mode;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
-import android.os.SystemClock;
-import android.util.AttributeSet;
-import android.util.DisplayMetrics;
-import android.util.SparseArray;
-
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.IOException;
-import java.util.ArrayList;
-
-/**
- * An extension of LayerDrawable that is intended to react to touch hotspots
- * and reveal the second layer atop the first.
- * <p>
- * It can be defined in an XML file with the <code>&lt;reveal&gt;</code> element.
- * Each Drawable in the transition is defined in a nested <code>&lt;item&gt;</code>.
- * For more information, see the guide to <a href="{@docRoot}
- * guide/topics/resources/drawable-resource.html">Drawable Resources</a>.
- *
- * @attr ref android.R.styleable#LayerDrawableItem_left
- * @attr ref android.R.styleable#LayerDrawableItem_top
- * @attr ref android.R.styleable#LayerDrawableItem_right
- * @attr ref android.R.styleable#LayerDrawableItem_bottom
- * @attr ref android.R.styleable#LayerDrawableItem_drawable
- * @attr ref android.R.styleable#LayerDrawableItem_id
- */
-public class RevealDrawable extends LayerDrawable {
-    private final Rect mTempRect = new Rect();
-
-    /** Lazily-created map of touch hotspot IDs to ripples. */
-    private SparseArray<Ripple> mTouchedRipples;
-
-    /** Lazily-created list of actively animating ripples. */
-    private ArrayList<Ripple> mActiveRipples;
-
-    /** Lazily-created runnable for scheduling invalidation. */
-    private Runnable mAnimationRunnable;
-
-    /** Whether the animation runnable has been posted. */
-    private boolean mAnimating;
-
-    /** Target density, used to scale density-independent pixels. */
-    private float mDensity = 1.0f;
-
-    /** Paint used to control appearance of ripples. */
-    private Paint mRipplePaint;
-
-    /** Paint used to control reveal layer masking. */
-    private Paint mMaskingPaint;
-
-    /**
-     * Create a new reveal drawable with the specified list of layers. At least
-     * two layers are required for this drawable to work properly.
-     */
-    public RevealDrawable(Drawable[] layers) {
-        this(new RevealState(null, null, null), layers);
-    }
-
-    /**
-     * Create a new reveal drawable with no layers. To work correctly, at least
-     * two layers must be added to this drawable.
-     *
-     * @see #RevealDrawable(Drawable[])
-     */
-    RevealDrawable() {
-        this(new RevealState(null, null, null), (Resources) null, null);
-    }
-
-    private RevealDrawable(RevealState state, Resources res) {
-        super(state, res, null);
-    }
-
-    private RevealDrawable(RevealState state, Resources res, Theme theme) {
-        super(state, res, theme);
-    }
-
-    private RevealDrawable(RevealState state, Drawable[] layers) {
-        super(layers, state);
-    }
-
-    @Override
-    public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
-            throws XmlPullParserException, IOException {
-        super.inflate(r, parser, attrs, theme);
-
-        setTargetDensity(r.getDisplayMetrics());
-        setPaddingMode(PADDING_MODE_STACK);
-    }
-
-    @Override
-    LayerState createConstantState(LayerState state, Resources res) {
-        return new RevealState((RevealState) state, this, res);
-    }
-
-    /**
-     * Set the density at which this drawable will be rendered.
-     *
-     * @param metrics The display metrics for this drawable.
-     */
-    private void setTargetDensity(DisplayMetrics metrics) {
-        if (mDensity != metrics.density) {
-            mDensity = metrics.density;
-            invalidateSelf();
-        }
-    }
-
-    /**
-     * @hide until hotspot APIs are finalized
-     */
-    @Override
-    public boolean supportsHotspots() {
-        return true;
-    }
-
-    /**
-     * @hide until hotspot APIs are finalized
-     */
-    @Override
-    public void setHotspot(int id, float x, float y) {
-        if (mTouchedRipples == null) {
-            mTouchedRipples = new SparseArray<Ripple>();
-            mActiveRipples = new ArrayList<Ripple>();
-        }
-
-        final Ripple ripple = mTouchedRipples.get(id);
-        if (ripple == null) {
-            final Rect padding = mTempRect;
-            getPadding(padding);
-
-            final Ripple newRipple = new Ripple(getBounds(), padding, x, y, mDensity);
-            newRipple.enter();
-
-            mActiveRipples.add(newRipple);
-            mTouchedRipples.put(id, newRipple);
-        } else {
-            ripple.move(x, y);
-        }
-
-        scheduleAnimation();
-    }
-
-    /**
-     * @hide until hotspot APIs are finalized
-     */
-    @Override
-    public void removeHotspot(int id) {
-        if (mTouchedRipples == null) {
-            return;
-        }
-
-        final Ripple ripple = mTouchedRipples.get(id);
-        if (ripple != null) {
-            ripple.exit();
-
-            mTouchedRipples.remove(id);
-            scheduleAnimation();
-        }
-    }
-
-    /**
-     * @hide until hotspot APIs are finalized
-     */
-    @Override
-    public void clearHotspots() {
-        if (mTouchedRipples == null) {
-            return;
-        }
-
-        final int n = mTouchedRipples.size();
-        for (int i = 0; i < n; i++) {
-            final Ripple ripple = mTouchedRipples.valueAt(i);
-            ripple.exit();
-        }
-
-        if (n > 0) {
-            mTouchedRipples.clear();
-            scheduleAnimation();
-        }
-    }
-
-    /**
-     * Schedules the next animation, if necessary.
-     */
-    private void scheduleAnimation() {
-        if (mActiveRipples == null || mActiveRipples.isEmpty()) {
-            mAnimating = false;
-        } else if (!mAnimating) {
-            mAnimating = true;
-
-            if (mAnimationRunnable == null) {
-                mAnimationRunnable = new Runnable() {
-                    @Override
-                    public void run() {
-                        mAnimating = false;
-                        scheduleAnimation();
-                        invalidateSelf();
-                    }
-                };
-            }
-
-            scheduleSelf(mAnimationRunnable, SystemClock.uptimeMillis() + 1000 / 60);
-        }
-    }
-
-    @Override
-    public void draw(Canvas canvas) {
-        final int layerCount = getNumberOfLayers();
-        if (layerCount == 0) {
-            return;
-        }
-
-        getDrawable(0).draw(canvas);
-
-        final Rect bounds = getBounds();
-        final ArrayList<Ripple> activeRipples = mActiveRipples;
-        if (layerCount == 1 || bounds.isEmpty() || activeRipples == null
-                || activeRipples.isEmpty()) {
-            // Nothing to reveal, we're done here.
-            return;
-        }
-
-        if (mRipplePaint == null) {
-            mRipplePaint = new Paint();
-            mRipplePaint.setAntiAlias(true);
-        }
-
-        // Draw ripple mask into a buffer that merges using SRC_OVER.
-        boolean needsMask = false;
-        int layerSaveCount = -1;
-        int n = activeRipples.size();
-        for (int i = 0; i < n; i++) {
-            final Ripple ripple = activeRipples.get(i);
-            if (!ripple.active()) {
-                activeRipples.remove(i);
-                i--;
-                n--;
-            } else {
-                if (layerSaveCount < 0) {
-                    layerSaveCount = canvas.saveLayer(
-                            bounds.left, bounds.top, bounds.right, bounds.bottom, null, 0);
-                    // Ripples must be clipped to bounds, otherwise SRC_IN will
-                    // miss them and we'll get artifacts.
-                    canvas.clipRect(bounds);
-                }
-
-                needsMask |= ripple.draw(canvas, mRipplePaint);
-            }
-        }
-
-        // If a layer was saved, it contains the ripple mask. Draw the reveal
-        // into another layer and composite using SRC_IN, then composite onto
-        // the original canvas.
-        if (layerSaveCount >= 0) {
-            if (needsMask) {
-                if (mMaskingPaint == null) {
-                    mMaskingPaint = new Paint();
-                    mMaskingPaint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
-                }
-
-                // TODO: When Drawable.setXfermode() is supported by all drawables,
-                // we won't need an extra layer.
-                canvas.saveLayer(
-                        bounds.left, bounds.top, bounds.right, bounds.bottom, mMaskingPaint, 0);
-                getDrawable(1).draw(canvas);
-            }
-
-            canvas.restoreToCount(layerSaveCount);
-        }
-    }
-
-    private static class RevealState extends LayerState {
-        public RevealState(RevealState orig, RevealDrawable owner, Resources res) {
-            super(orig, owner, res);
-        }
-
-        @Override
-        public Drawable newDrawable() {
-            return newDrawable(null);
-        }
-
-        @Override
-        public Drawable newDrawable(Resources res) {
-            return new RevealDrawable(this, res);
-        }
-
-        @Override
-        public Drawable newDrawable(Resources res, Theme theme) {
-            return new RevealDrawable(this, res, theme);
-        }
-    }
-}
diff --git a/graphics/java/android/graphics/drawable/Ripple.java b/graphics/java/android/graphics/drawable/Ripple.java
index 618afb8..03dd841 100644
--- a/graphics/java/android/graphics/drawable/Ripple.java
+++ b/graphics/java/android/graphics/drawable/Ripple.java
@@ -43,34 +43,16 @@
     /** Resistance factor when constraining outside touches. */
     private static final float OUTSIDE_RESISTANCE = 0.7f;
 
-    /** Duration for animating the trailing edge of the ripple. */
-    private static final int EXIT_DURATION = 600;
-
-    /** Duration for animating the leading edge of the ripple. */
-    private static final int ENTER_DURATION = 400;
-
-    /** Minimum elapsed time between start of enter and exit animations. */
-    private static final int EXIT_MIN_DELAY = 200;
-
-    /** Duration for animating between inside and outside touch. */
-    private static final int OUTSIDE_DURATION = 300;
-
-    /** Duration for animating pulses. */
-    private static final int PULSE_DURATION = 400;
-
-    /** Interval between pulses while inside and fully entered. */
-    private static final int PULSE_INTERVAL = 400;
-
     /** Minimum alpha value during a pulse animation. */
     private static final int PULSE_MIN_ALPHA = 128;
 
-    /** Delay before pulses start. */
-    private static final int PULSE_DELAY = 500;
-
     private final Rect mBounds;
     private final Rect mPadding;
-    private final int mMinRadius;
-    private final int mOutsideRadius;
+
+    private RippleAnimator mAnimator;
+
+    private int mMinRadius;
+    private int mOutsideRadius;
 
     /** Center x-coordinate. */
     private float mX;
@@ -80,15 +62,18 @@
 
     /** Whether the center is within the parent bounds. */
     private boolean mInside;
+    
+    /** Enter state. A value in [0...1] or -1 if not set. */
+    private float mEnterState = -1;
 
-    /** When the ripple started appearing. */
-    private long mEnterTime = -1;
+    /** Exit state. A value in [0...1] or -1 if not set. */
+    private float mExitState = -1;
 
-    /** When the ripple started vanishing. */
-    private long mExitTime = -1;
+    /** Outside state. A value in [0...1] or -1 if not set. */
+    private float mOutsideState = -1;
 
-    /** When the ripple last transitioned between inside and outside touch. */
-    private long mOutsideTime = -1;
+    /** Pulse state. A value in [0...1] or -1 if not set. */
+    private float mPulseState = -1;
 
     /**
      * Creates a new ripple with the specified parent bounds, padding, initial
@@ -105,6 +90,14 @@
         mMinRadius = (int) (density * STARTING_RADIUS_DP + 0.5f);
         mOutsideRadius = (int) (density * OUTSIDE_RADIUS_DP + 0.5f);
     }
+    
+    public void setMinRadius(int minRadius) {
+        mMinRadius = minRadius;
+    }
+    
+    public void setOutsideRadius(int outsideRadius) {
+        mOutsideRadius = outsideRadius;
+    }
 
     /**
      * Updates the center coordinates.
@@ -115,49 +108,18 @@
 
         final boolean inside = mBounds.contains((int) x, (int) y);
         if (mInside != inside) {
-            mOutsideTime = AnimationUtils.currentAnimationTimeMillis();
+            if (mAnimator != null) {
+                mAnimator.outside();
+            }
             mInside = inside;
         }
     }
 
-    /**
-     * Starts the enter animation.
-     */
-    public void enter() {
-        mEnterTime = AnimationUtils.currentAnimationTimeMillis();
-    }
-
-    /**
-     * Starts the exit animation. If {@link #enter()} was called recently, the
-     * animation may be postponed.
-     */
-    public void exit() {
-        final long minTime = mEnterTime + EXIT_MIN_DELAY;
-        mExitTime = Math.max(minTime, AnimationUtils.currentAnimationTimeMillis());
-    }
-
-    /**
-     * Returns whether this ripple is currently animating.
-     */
-    public boolean active() {
-        final long currentTime = AnimationUtils.currentAnimationTimeMillis();
-        return mEnterTime >= 0 && mEnterTime <= currentTime
-                && (mExitTime < 0 || currentTime <= mExitTime + EXIT_DURATION);
-    }
-
-    /**
-     * Constrains a value within a specified asymptotic margin outside a minimum
-     * and maximum.
-     */
-    private static float looseConstrain(float value, float min, float max, float margin,
-            float factor) {
-        if (value < min) {
-            return min - Math.min(margin, (float) Math.pow(min - value, factor));
-        } else if (value > max) {
-            return max + Math.min(margin, (float) Math.pow(value - max, factor));
-        } else {
-            return value;
+    public RippleAnimator animate() {
+        if (mAnimator == null) {
+            mAnimator = new RippleAnimator(this);
         }
+        return mAnimator;
     }
 
     public boolean draw(Canvas c, Paint p) {
@@ -167,17 +129,10 @@
         final float dY = Math.max(mY, bounds.bottom - mY);
         final int maxRadius = (int) Math.ceil(Math.sqrt(dX * dX + dY * dY));
 
-        // Track three states:
-        // - Enter: touch begins, affects outer radius
-        // - Outside: touch moves outside bounds, affects maximum outer radius
-        // - Exit: touch ends, affects inner radius
-        final long currentTime = AnimationUtils.currentAnimationTimeMillis();
-        final float enterState = mEnterTime < 0 ? 0 : INTERPOLATOR.getInterpolation(
-                MathUtils.constrain((currentTime - mEnterTime) / (float) ENTER_DURATION, 0, 1));
-        final float outsideState = mOutsideTime < 0 ? 1 : INTERPOLATOR.getInterpolation(
-                MathUtils.constrain((currentTime - mOutsideTime) / (float) OUTSIDE_DURATION, 0, 1));
-        final float exitState = mExitTime < 0 ? 0 : INTERPOLATOR.getInterpolation(
-                MathUtils.constrain((currentTime - mExitTime) / (float) EXIT_DURATION, 0, 1));
+        final float enterState = mEnterState;
+        final float exitState = mExitState;
+        final float outsideState = mOutsideState;
+        final float pulseState = mPulseState;
         final float insideRadius = MathUtils.lerp(mMinRadius, maxRadius, enterState);
         final float outerRadius = MathUtils.lerp(mOutsideRadius, insideRadius,
                 mInside ? outsideState : 1 - outsideState);
@@ -189,35 +144,28 @@
                 outerRadius * OUTSIDE_MARGIN, OUTSIDE_RESISTANCE);
 
         // Compute maximum alpha, taking pulse into account when active.
-        final long pulseTime = (currentTime - mEnterTime - ENTER_DURATION - PULSE_DELAY);
         final int maxAlpha;
-        if (pulseTime < 0) {
+        if (pulseState < 0 || pulseState >= 1) {
             maxAlpha = 255;
         } else {
-            final float pulseState = (pulseTime % (PULSE_INTERVAL + PULSE_DURATION))
-                    / (float) PULSE_DURATION;
-            if (pulseState >= 1) {
-                maxAlpha = 255;
+            final float pulseAlpha;
+            if (pulseState > 0.5) {
+                // Pulsing in to max alpha.
+                pulseAlpha = MathUtils.lerp(PULSE_MIN_ALPHA, 255, (pulseState - .5f) * 2);
             } else {
-                final float pulseAlpha;
-                if (pulseState > 0.5) {
-                    // Pulsing in to max alpha.
-                    pulseAlpha = MathUtils.lerp(PULSE_MIN_ALPHA, 255, (pulseState - .5f) * 2);
-                } else {
-                    // Pulsing out to min alpha.
-                    pulseAlpha = MathUtils.lerp(255, PULSE_MIN_ALPHA, pulseState * 2f);
-                }
+                // Pulsing out to min alpha.
+                pulseAlpha = MathUtils.lerp(255, PULSE_MIN_ALPHA, pulseState * 2f);
+            }
 
-                if (exitState > 0) {
-                    // Animating exit, interpolate pulse with exit state.
-                    maxAlpha = (int) (MathUtils.lerp(255, pulseAlpha, exitState) + 0.5f);
-                } else if (mInside) {
-                    // No animation, no need to interpolate.
-                    maxAlpha = (int) (pulseAlpha + 0.5f);
-                } else {
-                    // Animating inside, interpolate pulse with inside state.
-                    maxAlpha = (int) (MathUtils.lerp(pulseAlpha, 255, outsideState) + 0.5f);
-                }
+            if (exitState > 0) {
+                // Animating exit, interpolate pulse with exit state.
+                maxAlpha = (int) (MathUtils.lerp(255, pulseAlpha, exitState) + 0.5f);
+            } else if (mInside) {
+                // No animation, no need to interpolate.
+                maxAlpha = (int) (pulseAlpha + 0.5f);
+            } else {
+                // Animating inside, interpolate pulse with inside state.
+                maxAlpha = (int) (MathUtils.lerp(pulseAlpha, 255, outsideState) + 0.5f);
             }
         }
 
@@ -260,4 +208,109 @@
         final int maxRadius = (int) Math.ceil(Math.sqrt(dX * dX + dY * dY));
         bounds.set(x - maxRadius, y - maxRadius, x + maxRadius, y + maxRadius);
     }
+
+    /**
+     * Constrains a value within a specified asymptotic margin outside a minimum
+     * and maximum.
+     */
+    private static float looseConstrain(float value, float min, float max, float margin,
+            float factor) {
+        if (value < min) {
+            return min - Math.min(margin, (float) Math.pow(min - value, factor));
+        } else if (value > max) {
+            return max + Math.min(margin, (float) Math.pow(value - max, factor));
+        } else {
+            return value;
+        }
+    }
+    
+    public static class RippleAnimator {
+        /** Duration for animating the trailing edge of the ripple. */
+        private static final int EXIT_DURATION = 600;
+
+        /** Duration for animating the leading edge of the ripple. */
+        private static final int ENTER_DURATION = 400;
+
+        /** Minimum elapsed time between start of enter and exit animations. */
+        private static final int EXIT_MIN_DELAY = 200;
+
+        /** Duration for animating between inside and outside touch. */
+        private static final int OUTSIDE_DURATION = 300;
+
+        /** Duration for animating pulses. */
+        private static final int PULSE_DURATION = 400;
+
+        /** Interval between pulses while inside and fully entered. */
+        private static final int PULSE_INTERVAL = 400;
+
+        /** Delay before pulses start. */
+        private static final int PULSE_DELAY = 500;
+
+        /** The target ripple being animated. */
+        private final Ripple mTarget;
+
+        /** When the ripple started appearing. */
+        private long mEnterTime = -1;
+
+        /** When the ripple started vanishing. */
+        private long mExitTime = -1;
+
+        /** When the ripple last transitioned between inside and outside touch. */
+        private long mOutsideTime = -1;
+
+        public RippleAnimator(Ripple target) {
+            mTarget = target;
+        }
+
+        /**
+         * Starts the enter animation.
+         */
+        public void enter() {
+            mEnterTime = AnimationUtils.currentAnimationTimeMillis();
+        }
+
+        /**
+         * Starts the exit animation. If {@link #enter()} was called recently, the
+         * animation may be postponed.
+         */
+        public void exit() {
+            final long minTime = mEnterTime + EXIT_MIN_DELAY;
+            mExitTime = Math.max(minTime, AnimationUtils.currentAnimationTimeMillis());
+        }
+
+        /**
+         * Starts the outside transition animation.
+         */
+        public void outside() {
+            mOutsideTime = AnimationUtils.currentAnimationTimeMillis();
+        }
+
+        /**
+         * Returns whether this ripple is currently animating.
+         */
+        public boolean isRunning() {
+            final long currentTime = AnimationUtils.currentAnimationTimeMillis();
+            return mEnterTime >= 0 && mEnterTime <= currentTime
+                    && (mExitTime < 0 || currentTime <= mExitTime + EXIT_DURATION);
+        }
+
+        public void update() {
+            // Track three states:
+            // - Enter: touch begins, affects outer radius
+            // - Outside: touch moves outside bounds, affects maximum outer radius
+            // - Exit: touch ends, affects inner radius
+            final long currentTime = AnimationUtils.currentAnimationTimeMillis();
+            mTarget.mEnterState = mEnterTime < 0 ? 0 : INTERPOLATOR.getInterpolation(
+                    MathUtils.constrain((currentTime - mEnterTime) / (float) ENTER_DURATION, 0, 1));
+            mTarget.mExitState = mExitTime < 0 ? 0 : INTERPOLATOR.getInterpolation(
+                    MathUtils.constrain((currentTime - mExitTime) / (float) EXIT_DURATION, 0, 1));
+            mTarget.mOutsideState = mOutsideTime < 0 ? 1 : INTERPOLATOR.getInterpolation(
+                    MathUtils.constrain((currentTime - mOutsideTime) / (float) OUTSIDE_DURATION, 0, 1));
+
+            // Pulse is a little more complicated.
+            final long pulseTime = (currentTime - mEnterTime - ENTER_DURATION - PULSE_DELAY);
+            mTarget.mPulseState = pulseTime < 0 ? -1
+                    : (pulseTime % (PULSE_INTERVAL + PULSE_DURATION)) / (float) PULSE_DURATION;
+        }
+    }
 }
diff --git a/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java b/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java
index 47a9374..3773a49 100644
--- a/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java
+++ b/graphics/java/android/graphics/drawable/TouchFeedbackDrawable.java
@@ -25,6 +25,7 @@
 import android.graphics.Paint;
 import android.graphics.PixelFormat;
 import android.graphics.PorterDuff.Mode;
+import android.graphics.drawable.Ripple.RippleAnimator;
 import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
 import android.os.SystemClock;
@@ -38,12 +39,14 @@
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
-import java.util.ArrayList;
 
 /**
  * Documentation pending.
  */
-public class TouchFeedbackDrawable extends DrawableWrapper {
+public class TouchFeedbackDrawable extends LayerDrawable {
+    /** The maximum number of ripples supported. */
+    private static final int MAX_RIPPLES = 10;
+
     private final Rect mTempRect = new Rect();
     private final Rect mPaddingRect = new Rect();
 
@@ -58,8 +61,9 @@
     /** Lazily-created map of touch hotspot IDs to ripples. */
     private SparseArray<Ripple> mTouchedRipples;
 
-    /** Lazily-created list of actively animating ripples. */
-    private ArrayList<Ripple> mActiveRipples;
+    /** Lazily-created array of actively animating ripples. */
+    private Ripple[] mActiveRipples;
+    private int mActiveRipplesCount = 0;
 
     /** Lazily-created runnable for scheduling invalidation. */
     private Runnable mAnimationRunnable;
@@ -76,50 +80,21 @@
     /** Whether the animation runnable has been posted. */
     private boolean mAnimating;
 
-    /** The drawable to use as the mask. */
-    private Drawable mMask;
-
     TouchFeedbackDrawable() {
-        this(new TouchFeedbackState(null), null, null);
-    }
-
-    private void setConstantState(TouchFeedbackState wrapperState, Resources res) {
-        super.setConstantState(wrapperState, res);
-
-        // Load a new mask drawable from the constant state.
-        if (wrapperState == null || wrapperState.mMaskState == null) {
-            mMask = null;
-        } else if (res != null) {
-            mMask = wrapperState.mMaskState.newDrawable(res);
-        } else {
-            mMask = wrapperState.mMaskState.newDrawable();
-        }
-
-        if (res != null) {
-            mDensity = res.getDisplayMetrics().density;
-        }
+        this(new TouchFeedbackState(null, null, null), null, null);
     }
 
     @Override
     public int getOpacity() {
-        return mActiveRipples != null && !mActiveRipples.isEmpty() ?
-                PixelFormat.TRANSLUCENT : PixelFormat.TRANSPARENT;
-    }
-
-    @Override
-    protected void onBoundsChange(Rect bounds) {
-        super.onBoundsChange(bounds);
-
-        if (mMask != null) {
-            mMask.setBounds(bounds);
-        }
+        // Worst-case scenario.
+        return PixelFormat.TRANSLUCENT;
     }
 
     @Override
     protected boolean onStateChange(int[] stateSet) {
         super.onStateChange(stateSet);
 
-        if (mRipplePaint != null) {
+        if (mRipplePaint != null && mState.mTint != null) {
             final ColorStateList stateList = mState.mTint;
             final int newColor = stateList.getColorForState(stateSet, 0);
             final int oldColor = mRipplePaint.getColor();
@@ -138,115 +113,82 @@
      */
     @Override
     public boolean isProjected() {
-        return mState.mProjected;
+        return getNumberOfLayers() == 0;
     }
 
     @Override
     public boolean isStateful() {
-        return super.isStateful() || mState.mTint.isStateful();
+        return super.isStateful() || mState.mTint != null && mState.mTint.isStateful();
+    }
+
+    /**
+     * Specifies a tint for drawing touch feedback ripples.
+     *
+     * @param tint Color state list to use for tinting touch feedback ripples,
+     *        or null to clear the tint
+     */
+    public void setTint(ColorStateList tint) {
+        if (mState.mTint != tint) {
+            mState.mTint = tint;
+            invalidateSelf();
+        }
+    }
+
+    /**
+     * Returns the tint color for touch feedback ripples.
+     *
+     * @return Color state list to use for tinting touch feedback ripples, or
+     *         null if none set
+     */
+    public ColorStateList getTint() {
+        return mState.mTint;
+    }
+
+    /**
+     * Specifies the blending mode used to draw touch feedback ripples.
+     *
+     * @param tintMode A Porter-Duff blending mode
+     */
+    public void setTintMode(Mode tintMode) {
+        mState.setTintMode(tintMode);
+        invalidateSelf();
     }
 
     @Override
     public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
             throws XmlPullParserException, IOException {
-        super.inflate(r, parser, attrs, theme);
-
         final TypedArray a = obtainAttributes(
                 r, theme, attrs, R.styleable.TouchFeedbackDrawable);
-        inflateStateFromTypedArray(r, a);
+        inflateStateFromTypedArray(a);
         a.recycle();
-        
-        inflateChildElements(r, parser, attrs, theme);
+
+        super.inflate(r, parser, attrs, theme);
 
         setTargetDensity(r.getDisplayMetrics());
     }
-    
-    private void inflateChildElements(Resources r, XmlPullParser parser, AttributeSet attrs,
-            Theme theme) throws XmlPullParserException, IOException {
-        int type;
-        while ((type = parser.next()) == XmlPullParser.TEXT) {
-            // Find the next non-text element.
-        }
-
-        if (type == XmlPullParser.START_TAG) {
-            final Drawable dr = Drawable.createFromXmlInner(r, parser, attrs);
-            setDrawable(dr, r);
-        }
-    }
-
-    /**
-     * Sets the wrapped drawable and update the constant state.
-     *
-     * @param drawable
-     * @param res
-     */
-    void setMaskDrawable(Drawable drawable, Resources res) {
-        mMask = drawable;
-
-        if (drawable != null) {
-            // Nobody cares if the mask has a callback.
-            drawable.setCallback(null);
-
-            mState.mMaskState = drawable.getConstantState();
-        } else {
-            mState.mMaskState = null;
-        }
-    }
 
     /**
      * Initializes the constant state from the values in the typed array.
      */
-    private void inflateStateFromTypedArray(Resources r, TypedArray a) {
+    private void inflateStateFromTypedArray(TypedArray a) {
         final TouchFeedbackState state = mState;
 
         // Extract the theme attributes, if any.
         final int[] themeAttrs = a.extractThemeAttrs();
-        state.mThemeAttrs = themeAttrs;
+        state.mTouchThemeAttrs = themeAttrs;
 
         if (themeAttrs == null || themeAttrs[R.styleable.TouchFeedbackDrawable_tint] == 0) {
             mState.mTint = a.getColorStateList(R.styleable.TouchFeedbackDrawable_tint);
-
-            if (mState.mTint == null) {
-                throw new RuntimeException("<touch-feedback> tag requires a 'tint' attribute");
-            }
         }
 
         if (themeAttrs == null || themeAttrs[R.styleable.TouchFeedbackDrawable_tintMode] == 0) {
-            mState.mTintMode = Drawable.parseTintMode(
-                    a.getInt(R.styleable.TouchFeedbackDrawable_tintMode, -1), Mode.SRC_ATOP);
+            mState.setTintMode(Drawable.parseTintMode(
+                    a.getInt(R.styleable.TouchFeedbackDrawable_tintMode, -1), Mode.SRC_ATOP));
         }
 
         if (themeAttrs == null || themeAttrs[R.styleable.TouchFeedbackDrawable_pinned] == 0) {
             mState.mPinned = a.getBoolean(R.styleable.TouchFeedbackDrawable_pinned, false);
         }
-
-        Drawable mask = mMask;
-        if (themeAttrs == null || themeAttrs[R.styleable.TouchFeedbackDrawable_mask] == 0) {
-            mask = a.getDrawable(R.styleable.TouchFeedbackDrawable_mask);
-        }
-
-        Drawable dr = super.getDrawable();
-        if (themeAttrs == null || themeAttrs[R.styleable.TouchFeedbackDrawable_drawable] == 0) {
-            final int drawableRes = a.getResourceId(R.styleable.TouchFeedbackDrawable_drawable, 0);
-            if (drawableRes != 0) {
-                dr = r.getDrawable(drawableRes);
-            }
-        }
-
-        // If neither a mask not a bottom layer was specified, assume we're
-        // projecting onto a parent surface.
-        mState.mProjected = mask == null && dr == null;
-
-        if (dr != null) {
-            setDrawable(dr, r);
-        } else {
-            // For now at least, we MUST have a wrapped drawable.
-            setDrawable(new ColorDrawable(Color.TRANSPARENT), r);
-        }
-
-        if (mask != null) {
-            setMaskDrawable(mask, r);
-        }
     }
 
     /**
@@ -271,7 +213,7 @@
                     "Can't apply theme to <touch-feedback> with no constant state");
         }
 
-        final int[] themeAttrs = state.mThemeAttrs;
+        final int[] themeAttrs = state.mTouchThemeAttrs;
         if (themeAttrs != null) {
             final TypedArray a = t.resolveAttributes(
                     themeAttrs, R.styleable.TouchFeedbackDrawable, 0, 0);
@@ -291,67 +233,30 @@
         }
 
         if (a.hasValue(R.styleable.TouchFeedbackDrawable_tintMode)) {
-            mState.mTintMode = Drawable.parseTintMode(
-                    a.getInt(R.styleable.TouchFeedbackDrawable_tintMode, -1), Mode.SRC_ATOP);
+            mState.setTintMode(Drawable.parseTintMode(
+                    a.getInt(R.styleable.TouchFeedbackDrawable_tintMode, -1), Mode.SRC_ATOP));
         }
 
         if (a.hasValue(R.styleable.TouchFeedbackDrawable_pinned)) {
             mState.mPinned = a.getBoolean(R.styleable.TouchFeedbackDrawable_pinned, false);
         }
-
-        Drawable mask = mMask;
-        if (a.hasValue(R.styleable.TouchFeedbackDrawable_mask)) {
-            mask = a.getDrawable(R.styleable.TouchFeedbackDrawable_mask);
-        }
-
-        Drawable dr = super.getDrawable();
-        if (a.hasValue(R.styleable.TouchFeedbackDrawable_drawable)) {
-            final int drawableRes = a.getResourceId(R.styleable.TouchFeedbackDrawable_drawable, 0);
-            if (drawableRes != 0) {
-                dr = a.getResources().getDrawable(drawableRes);
-            }
-        }
-
-        // If neither a mask not a bottom layer was specified, assume we're
-        // projecting onto a parent surface.
-        mState.mProjected = mask == null && dr == null;
-
-        if (dr != null) {
-            setDrawable(dr, a.getResources());
-        } else {
-            // For now at least, we MUST have a wrapped drawable.
-            setDrawable(new ColorDrawable(Color.TRANSPARENT), a.getResources());
-        }
-
-        if (mask != null) {
-            setMaskDrawable(mask, a.getResources());
-        }
     }
 
     @Override
     public boolean canApplyTheme() {
-        return mState != null && mState.mThemeAttrs != null;
+        return super.canApplyTheme() || mState != null && mState.mTouchThemeAttrs != null;
     }
 
-    /**
-     * @hide until hotspot APIs are finalized
-     */
     @Override
     public boolean supportsHotspots() {
         return true;
     }
 
-    /**
-     * TODO: Maybe we should set hotspots for state/id combinations? So touch
-     * would be state_pressed and the pointer ID.
-     *
-     * @hide until hotspot APIs are finalized
-     */
     @Override
     public void setHotspot(int id, float x, float y) {
         if (mTouchedRipples == null) {
             mTouchedRipples = new SparseArray<Ripple>();
-            mActiveRipples = new ArrayList<Ripple>();
+            mActiveRipples = new Ripple[MAX_RIPPLES];
         }
 
         final Ripple ripple = mTouchedRipples.get(id);
@@ -366,9 +271,9 @@
             }
 
             final Ripple newRipple = new Ripple(bounds, padding, x, y, mDensity);
-            newRipple.enter();
+            newRipple.animate().enter();
 
-            mActiveRipples.add(newRipple);
+            mActiveRipples[mActiveRipplesCount++] = newRipple;
             mTouchedRipples.put(id, newRipple);
         } else if (!mState.mPinned) {
             ripple.move(x, y);
@@ -377,9 +282,6 @@
         scheduleAnimation();
     }
 
-    /**
-     * @hide until hotspot APIs are finalized
-     */
     @Override
     public void removeHotspot(int id) {
         if (mTouchedRipples == null) {
@@ -388,16 +290,13 @@
 
         final Ripple ripple = mTouchedRipples.get(id);
         if (ripple != null) {
-            ripple.exit();
+            ripple.animate().exit();
 
             mTouchedRipples.remove(id);
             scheduleAnimation();
         }
     }
 
-    /**
-     * @hide until hotspot APIs are finalized
-     */
     @Override
     public void clearHotspots() {
         if (mTouchedRipples == null) {
@@ -406,8 +305,7 @@
 
         final int n = mTouchedRipples.size();
         for (int i = 0; i < n; i++) {
-            final Ripple ripple = mTouchedRipples.valueAt(i);
-            ripple.exit();
+            mTouchedRipples.valueAt(i).animate().exit();
         }
 
         if (n > 0) {
@@ -420,7 +318,7 @@
      * Schedules the next animation, if necessary.
      */
     private void scheduleAnimation() {
-        if (mActiveRipples == null || mActiveRipples.isEmpty()) {
+        if (mActiveRipplesCount == 0) {
             mAnimating = false;
         } else if (!mAnimating) {
             mAnimating = true;
@@ -442,53 +340,69 @@
 
     @Override
     public void draw(Canvas canvas) {
-        // The lower layer always draws normally.
-        super.draw(canvas);
+        final boolean projected = getNumberOfLayers() == 0;
+        final Ripple[] activeRipples = mActiveRipples;
+        final int ripplesCount = mActiveRipplesCount;
+        final Rect bounds = getBounds();
 
-        if (mActiveRipples == null || mActiveRipples.size() == 0) {
-            // No ripples to draw.
-            return;
-        }
-
-        final ArrayList<Ripple> activeRipples = mActiveRipples;
-        final Drawable mask = mMask == null && !mState.mProjected ? getDrawable() : null;
-        final Rect bounds = mask == null ? null : mask.getBounds();
-
-        // Draw ripples into a layer that merges using SRC_IN.
-        boolean hasRipples = false;
+        // Draw ripples.
+        boolean drewRipples = false;
         int rippleRestoreCount = -1;
-        int n = activeRipples.size();
-        for (int i = 0; i < n; i++) {
-            final Ripple ripple = activeRipples.get(i);
-            if (!ripple.active()) {
-                // TODO: Mark and sweep is more efficient.
-                activeRipples.remove(i);
-                i--;
-                n--;
+        int activeRipplesCount = 0;
+        for (int i = 0; i < ripplesCount; i++) {
+            final Ripple ripple = activeRipples[i];
+            final RippleAnimator animator = ripple.animate();
+            animator.update();
+            if (!animator.isRunning()) {
+                activeRipples[i] = null;
             } else {
-                // If we're masking the ripple layer, make sure we have a layer first.
-                if (mask != null && rippleRestoreCount < 0) {
+                // If we're masking the ripple layer, make sure we have a layer
+                // first. This will merge SRC_OVER (directly) onto the canvas.
+                if (!projected && rippleRestoreCount < 0) {
                     rippleRestoreCount = canvas.saveLayer(bounds.left, bounds.top,
-                            bounds.right, bounds.bottom, getMaskingPaint(SRC_ATOP), 0);
+                            bounds.right, bounds.bottom, null, 0);
                     canvas.clipRect(bounds);
                 }
 
-                hasRipples |= ripple.draw(canvas, getRipplePaint());
+                drewRipples |= ripple.draw(canvas, getRipplePaint());
+
+                activeRipples[activeRipplesCount] = activeRipples[i];
+                activeRipplesCount++;
+            }
+        }
+        mActiveRipplesCount = activeRipplesCount;
+
+        // TODO: Use the masking layer first, if there is one.
+
+        // If we have ripples and content, we need a masking layer. This will
+        // merge DST_ATOP onto (effectively under) the ripple layer.
+        if (drewRipples && !projected && rippleRestoreCount >= 0) {
+            final PorterDuffXfermode xfermode = mState.getTintXfermode();
+            canvas.saveLayer(bounds.left, bounds.top,
+                    bounds.right, bounds.bottom, getMaskingPaint(xfermode), 0);
+        }
+
+        Drawable mask = null;
+        final ChildDrawable[] array = mLayerState.mChildren;
+        final int N = mLayerState.mNum;
+        for (int i = 0; i < N; i++) {
+            if (array[i].mId != R.id.mask) {
+                array[i].mDrawable.draw(canvas);
+            } else {
+                mask = array[i].mDrawable;
             }
         }
 
         // If we have ripples, mask them.
-        if (mask != null && hasRipples) {
+        if (mask != null && drewRipples) {
+            // TODO: This will also mask the lower layer, which is bad.
             canvas.saveLayer(bounds.left, bounds.top, bounds.right,
-                    bounds.bottom, getMaskingPaint(DST_IN), 0);
+                    bounds.bottom, getMaskingPaint(mState.mTintXfermode), 0);
             mask.draw(canvas);
         }
 
-        // Composite the layers if needed:
-        // 1. Mask     DST_IN
-        // 2. Ripples  SRC_ATOP
-        // 3. Lower    n/a
-        if (rippleRestoreCount > 0) {
+        // Composite the layers if needed.
+        if (rippleRestoreCount >= 0) {
             canvas.restoreToCount(rippleRestoreCount);
         }
     }
@@ -497,15 +411,14 @@
         if (mRipplePaint == null) {
             mRipplePaint = new Paint();
             mRipplePaint.setAntiAlias(true);
-            
-            final int color = mState.mTint.getColorForState(getState(), Color.TRANSPARENT);
-            mRipplePaint.setColor(color);
+
+            if (mState.mTint != null) {
+                final int color = mState.mTint.getColorForState(getState(), Color.TRANSPARENT);
+                mRipplePaint.setColor(color);
+            }
         }
         return mRipplePaint;
     }
-    
-    private static final PorterDuffXfermode SRC_ATOP = new PorterDuffXfermode(Mode.SRC_ATOP);
-    private static final PorterDuffXfermode DST_IN = new PorterDuffXfermode(Mode.DST_IN);
 
     private Paint getMaskingPaint(PorterDuffXfermode mode) {
         if (mMaskingPaint == null) {
@@ -521,15 +434,12 @@
         final Rect drawingBounds = mDrawingBounds;
         dirtyBounds.set(drawingBounds);
         drawingBounds.setEmpty();
-
         final Rect rippleBounds = mTempRect;
-        final ArrayList<Ripple> activeRipples = mActiveRipples;
-        if (activeRipples != null) {
-            final int N = activeRipples.size();
-            for (int i = 0; i < N; i++) {
-                activeRipples.get(i).getBounds(rippleBounds);
-                drawingBounds.union(rippleBounds);
-            }
+        final Ripple[] activeRipples = mActiveRipples;
+        final int N = mActiveRipplesCount;
+        for (int i = 0; i < N; i++) {
+            activeRipples[i].getBounds(rippleBounds);
+            drawingBounds.union(rippleBounds);
         }
 
         dirtyBounds.union(drawingBounds);
@@ -539,34 +449,39 @@
 
     @Override
     public ConstantState getConstantState() {
-        // TODO: Can we just rely on super.getConstantState()?
         return mState;
     }
 
-    static class TouchFeedbackState extends WrapperState {
-        int[] mThemeAttrs;
-        ConstantState mMaskState;
+    static class TouchFeedbackState extends LayerState {
+        int[] mTouchThemeAttrs;
         ColorStateList mTint;
-        Mode mTintMode;
+        PorterDuffXfermode mTintXfermode;
         boolean mPinned;
-        boolean mProjected;
 
-        public TouchFeedbackState(TouchFeedbackState orig) {
-            super(orig);
+        public TouchFeedbackState(
+                TouchFeedbackState orig, TouchFeedbackDrawable owner, Resources res) {
+            super(orig, owner, res);
 
             if (orig != null) {
-                mThemeAttrs = orig.mThemeAttrs;
+                mTouchThemeAttrs = orig.mTouchThemeAttrs;
                 mTint = orig.mTint;
-                mTintMode = orig.mTintMode;
-                mMaskState = orig.mMaskState;
+                mTintXfermode = orig.mTintXfermode;
                 mPinned = orig.mPinned;
-                mProjected = orig.mProjected;
             }
         }
+        
+        public void setTintMode(Mode mode) {
+            final Mode invertedMode = TouchFeedbackState.invertPorterDuffMode(mode);
+            mTintXfermode = new PorterDuffXfermode(invertedMode);
+        }
+        
+        public PorterDuffXfermode getTintXfermode() {
+            return mTintXfermode;
+        }
 
         @Override
         public boolean canApplyTheme() {
-            return mThemeAttrs != null;
+            return mTouchThemeAttrs != null || super.canApplyTheme();
         }
 
         @Override
@@ -583,16 +498,66 @@
         public Drawable newDrawable(Resources res, Theme theme) {
             return new TouchFeedbackDrawable(this, res, theme);
         }
+
+        /**
+         * Inverts SRC and DST in PorterDuff blending modes.
+         */
+        private static Mode invertPorterDuffMode(Mode src) {
+            switch (src) {
+                case SRC_ATOP:
+                    return Mode.DST_ATOP;
+                case SRC_IN:
+                    return Mode.DST_IN;
+                case SRC_OUT:
+                    return Mode.DST_OUT;
+                case SRC_OVER:
+                    return Mode.DST_OVER;
+                case DST_ATOP:
+                    return Mode.SRC_ATOP;
+                case DST_IN:
+                    return Mode.SRC_IN;
+                case DST_OUT:
+                    return Mode.SRC_OUT;
+                case DST_OVER:
+                    return Mode.SRC_OVER;
+                default:
+                    // Everything else is agnostic to SRC versus DST.
+                    return src;
+            }
+        }
     }
 
     private TouchFeedbackDrawable(TouchFeedbackState state, Resources res, Theme theme) {
-        if (theme != null && state.canApplyTheme()) {
-            mState = new TouchFeedbackState(state);
-            applyTheme(theme);
+        boolean needsTheme = false;
+
+        final TouchFeedbackState ns;
+        if (theme != null && state != null && state.canApplyTheme()) {
+            ns = new TouchFeedbackState(state, this, res);
+            needsTheme = true;
+        } else if (state == null) {
+            ns = new TouchFeedbackState(null, this, res);
         } else {
-            mState = state;
+            // We always need a new state since child drawables contain local
+            // state but live within the parent's constant state.
+            // TODO: Move child drawables into local state.
+            ns = new TouchFeedbackState(state, this, res);
         }
 
-        setConstantState(state, res);
+        if (res != null) {
+            mDensity = res.getDisplayMetrics().density;
+        }
+
+        mState = ns;
+        mLayerState = ns;
+
+        if (ns.mNum > 0) {
+            ensurePadding();
+        }
+
+        if (needsTheme) {
+            applyTheme(theme);
+        }
+
+        setPaddingMode(PADDING_MODE_STACK);
     }
 }
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
new file mode 100644
index 0000000..493e276
--- /dev/null
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -0,0 +1,2209 @@
+/*
+ * 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 android.graphics.drawable;
+
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.content.res.Resources;
+import android.content.res.Resources.Theme;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PathMeasure;
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.graphics.Region;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Xml;
+import android.view.animation.AccelerateDecelerateInterpolator;
+import android.view.animation.Interpolator;
+import android.view.animation.LinearInterpolator;
+
+import com.android.internal.R;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+
+/**
+ * This lets you create a drawable based on an XML vector graphic
+ * It can be defined in an XML file with the <code>&lt;vector></code> element.
+ * <p/>
+ * The vector drawable has 6 elements:
+ * <p/>
+ * <dl>
+ * <dt><code>&lt;vector></code></dt>
+ * <dd>The attribute <code>android:trigger</code> defines a state change that
+ * will drive the animation </dd>
+ * <dd>The attribute <code>android:versionCode</code> defines the version of
+ * VectorDrawable </dd>
+ * <dt><code>&lt;size></code></dt>
+ * <dd>Used to defined the intrinsic Width Height size of the drawable using
+ * <code>android:width</code> and <code>android:height</code> </dd>
+ * <dt><code>&lt;viewport></code></dt>
+ * <dd>Used to defined the size of the virtual canvas the paths are drawn on.
+ * The size is defined using the attributes <code>android:viewportHeight
+ * </code> <code>android:viewportWidth</code></dd>
+ * <dt><code>&lt;group></code></dt>
+ * <dd>Defines a "key frame" in the animation if there is only one group the
+ * drawable is static 2D image that has no animation.</dd>
+ * <dt><code>&lt;path></code></dt>
+ * <dd>Defines paths to be drawn. The path elements must be within a group
+ * <dl>
+ * <dt><code>android:name</code>
+ * <dd>Defines the name of the path.</dd></dt>
+ * <dt><code>android:pathData</code>
+ * <dd>Defines path string.</dd></dt>
+ * <dt><code>android:fill</code>
+ * <dd>Defines the color to fill the path (none if not present).</dd></dt>
+ * <dt><code>android:stroke</code>
+ * <dd>Defines the color to draw the path outline (none if not present).</dd></dt>
+ * <dt><code>android:strokeWidth</code>
+ * <dd>The width a path stroke</dd></dt>
+ * <dt><code>android:strokeOpacity</code>
+ * <dd>The opacity of a path stroke</dd></dt>
+ * <dt><code>android:rotation</code>
+ * <dd>The amount to rotation the path stroke.</dd></dt>
+ * <dt><code>android:pivotX</code>
+ * <dd>The X coordinate of the center of rotation of a path</dd></dt>
+ * <dt><code>android:pivotY</code>
+ * <dd>The Y coordinate of the center of rotation of a path</dd></dt>
+ * <dt><code>android:fillOpacity</code>
+ * <dd>The opacity to fill the path with</dd></dt>
+ * <dt><code>android:trimPathStart</code>
+ * <dd>The fraction of the path to trim from the start from 0 to 1</dd></dt>
+ * <dt><code>android:trimPathEnd</code>
+ * <dd>The fraction of the path to trim from the end from 0 to 1</dd></dt>
+ * <dt><code>android:trimPathOffset</code>
+ * <dd>Shift trim region (allows showed region to include the start and end) from 0 to 1</dd></dt>
+ * <dt><code>android:clipToPath</code>
+ * <dd>Path will set the clip path</dd></dt>
+ * <dt><code>android:strokeLineCap</code>
+ * <dd>Sets the linecap for a stroked path: butt, round, square</dd></dt>
+ * <dt><code>android:strokeLineJoin</code>
+ * <dd>Sets the lineJoin for a stroked path: miter,round,bevel</dd></dt>
+ * <dt><code>android:strokeMiterLimit</code>
+ * <dd>Sets the Miter limit for a stroked path</dd></dt>
+ * <dt><code>android:state_pressed</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_focused</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_selected</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_window_focused</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_enabled</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_activated</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_accelerated</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_hovered</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_checked</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * <dt><code>android:state_checkable</code>
+ * <dd>Sets a condition to be met to draw path</dd></dt>
+ * </dl>
+ * </dd>
+ * <dt><code>&lt;animation></code></dt>
+ * <dd>Used to customize the transition between two paths
+ * <dl>
+ * <dt><code>android:sequence</code>
+ * <dd>Configures this animation sequence between the named paths.</dd></dt>
+ * <dt><code>android:limitTo</code>
+ * <dd>Limits an animation to only interpolate the selected variable
+ * unlimited, path, rotation, trimPathStart, trimPathEnd, trimPathOffset</dd></dt>
+ * <dt><code>android:repeatCount</code>
+ * <dd>Number of times to loop this aspect of the animation</dd></dt>
+ * <dt><code>android:durations</code>
+ * <dd>The duration of each step in the animation in milliseconds
+ * Must contain the number of named paths - 1</dd></dt>
+ * <dt><code>android:startDelay</code>
+ * <dd></dd></dt>
+ * <dt><code>android:repeatStyle</code>
+ *  <dd>when repeating how does it repeat back and forth or a to b: forward, inAndOut</dd></dt>
+ * <dt><code>android:animate</code>
+ *  <dd>linear, accelerate, decelerate, easing</dd></dt>
+ * </dl>
+ * </dd>
+ */
+public class VectorDrawable extends Drawable {
+    private static final String LOGTAG = VectorDrawable.class.getSimpleName();
+
+    private static final String SHAPE_SIZE = "size";
+    private static final String SHAPE_VIEWPORT = "viewport";
+    private static final String SHAPE_GROUP = "group";
+    private static final String SHAPE_PATH = "path";
+    private static final String SHAPE_TRANSITION = "transition";
+    private static final String SHAPE_ANIMATION = "animation";
+    private static final String SHAPE_VECTOR = "vector";
+
+    private static final int LINECAP_BUTT = 0;
+    private static final int LINECAP_ROUND = 1;
+    private static final int LINECAP_SQUARE = 2;
+
+    private static final int LINEJOIN_MITER = 0;
+    private static final int LINEJOIN_ROUND = 1;
+    private static final int LINEJOIN_BEVEL = 2;
+
+    private static final int DEFAULT_DURATION = 1000;
+    private static final long DEFAULT_INFINITE_DURATION = 60 * 60 * 1000;
+
+    private final VectorDrawableState mVectorState;
+
+    private int mAlpha = 0xFF;
+
+    public VectorDrawable() {
+        mVectorState = new VectorDrawableState(null);
+        mVectorState.mBasicAnimator = ObjectAnimator.ofFloat(this, "AnimationFraction", 0, 1);
+
+        setDuration(DEFAULT_DURATION);
+    }
+
+    private VectorDrawable(VectorDrawableState state, Resources res, Theme theme) {
+        mVectorState = new VectorDrawableState(state);
+        mVectorState.mBasicAnimator = ObjectAnimator.ofFloat(this, "AnimationFraction", 0, 1);
+
+        if (theme != null && canApplyTheme()) {
+            applyTheme(theme);
+        }
+
+        long duration = mVectorState.mVAnimatedPath.getTotalAnimationDuration();
+        if (duration == -1) { // if it set to infinite set to 1 hour
+            duration = DEFAULT_INFINITE_DURATION; // TODO define correct approach for infinite
+            mVectorState.mBasicAnimator.setFloatValues(0, duration / 1000);
+            mVectorState.mBasicAnimator.setInterpolator(new LinearInterpolator());
+        }
+        setDuration(duration);
+    }
+
+    @Override
+    public ConstantState getConstantState() {
+        return mVectorState;
+    }
+
+    /**
+     * Starts the animation.
+     */
+    public void start() {
+        mVectorState.mBasicAnimator.start();
+    }
+
+    /**
+     * Stops the animation.
+     */
+    public void stop() {
+        mVectorState.mBasicAnimator.end();
+    }
+
+    /**
+     * Returns the current completion value for the animation.
+     *
+     * @return the current point on the animation, typically between 0 and 1
+     */
+    public float geAnimationFraction() {
+        return mVectorState.mVAnimatedPath.getValue();
+    }
+
+    /**
+     * Set the current completion value for the animation.
+     *
+     * @param value the point along the animation, typically between 0 and 1
+     */
+    public void setAnimationFraction(float value) {
+        mVectorState.mVAnimatedPath.setAnimationFraction(value);
+        invalidateSelf();
+    }
+
+    /**
+     * set the amount of time the animation will take
+     *
+     * @param duration amount of time in milliseconds
+     */
+    public void setDuration(long duration) {
+        mVectorState.mBasicAnimator.setDuration(duration);
+    }
+
+    /**
+     * Defines what this animation should do when it reaches the end. This
+     * setting is applied only when the repeat count is either greater than
+     * 0 or {@link ValueAnimator#INFINITE}.
+     *
+     * @param mode the animation mode, either {@link ValueAnimator#RESTART}
+     *        or {@link ValueAnimator#REVERSE}
+     */
+    public void setRepeatMode(int mode) {
+        mVectorState.mBasicAnimator.setRepeatMode(mode);
+    }
+
+    /**
+     * Sets animation to repeat
+     *
+     * @param repeat True if this drawable repeats its animation
+     */
+    public void setRepeatCount(int repeat) {
+        mVectorState.mBasicAnimator.setRepeatCount(repeat);
+    }
+
+    /**
+     * @return the animation repeat count, either a value greater than 0 or
+     *         {@link ValueAnimator#INFINITE}
+     */
+    public int getRepeatCount() {
+        return mVectorState.mBasicAnimator.getRepeatCount();
+    }
+
+    @Override
+    public boolean isStateful() {
+        return true;
+    }
+
+    @Override
+    protected boolean onStateChange(int[] state) {
+        super.onStateChange(state);
+
+        mVectorState.mVAnimatedPath.setState(state);
+
+        final int direction = mVectorState.mVAnimatedPath.getTrigger(state);
+        if (direction > 0) {
+            animateForward();
+        } else if (direction < 0) {
+            animateBackward();
+        }
+
+        invalidateSelf();
+        return true;
+    }
+
+    private void animateForward(){
+        if (!mVectorState.mBasicAnimator.isStarted()) {
+            mVectorState.mBasicAnimator.setFloatValues(0,1);
+            start();
+        }
+    }
+
+    private void animateBackward(){
+        if (!mVectorState.mBasicAnimator.isStarted()) {
+            mVectorState.mBasicAnimator.setFloatValues(.99f,0);
+            start();
+        }
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        final int saveCount = canvas.save();
+        final Rect bounds = getBounds();
+        canvas.translate(bounds.left, bounds.top);
+        mVectorState.mVAnimatedPath.draw(canvas, bounds.width(), bounds.height());
+        canvas.restoreToCount(saveCount);
+    }
+
+    @Override
+    public void setAlpha(int alpha) {
+        // TODO correct handling of transparent
+        if (mAlpha != alpha) {
+            mAlpha = alpha;
+            invalidateSelf();
+        }
+    }
+
+    @Override
+    public void setColorFilter(ColorFilter colorFilter) {
+        // TODO: support color filter
+    }
+
+    @Override
+    public int getOpacity() {
+        return PixelFormat.TRANSLUCENT;
+    }
+
+    /**
+     * Sets padding for this shape, defined by a Rect object. Define the padding in the Rect object
+     * as: left, top, right, bottom.
+     */
+    public void setPadding(Rect padding) {
+        setPadding(padding.left, padding.top, padding.right, padding.bottom);
+    }
+
+    /**
+     * Sets padding for the shape.
+     *
+     * @param left padding for the left side (in pixels)
+     * @param top padding for the top (in pixels)
+     * @param right padding for the right side (in pixels)
+     * @param bottom padding for the bottom (in pixels)
+     */
+    public void setPadding(int left, int top, int right, int bottom) {
+        if ((left | top | right | bottom) == 0) {
+            mVectorState.mPadding = null;
+        } else {
+            if (mVectorState.mPadding == null) {
+                mVectorState.mPadding = new Rect();
+            }
+            mVectorState.mPadding.set(left, top, right, bottom);
+        }
+        invalidateSelf();
+    }
+
+    @Override
+    public int getIntrinsicWidth() {
+        return (int) mVectorState.mVAnimatedPath.mBaseWidth;
+    }
+
+    @Override
+    public int getIntrinsicHeight() {
+        return (int) mVectorState.mVAnimatedPath.mBaseHeight;
+    }
+
+    @Override
+    public boolean getPadding(Rect padding) {
+        if (mVectorState.mPadding != null) {
+            padding.set(mVectorState.mPadding);
+            return true;
+        } else {
+            return super.getPadding(padding);
+        }
+    }
+
+    @Override
+    public void inflate(Resources res, XmlPullParser parser, AttributeSet attrs, Theme theme)
+            throws XmlPullParserException, IOException {
+        final VAnimatedPath p = inflateInternal(res, parser, attrs, theme);
+        setAnimatedPath(p);
+    }
+
+    @Override
+    public boolean canApplyTheme() {
+        return super.canApplyTheme() || mVectorState != null && mVectorState.canApplyTheme();
+    }
+
+    @Override
+    public void applyTheme(Theme t) {
+        super.applyTheme(t);
+
+        final VectorDrawableState state = mVectorState;
+        final VAnimatedPath path = state.mVAnimatedPath;
+        if (path != null && path.canApplyTheme()) {
+            path.applyTheme(t);
+        }
+    }
+
+    /** @hide */
+    public static VectorDrawable create(Resources resources, int rid) {
+        try {
+            final XmlPullParser xpp = resources.getXml(rid);
+            final AttributeSet attrs = Xml.asAttributeSet(xpp);
+            final XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
+            factory.setNamespaceAware(true);
+
+            final VectorDrawable drawable = new VectorDrawable();
+            drawable.inflate(resources, xpp, attrs);
+            drawable.setAnimationFraction(0);
+
+            return drawable;
+        } catch (XmlPullParserException e) {
+            Log.e(LOGTAG, "parser error", e);
+        } catch (IOException e) {
+            Log.e(LOGTAG, "parser error", e);
+        }
+        return null;
+    }
+
+    private VAnimatedPath inflateInternal(Resources res, XmlPullParser parser, AttributeSet attrs,
+            Theme theme) throws XmlPullParserException, IOException {
+        final VAnimatedPath animatedPath = new VAnimatedPath();
+
+        boolean noSizeTag = true;
+        boolean noViewportTag = true;
+        boolean noGroupTag = true;
+        boolean noPathTag = true;
+
+        VGroup currentGroup = null;
+
+        int eventType = parser.getEventType();
+        while (eventType != XmlPullParser.END_DOCUMENT) {
+            if (eventType == XmlPullParser.START_TAG) {
+                final String tagName = parser.getName();
+                if (SHAPE_PATH.equals(tagName)) {
+                    final VPath path = new VPath();
+                    path.inflate(res, attrs, theme);
+                    currentGroup.add(path);
+                    noPathTag = false;
+                } else if (SHAPE_ANIMATION.equals(tagName)) {
+                    final VAnimation anim = new VAnimation();
+                    anim.inflate(animatedPath.mGroupList, res, attrs, theme);
+                    animatedPath.addAnimation(anim);
+                } else if (SHAPE_SIZE.equals(tagName)) {
+                    animatedPath.parseSize(res, attrs);
+                    noSizeTag = false;
+                } else if (SHAPE_VIEWPORT.equals(tagName)) {
+                    animatedPath.parseViewport(res, attrs);
+                    noViewportTag = false;
+                } else if (SHAPE_GROUP.equals(tagName)) {
+                    currentGroup = new VGroup();
+                    animatedPath.mGroupList.add(currentGroup);
+                    noGroupTag = false;
+                }  else if (SHAPE_VECTOR.equals(tagName)) {
+                    final TypedArray a = res.obtainAttributes(attrs, R.styleable.VectorDrawable);
+                    animatedPath.setTrigger(a.getInteger(R.styleable.VectorDrawable_trigger, 0));
+
+                    // Parsing the version information.
+                    // Right now, we only support version "1".
+                    // If the xml didn't specify the version number, the default version is "1".
+                    final int versionCode = a.getInt(R.styleable.VectorDrawable_versionCode, 1);
+                    if (versionCode != 1) {
+                        throw new IllegalArgumentException(
+                                "So far, VectorDrawable only support version 1");
+                    }
+
+                    a.recycle();
+                }
+            }
+
+            eventType = parser.next();
+        }
+
+        if (noSizeTag || noViewportTag || noGroupTag || noPathTag) {
+            final StringBuffer tag = new StringBuffer();
+
+            if (noSizeTag) {
+                tag.append(SHAPE_SIZE);
+            }
+
+            if  (noViewportTag){
+                if (tag.length()>0) {
+                    tag.append(" & ");
+                }
+                tag.append(SHAPE_SIZE);
+            }
+
+            if  (noGroupTag){
+                if (tag.length()>0) {
+                    tag.append(" & ");
+                }
+                tag.append(SHAPE_GROUP);
+            }
+
+            if  (noPathTag){
+                if (tag.length()>0) {
+                    tag.append(" or ");
+                }
+                tag.append(SHAPE_PATH);
+            }
+
+            throw new XmlPullParserException("no " + tag + " defined");
+        }
+
+        // post parse cleanup
+        animatedPath.parseFinish();
+        return animatedPath;
+    }
+
+    private void setAnimatedPath(VAnimatedPath animatedPath) {
+        mVectorState.mVAnimatedPath = animatedPath;
+
+        long duration = mVectorState.mVAnimatedPath.getTotalAnimationDuration();
+        if (duration == -1) { // if it set to infinite set to 1 hour
+            duration = DEFAULT_INFINITE_DURATION; // TODO define correct approach for infinite
+            mVectorState.mBasicAnimator.setFloatValues(0, duration / 1000);
+            mVectorState.mBasicAnimator.setInterpolator(new LinearInterpolator());
+        }
+
+        setDuration(duration);
+        setAnimationFraction(0);
+    }
+
+    @Override
+    public boolean setVisible(boolean visible, boolean restart) {
+        boolean changed = super.setVisible(visible, restart);
+        if (visible) {
+            if (changed || restart) {
+                setAnimationFraction(0);
+            }
+        } else {
+            stop();
+        }
+        return changed;
+    }
+
+    private static class VectorDrawableState extends ConstantState {
+        int mChangingConfigurations;
+        ValueAnimator mBasicAnimator;
+        VAnimatedPath mVAnimatedPath;
+        Rect mPadding;
+
+        public VectorDrawableState(VectorDrawableState copy) {
+            if (copy != null) {
+                mChangingConfigurations = copy.mChangingConfigurations;
+                mVAnimatedPath = new VAnimatedPath(copy.mVAnimatedPath);
+                mPadding = new Rect(copy.mPadding);
+            }
+        }
+
+        @Override
+        public Drawable newDrawable() {
+            return new VectorDrawable(this, null, null);
+        }
+
+        @Override
+        public Drawable newDrawable(Resources res) {
+            return new VectorDrawable(this, res, null);
+        }
+
+        @Override
+        public Drawable newDrawable(Resources res, Theme theme) {
+            return new VectorDrawable(this, res, theme);
+        }
+
+        @Override
+        public int getChangingConfigurations() {
+            return mChangingConfigurations;
+        }
+    }
+
+    private static class VAnimatedPath {
+        private static final int [] TRIGGER_MAP = {
+                0,
+                R.attr.state_pressed,
+                R.attr.state_focused,
+                R.attr.state_hovered,
+                R.attr.state_selected,
+                R.attr.state_checkable,
+                R.attr.state_checked,
+                R.attr.state_activated,
+                R.attr.state_focused
+        };
+
+        private final Path mPath = new Path();
+        private final Path mRenderPath = new Path();
+        private final Matrix mMatrix = new Matrix();
+
+        private ArrayList<VAnimation> mCurrentAnimList;
+        private VPath[] mCurrentPaths;
+        private Paint mStrokePaint;
+        private Paint mFillPaint;
+        private PathMeasure mPathMeasure;
+
+        private int[] mCurrentState = new int[0];
+        private float mAnimationValue;
+        private long mTotalDuration;
+        private int mTrigger;
+        private boolean mTriggerState;
+
+        final ArrayList<VGroup> mGroupList = new ArrayList<VGroup>();
+
+        float mBaseWidth = 1;
+        float mBaseHeight = 1;
+        float mViewportWidth;
+        float mViewportHeight;
+
+        public VAnimatedPath() {
+        }
+
+        public VAnimatedPath(VAnimatedPath copy) {
+            mCurrentAnimList = new ArrayList<VAnimation>(copy.mCurrentAnimList);
+            mGroupList.addAll(copy.mGroupList);
+            if (copy.mCurrentPaths != null) {
+                mCurrentPaths = new VPath[copy.mCurrentPaths.length];
+                for (int i = 0; i < mCurrentPaths.length; i++) {
+                    mCurrentPaths[i] = new VPath(copy.mCurrentPaths[i]);
+                }
+            }
+            mAnimationValue = copy.mAnimationValue; // time goes from 0 to 1
+
+            mBaseWidth = copy.mBaseWidth;
+            mBaseHeight = copy.mBaseHeight;
+            mViewportWidth = copy.mViewportHeight;
+            mViewportHeight = copy.mViewportHeight;
+            mTotalDuration = copy.mTotalDuration;
+            mTrigger = copy.mTrigger;
+            mCurrentState = new int[0];
+        }
+
+        public boolean canApplyTheme() {
+            final ArrayList<VGroup> groups = mGroupList;
+            for (int i = groups.size() - 1; i >= 0; i--) {
+                final ArrayList<VPath> paths = groups.get(i).mVGList;
+                for (int j = paths.size() - 1; j >= 0; j--) {
+                    final VPath path = paths.get(j);
+                    if (path.canApplyTheme()) {
+                        return true;
+                    }
+                }
+            }
+
+            final ArrayList<VAnimation> anims = mCurrentAnimList;
+            for (int i = anims.size() - 1; i >= 0; i--) {
+                final VAnimation anim = anims.get(i);
+                if (anim.canApplyTheme()) {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
+        public void applyTheme(Theme t) {
+            final ArrayList<VGroup> groups = mGroupList;
+            for (int i = groups.size() - 1; i >= 0; i--) {
+                final ArrayList<VPath> paths = groups.get(i).mVGList;
+                for (int j = paths.size() - 1; j >= 0; j--) {
+                    final VPath path = paths.get(j);
+                    if (path.canApplyTheme()) {
+                        path.applyTheme(t);
+                    }
+                }
+            }
+
+            final ArrayList<VAnimation> anims = mCurrentAnimList;
+            for (int i = anims.size() - 1; i >= 0; i--) {
+                final VAnimation anim = anims.get(i);
+                if (anim.canApplyTheme()) {
+                    anim.applyTheme(t);
+                }
+            }
+        }
+
+        public void setTrigger(int trigger){
+            mTrigger = VAnimatedPath.getStateForTrigger(trigger);
+        }
+
+        public long getTotalAnimationDuration() {
+            mTotalDuration = 0;
+            int size = mCurrentAnimList.size();
+            for (int i = 0; i < size; i++) {
+                VAnimation vAnimation = mCurrentAnimList.get(i);
+                long t = vAnimation.getTotalDuration();
+                if (t == -1) {
+                    mTotalDuration = -1;
+                    return -1;
+                }
+                mTotalDuration = Math.max(mTotalDuration, t);
+            }
+
+            return mTotalDuration;
+        }
+
+        public float getValue() {
+            return mAnimationValue;
+        }
+
+        /**
+         * @param value the point along the animations to show typically between 0.0f and 1.0f
+         * @return true if you need to keep repeating
+         */
+        public boolean setAnimationFraction(float value) {
+            getTotalAnimationDuration();
+
+            long animationTime = (long) (value * mTotalDuration);
+
+            final int len = mCurrentPaths.length;
+            for (int i = 0; i < len; i++) {
+                animationTime =
+                        (long) ((mTotalDuration == -1) ? value * 1000 : mTotalDuration * value);
+
+                final VPath path = mCurrentPaths[i];
+                final int size = mCurrentAnimList.size();
+                for (int j = 0; j < size; j++) {
+                    final VAnimation vAnimation = mCurrentAnimList.get(j);
+                    if (vAnimation.doesAdjustPath(path)) {
+                        mCurrentPaths[i] =  vAnimation.getPathAtTime(animationTime, path);
+                    }
+                }
+            }
+
+            mAnimationValue = value;
+
+            if (mTotalDuration == -1) {
+                return true;
+            } else {
+                return animationTime < mTotalDuration;
+            }
+        }
+
+        public void draw(Canvas canvas, int w, int h) {
+            if (mCurrentPaths == null) {
+                Log.e(LOGTAG,"mCurrentPaths == null");
+                return;
+            }
+
+            for (int i = 0; i < mCurrentPaths.length; i++) {
+                if (mCurrentPaths[i] != null && mCurrentPaths[i].isVisible(mCurrentState)) {
+                    drawPath(mCurrentPaths[i], canvas, w, h);
+                }
+            }
+        }
+
+        private void drawPath(VPath vPath, Canvas canvas, int w, int h) {
+            final float scale = Math.min(h / mViewportHeight, w / mViewportWidth);
+
+            vPath.toPath(mPath);
+            final Path path = mPath;
+
+            if (vPath.mTrimPathStart != 0.0f || vPath.mTrimPathEnd != 1.0f) {
+                float start = (vPath.mTrimPathStart + vPath.mTrimPathOffset) % 1.0f;
+                float end = (vPath.mTrimPathEnd + vPath.mTrimPathOffset) % 1.0f;
+
+                if (mPathMeasure == null) {
+                    mPathMeasure = new PathMeasure();
+                }
+                mPathMeasure.setPath(mPath, false);
+
+                float len = mPathMeasure.getLength();
+                start = start * len;
+                end = end * len;
+                path.reset();
+                if (start > end) {
+                    mPathMeasure.getSegment(start, len, path, true);
+                    mPathMeasure.getSegment(0f, end, path, true);
+                } else {
+                    mPathMeasure.getSegment(start, end, path, true);
+                }
+                path.rLineTo(0, 0); // fix bug in measure
+            }
+
+            mRenderPath.reset();
+            mMatrix.reset();
+
+            mMatrix.postRotate(vPath.mRotate, vPath.mPivotX, vPath.mPivotY);
+            mMatrix.postScale(scale, scale, mViewportWidth / 2f, mViewportHeight / 2f);
+            mMatrix.postTranslate(w / 2f - mViewportWidth / 2f, h / 2f - mViewportHeight / 2f);
+
+            mRenderPath.addPath(path, mMatrix);
+
+            if (vPath.mClip) {
+                canvas.clipPath(mRenderPath, Region.Op.REPLACE);
+            }
+
+            if (vPath.mFillColor != 0) {
+                if (mFillPaint == null) {
+                    mFillPaint = new Paint();
+                    mFillPaint.setStyle(Paint.Style.FILL);
+                    mFillPaint.setAntiAlias(true);
+                }
+
+                mFillPaint.setColor(vPath.mFillColor);
+                canvas.drawPath(mRenderPath, mFillPaint);
+            }
+
+            if (vPath.mStrokeColor != 0) {
+                if (mStrokePaint == null) {
+                    mStrokePaint = new Paint();
+                    mStrokePaint.setStyle(Paint.Style.STROKE);
+                    mStrokePaint.setAntiAlias(true);
+                }
+
+                final Paint strokePaint = mStrokePaint;
+                if (vPath.mStrokeLineJoin != null) {
+                    strokePaint.setStrokeJoin(vPath.mStrokeLineJoin);
+                }
+
+                if (vPath.mStrokeLineCap != null) {
+                    strokePaint.setStrokeCap(vPath.mStrokeLineCap);
+                }
+
+                strokePaint.setStrokeMiter(vPath.mStrokeMiterlimit * scale);
+                strokePaint.setColor(vPath.mStrokeColor);
+                strokePaint.setStrokeWidth(vPath.mStrokeWidth * scale);
+                canvas.drawPath(mRenderPath, strokePaint);
+            }
+        }
+
+        /**
+         * Ensure there is at least one animation for every path in group (linking them by names)
+         * Build the "current" path based on the first group
+         * TODO: improve memory use & performance or move to C++
+         */
+        public void parseFinish() {
+            final HashMap<String, VAnimation> newAnimations = new HashMap<String, VAnimation>();
+            for (VGroup group : mGroupList) {
+                for (VPath vPath : group.getPaths()) {
+                    if (!vPath.mAnimated) {
+                        VAnimation ap = null;
+
+                        if (!newAnimations.containsKey(vPath.getID())) {
+                            newAnimations.put(vPath.getID(), ap = new VAnimation());
+                        } else {
+                            ap = newAnimations.get(vPath.getID());
+                        }
+
+                        ap.addPath(vPath);
+                        vPath.mAnimated = true;
+                    }
+                }
+            }
+
+            if (mCurrentAnimList == null) {
+                mCurrentAnimList = new ArrayList<VectorDrawable.VAnimation>();
+            }
+            mCurrentAnimList.addAll(newAnimations.values());
+
+            final Collection<VPath> paths = mGroupList.get(0).getPaths();
+            mCurrentPaths = paths.toArray(new VPath[paths.size()]);
+            for (int i = 0; i < mCurrentPaths.length; i++) {
+                mCurrentPaths[i] = new VPath(mCurrentPaths[i]);
+            }
+        }
+
+        public void setState(int[] state) {
+            mCurrentState = Arrays.copyOf(state, state.length);
+        }
+
+        int getTrigger(int []state){
+            if (mTrigger == 0) return 0;
+            for (int i = 0; i < state.length; i++) {
+                if (state[i] == mTrigger){
+                    if (mTriggerState)
+                        return 0;
+                    mTriggerState = true;
+                    return 1;
+                }
+            }
+            if (mTriggerState) {
+                mTriggerState = false;
+                return -1;
+            }
+            return 0;
+        }
+
+        public void addAnimation(VAnimation anim) {
+            if (mCurrentAnimList == null) {
+                mCurrentAnimList = new ArrayList<VectorDrawable.VAnimation>();
+            }
+            mCurrentAnimList.add(anim);
+        }
+
+        private void parseViewport(Resources r, AttributeSet attrs)
+                throws XmlPullParserException {
+            final TypedArray a = r.obtainAttributes(attrs, R.styleable.VectorDrawableViewport);
+            mViewportWidth = a.getFloat(R.styleable.VectorDrawableViewport_viewportWidth, 0);
+            mViewportHeight = a.getFloat(R.styleable.VectorDrawableViewport_viewportHeight, 0);
+            if (mViewportWidth == 0 || mViewportHeight == 0) {
+                throw new XmlPullParserException(a.getPositionDescription()+
+                        "<viewport> tag requires viewportWidth & viewportHeight to be set");
+            }
+            a.recycle();
+        }
+
+        private void parseSize(Resources r, AttributeSet attrs)
+                throws XmlPullParserException  {
+            final TypedArray a = r.obtainAttributes(attrs, R.styleable.VectorDrawableSize);
+            mBaseWidth = a.getDimension(R.styleable.VectorDrawableSize_width, 0);
+            mBaseHeight = a.getDimension(R.styleable.VectorDrawableSize_height, 0);
+            if (mBaseWidth == 0 || mBaseHeight == 0) {
+                throw new XmlPullParserException(a.getPositionDescription()+
+                        "<size> tag requires width & height to be set");
+            }
+            a.recycle();
+        }
+
+        private static final int getStateForTrigger(int trigger) {
+            return TRIGGER_MAP[trigger];
+        }
+    }
+
+    private static class VAnimation {
+        private static final String SEPARATOR = ",";
+
+        private static final int DIRECTION_FORWARD = 0;
+        private static final int DIRECTION_IN_AND_OUT = 1;
+
+        public enum Style {
+            INTERPOLATE, CROSSFADE, WIPE
+        }
+
+        private final HashSet<String> mSeqMap = new HashSet<String>();
+
+        private Interpolator mAnimInterpolator = new AccelerateDecelerateInterpolator();
+        private VPath[] mPaths = new VPath[0];
+        private long[] mDuration = { DEFAULT_DURATION };
+
+        private int[] mThemeAttrs;
+        private Style mStyle;
+        private int mLimitProperty = 0;
+        private long mStartOffset;
+        private long mRepeat = 1;
+        private long mWipeDirection;
+        private int mMode = DIRECTION_FORWARD;
+        private int mInterpolatorType;
+        private String mId;
+
+        public VAnimation() {
+            // Empty constructor.
+        }
+
+        public void inflate(ArrayList<VGroup> groups, Resources r, AttributeSet attrs, Theme theme)
+                throws XmlPullParserException {
+            String value;
+            String[] sp;
+            int name;
+
+            final TypedArray a = r.obtainAttributes(attrs, R.styleable.VectorDrawableAnimation);
+            final int[] themeAttrs = a.extractThemeAttrs();
+            mThemeAttrs = themeAttrs;
+
+            value = a.getString(R.styleable.VectorDrawableAnimation_sequence);
+            if (value != null) {
+                sp = value.split(SEPARATOR);
+                final VectorDrawable.VPath[] paths = new VectorDrawable.VPath[sp.length];
+
+                for (int j = 0; j < sp.length; j++) {
+                    mSeqMap.add(sp[j].trim());
+                    VectorDrawable.VPath path = groups.get(j).get(sp[j]);
+                    path.mAnimated = true;
+                    paths[j] = path;
+                }
+
+                setPaths(paths);
+            }
+
+            name = R.styleable.VectorDrawableAnimation_durations;
+            value = a.getString(name);
+            if (value != null) {
+                long totalDuration = 0;
+                sp = value.split(SEPARATOR);
+
+                final long[] dur = new long[sp.length];
+                for (int j = 0; j < dur.length; j++) {
+                    dur[j] = Long.parseLong(sp[j]);
+                    totalDuration +=  dur[j];
+                }
+
+                if (totalDuration == 0){
+                    throw new XmlPullParserException(a.getPositionDescription()
+                            + " total duration must not be zero");
+                }
+
+                setDuration(dur);
+            }
+
+            setLimitProperty(a.getInt(R.styleable.VectorDrawableAnimation_limitTo, 0));
+            setRepeat(a.getInt(R.styleable.VectorDrawableAnimation_repeatCount, 1));
+            setStartOffset(a.getInt(R.styleable.VectorDrawableAnimation_startDelay, 0));
+            setMode(a.getInt(R.styleable.VectorDrawableAnimation_repeatStyle, 0));
+
+            fixMissingParameters();
+
+            a.recycle();
+        }
+
+        public boolean canApplyTheme() {
+            return mThemeAttrs != null;
+        }
+
+        public void applyTheme(Theme t) {
+            // TODO: Apply theme.
+        }
+
+        public boolean doesAdjustPath(VPath path) {
+            return mSeqMap.contains(path.getID());
+        }
+
+        public String getId() {
+            if (mId == null) {
+                mId = mPaths[0].getID();
+                for (int i = 1; i < mPaths.length; i++) {
+                    mId += mPaths[i].getID();
+                }
+            }
+            return mId;
+        }
+
+        public String getPathName() {
+            return mPaths[0].getID();
+        }
+
+        public Style getStyle() {
+            return mStyle;
+        }
+
+        public void setStyle(Style style) {
+            mStyle = style;
+        }
+
+        public int getLimitProperty() {
+            return mLimitProperty;
+        }
+
+        public void setLimitProperty(int limitProperty) {
+            mLimitProperty = limitProperty;
+        }
+
+        public long[] getDuration() {
+            return mDuration;
+        }
+
+        public void setDuration(long[] duration) {
+            mDuration = duration;
+        }
+
+        public long getRepeat() {
+            return mRepeat;
+        }
+
+        public void setRepeat(long repeat) {
+            mRepeat = repeat;
+        }
+
+        public long getStartOffset() {
+            return mStartOffset;
+        }
+
+        public void setStartOffset(long startOffset) {
+            mStartOffset = startOffset;
+        }
+
+        public long getWipeDirection() {
+            return mWipeDirection;
+        }
+
+        public void setWipeDirection(long wipeDirection) {
+            mWipeDirection = wipeDirection;
+        }
+
+        public int getMode() {
+            return mMode;
+        }
+
+        public void setMode(int mode) {
+            mMode = mode;
+        }
+
+        public int getInterpolator() {
+            return mInterpolatorType;
+        }
+
+        public void setInterpolator(int interpolator) {
+            mInterpolatorType = interpolator;
+        }
+
+        /**
+         * compute the total time in milliseconds
+         *
+         * @return the total time in milliseconds the animation will take
+         */
+        public long getTotalDuration() {
+            long total = mStartOffset;
+            if (getRepeat() == -1) {
+                return -1;
+            }
+            for (int i = 0; i < mDuration.length; i++) {
+                if (mRepeat > 1) {
+                    total += mDuration[i] * mRepeat;
+                } else {
+                    total += mDuration[i];
+                }
+            }
+            return total;
+        }
+
+        public void setPaths(VPath[] paths) {
+            mPaths = paths;
+        }
+
+        public void addPath(VPath path) {
+            mPaths = Arrays.copyOf(mPaths, mPaths.length + 1);
+            mPaths[mPaths.length - 1] = path;
+        }
+
+        public boolean containsPath(String pathid) {
+            for (int i = 0; i < mPaths.length; i++) {
+                if (mPaths[i].getID().equals(pathid)) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        public void interpolate(VPath p1, VPath p2, float time, VPath dest) {
+            VPath.interpolate(time, p1, p2, dest, mLimitProperty);
+        }
+
+        public VPath getPathAtTime(long milliseconds, VPath dest) {
+            if (mPaths.length == 1) {
+                dest.copyFrom(mPaths[0]);
+                return dest;
+            }
+            long point = milliseconds - mStartOffset;
+            if (point < 0) {
+                point = 0;
+            }
+            float time = 0;
+            long sum = mDuration[0];
+            for (int i = 1; i < mDuration.length; i++) {
+                sum += mDuration[i];
+            }
+
+            if (mRepeat > 1) {
+                time = point / (float) (sum * mRepeat);
+                time = mAnimInterpolator.getInterpolation(time);
+
+                if (mMode == DIRECTION_IN_AND_OUT) {
+                    point = ((long) (time * sum * 2 * mRepeat)) % (sum * 2);
+                    if (point > sum) {
+                        point = sum * 2 - point;
+                    }
+                } else {
+                    point = ((long) (time * sum * mRepeat)) % sum;
+                }
+            } else if (mRepeat == 1) {
+                time = point / (float) (sum * mRepeat);
+                time = mAnimInterpolator.getInterpolation(time);
+                if (mMode == DIRECTION_IN_AND_OUT) {
+                    point = ((long) (time * sum * 2 * mRepeat));
+                    if (point > sum) {
+                        point = sum * 2 - point;
+                    }
+                } else {
+                    point = Math.min(((long) (time * sum * mRepeat)), sum);
+                }
+
+            } else { // repeat = -1
+                if (mMode == DIRECTION_IN_AND_OUT) {
+                    point = point % (sum * 2);
+                    if (point > sum) {
+                        point = sum * 2 - point;
+                    }
+                    time = point / (float) sum;
+                } else {
+                    point = point % sum;
+                    time = point / (float) sum;
+                }
+            }
+
+            int transition = 0;
+            while (point > mDuration[transition]) {
+                point -= mDuration[transition++];
+            }
+            if (mPaths.length > (transition + 1)) {
+                if (mPaths[transition].getID() != dest.getID()) {
+                    dest.copyFrom(mPaths[transition]);
+                }
+                interpolate(mPaths[transition], mPaths[transition + 1],
+                        point / (float) mDuration[transition], dest);
+            } else {
+                interpolate(mPaths[transition], mPaths[transition], 0, dest);
+            }
+            return dest;
+        }
+
+        void fixMissingParameters() {
+            // fix missing points
+            float rotation = Float.NaN;
+            float rotationY = Float.NaN;
+            float rotationX = Float.NaN;
+            for (int i = 0; i < mPaths.length; i++) {
+                if (mPaths[i].mPivotX > 0) {
+                    rotationX = mPaths[i].mPivotX;
+                }
+                if (mPaths[i].mPivotY > 0) {
+                    rotationY = mPaths[i].mPivotY;
+                }
+                if (mPaths[i].mRotate > 0) {
+                    rotation = mPaths[i].mRotate;
+                }
+            }
+            if (rotation > 0) {
+                for (int i = 0; i < mPaths.length; i++) {
+                    if (mPaths[i].mPivotX == 0) {
+                        mPaths[i].mPivotX = rotationX;
+                    }
+                    if (mPaths[i].mPivotY == 0) {
+                        mPaths[i].mPivotY = rotationY;
+                    }
+                }
+            }
+        }
+    }
+
+    private static class VGroup {
+        private final HashMap<String, VPath> mVGPathMap = new HashMap<String, VPath>();
+        private final ArrayList<VPath> mVGList = new ArrayList<VPath>();
+
+        public void add(VPath path) {
+            String id = path.getID();
+            mVGPathMap.put(id, path);
+            mVGList.add(path);
+         }
+
+        public VPath get(String name) {
+            return mVGPathMap.get(name);
+        }
+
+        /**
+         * Must return in order of adding
+         * @return ordered list of paths
+         */
+        public Collection<VPath> getPaths() {
+            return mVGList;
+        }
+
+        public int size() {
+            return mVGPathMap.size();
+        }
+    }
+
+    private static class VPath {
+        private static final int LIMIT_ALL = 0;
+        private static final int LIMIT_PATH = 1;
+        private static final int LIMIT_ROTATE = 2;
+        private static final int LIMIT_TRIM_PATH_START = 3;
+        private static final int LIMIT_TRIM_PATH_OFFSET = 5;
+        private static final int LIMIT_TRIM_PATH_END = 4;
+
+        private static final int STATE_UNDEFINED=0;
+        private static final int STATE_TRUE=1;
+        private static final int STATE_FALSE=2;
+
+        private static final int MAX_STATES = 10;
+
+        private int[] mThemeAttrs;
+
+        int mStrokeColor = 0;
+        float mStrokeWidth = 0;
+        float mStrokeOpacity = Float.NaN;
+
+        int mFillColor = 0;
+        int mFillRule;
+        float mFillOpacity = Float.NaN;
+
+        float mRotate = 0;
+        float mPivotX = 0;
+        float mPivotY = 0;
+
+        float mTrimPathStart = 0;
+        float mTrimPathEnd = 1;
+        float mTrimPathOffset = 0;
+
+        boolean mAnimated = false;
+        boolean mClip = false;
+        Paint.Cap mStrokeLineCap = Paint.Cap.BUTT;
+        Paint.Join mStrokeLineJoin = Paint.Join.MITER;
+        float mStrokeMiterlimit = 4;
+
+        private VNode[] mNode = null;
+        private String mId;
+        private int[] mCheckState = new int[MAX_STATES];
+        private boolean[] mCheckValue = new boolean[MAX_STATES];
+        private int mNumberOfStates = 0;
+        private int mNumberOfTrue = 0;
+
+        public VPath() {
+            // Empty constructor.
+        }
+
+        public VPath(VPath p) {
+            copyFrom(p);
+        }
+
+        public void addStateFilter(int state, boolean condition) {
+            int k = 0;
+            while (k < mNumberOfStates) {
+                if (mCheckState[mNumberOfStates] == state)
+                    break;
+                k++;
+            }
+            mCheckState[k] = state;
+            mCheckValue[k] = condition;
+            if (k==mNumberOfStates){
+                mNumberOfStates++;
+            }
+            if (condition) {
+                mNumberOfTrue++;
+            }
+        }
+
+        private int getState(int state){
+            for (int i = 0; i < mNumberOfStates; i++) {
+                if (mCheckState[mNumberOfStates] == state){
+                    return (mCheckValue[i])?STATE_TRUE:STATE_FALSE;
+                }
+            }
+            return STATE_UNDEFINED;
+        }
+        /**
+         * @return the name of the path
+         */
+        public String getName() {
+            return mId;
+        }
+
+        public void toPath(Path path) {
+            path.reset();
+            if (mNode != null) {
+                VNode.createPath(mNode, path);
+            }
+        }
+
+        public String getID() {
+            return mId;
+        }
+
+        private Paint.Cap getStrokeLineCap(int id, Paint.Cap defValue) {
+            switch (id) {
+                case LINECAP_BUTT:
+                    return Paint.Cap.BUTT;
+                case LINECAP_ROUND:
+                    return Paint.Cap.ROUND;
+                case LINECAP_SQUARE:
+                    return Paint.Cap.SQUARE;
+                default:
+                    return defValue;
+            }
+        }
+
+        private Paint.Join getStrokeLineJoin(int id, Paint.Join defValue) {
+            switch (id) {
+                case LINEJOIN_MITER:
+                    return Paint.Join.MITER;
+                case LINEJOIN_ROUND:
+                    return Paint.Join.ROUND;
+                case LINEJOIN_BEVEL:
+                    return Paint.Join.BEVEL;
+                default:
+                    return defValue;
+            }
+        }
+
+        public void inflate(Resources r, AttributeSet attrs, Theme theme) {
+            final TypedArray a = obtainAttributes(r, theme, attrs, R.styleable.VectorDrawablePath);
+            final int[] themeAttrs = a.extractThemeAttrs();
+            mThemeAttrs = themeAttrs;
+
+            // NOTE: The set of attributes loaded here MUST match the
+            // set of attributes loaded in applyTheme.
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_clipToPath] == 0) {
+                mClip = a.getBoolean(R.styleable.VectorDrawablePath_clipToPath, mClip);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_name] == 0) {
+                mId = a.getString(R.styleable.VectorDrawablePath_name);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_pathData] == 0) {
+                mNode = parsePath(a.getString(R.styleable.VectorDrawablePath_pathData));
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_fill] == 0) {
+                mFillColor = a.getColor(R.styleable.VectorDrawablePath_fill, mFillColor);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_fillOpacity] == 0) {
+                mFillOpacity = a.getFloat(R.styleable.VectorDrawablePath_fillOpacity, mFillOpacity);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_rotation] == 0) {
+                mRotate = a.getFloat(R.styleable.VectorDrawablePath_rotation, mRotate);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_pivotX] == 0) {
+                mPivotX = a.getFloat(R.styleable.VectorDrawablePath_pivotX, mPivotX);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_pivotY] == 0) {
+                mPivotY = a.getFloat(R.styleable.VectorDrawablePath_pivotY, mPivotY);
+            }
+
+            if (themeAttrs == null
+                    || themeAttrs[R.styleable.VectorDrawablePath_strokeLineCap] == 0) {
+                mStrokeLineCap = getStrokeLineCap(
+                        a.getInt(R.styleable.VectorDrawablePath_strokeLineCap, -1), mStrokeLineCap);
+            }
+
+            if (themeAttrs == null
+                    || themeAttrs[R.styleable.VectorDrawablePath_strokeLineJoin] == 0) {
+                mStrokeLineJoin = getStrokeLineJoin(
+                        a.getInt(R.styleable.VectorDrawablePath_strokeLineJoin, -1), mStrokeLineJoin);
+            }
+
+            if (themeAttrs == null
+                    || themeAttrs[R.styleable.VectorDrawablePath_strokeMiterLimit] == 0) {
+                mStrokeMiterlimit = a.getFloat(
+                        R.styleable.VectorDrawablePath_strokeMiterLimit, mStrokeMiterlimit);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_stroke] == 0) {
+                mStrokeColor = a.getColor(R.styleable.VectorDrawablePath_stroke, mStrokeColor);
+            }
+
+            if (themeAttrs == null
+                    || themeAttrs[R.styleable.VectorDrawablePath_strokeOpacity] == 0) {
+                mStrokeOpacity = a.getFloat(
+                        R.styleable.VectorDrawablePath_strokeOpacity, mStrokeOpacity);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_strokeWidth] == 0) {
+                mStrokeWidth = a.getFloat(R.styleable.VectorDrawablePath_strokeWidth, mStrokeWidth);
+            }
+
+            if (themeAttrs == null || themeAttrs[R.styleable.VectorDrawablePath_trimPathEnd] == 0) {
+                mTrimPathEnd = a.getFloat(R.styleable.VectorDrawablePath_trimPathEnd, mTrimPathEnd);
+            }
+
+            if (themeAttrs == null
+                    || themeAttrs[R.styleable.VectorDrawablePath_trimPathOffset] == 0) {
+                mTrimPathOffset = a.getFloat(
+                        R.styleable.VectorDrawablePath_trimPathOffset, mTrimPathOffset);
+            }
+
+            if (themeAttrs == null
+                    || themeAttrs[R.styleable.VectorDrawablePath_trimPathStart] == 0) {
+                mTrimPathStart = a.getFloat(
+                        R.styleable.VectorDrawablePath_trimPathStart, mTrimPathStart);
+            }
+
+            // TODO: Consider replacing this with existing state attributes.
+            final int[] states = {
+                    R.styleable.VectorDrawablePath_state_activated,
+                    R.styleable.VectorDrawablePath_state_checkable,
+                    R.styleable.VectorDrawablePath_state_checked,
+                    R.styleable.VectorDrawablePath_state_enabled,
+                    R.styleable.VectorDrawablePath_state_focused,
+                    R.styleable.VectorDrawablePath_state_hovered,
+                    R.styleable.VectorDrawablePath_state_pressed,
+                    R.styleable.VectorDrawablePath_state_selected,
+                    R.styleable.VectorDrawablePath_state_window_focused
+            };
+
+            final int N = states.length;
+            for (int i = 0; i < N; i++) {
+                final int state = states[i];
+                if (a.hasValue(state)) {
+                    addStateFilter(state, a.getBoolean(state, false));
+                }
+            }
+
+            updateColorAlphas();
+
+            a.recycle();
+        }
+
+        public boolean canApplyTheme() {
+            return mThemeAttrs != null;
+        }
+
+        public void applyTheme(Theme t) {
+            if (mThemeAttrs == null) {
+                return;
+            }
+
+            final TypedArray a = t.resolveAttributes(
+                    mThemeAttrs, R.styleable.VectorDrawablePath, 0, 0);
+
+            mClip = a.getBoolean(R.styleable.VectorDrawablePath_clipToPath, mClip);
+
+            if (a.hasValue(R.styleable.VectorDrawablePath_name)) {
+                mId = a.getString(R.styleable.VectorDrawablePath_name);
+            }
+
+            if (a.hasValue(R.styleable.VectorDrawablePath_pathData)) {
+                mNode = parsePath(a.getString(R.styleable.VectorDrawablePath_pathData));
+            }
+
+            mFillColor = a.getColor(R.styleable.VectorDrawablePath_fill, mFillColor);
+            mFillOpacity = a.getFloat(R.styleable.VectorDrawablePath_fillOpacity, mFillOpacity);
+
+            mRotate = a.getFloat(R.styleable.VectorDrawablePath_rotation, mRotate);
+            mPivotX = a.getFloat(R.styleable.VectorDrawablePath_pivotX, mPivotX);
+            mPivotY = a.getFloat(R.styleable.VectorDrawablePath_pivotY, mPivotY);
+
+            mStrokeLineCap = getStrokeLineCap(a.getInt(
+                    R.styleable.VectorDrawablePath_strokeLineCap, -1), mStrokeLineCap);
+            mStrokeLineJoin = getStrokeLineJoin(a.getInt(
+                    R.styleable.VectorDrawablePath_strokeLineJoin, -1), mStrokeLineJoin);
+            mStrokeMiterlimit = a.getFloat(
+                    R.styleable.VectorDrawablePath_strokeMiterLimit, mStrokeMiterlimit);
+            mStrokeColor = a.getColor(R.styleable.VectorDrawablePath_stroke, mStrokeColor);
+            mStrokeOpacity = a.getFloat(
+                    R.styleable.VectorDrawablePath_strokeOpacity, mStrokeOpacity);
+            mStrokeWidth = a.getFloat(R.styleable.VectorDrawablePath_strokeWidth, mStrokeWidth);
+
+            mTrimPathEnd = a.getFloat(R.styleable.VectorDrawablePath_trimPathEnd, mTrimPathEnd);
+            mTrimPathOffset = a.getFloat(
+                    R.styleable.VectorDrawablePath_trimPathOffset, mTrimPathOffset);
+            mTrimPathStart = a.getFloat(
+                    R.styleable.VectorDrawablePath_trimPathStart, mTrimPathStart);
+
+            updateColorAlphas();
+        }
+
+        private void updateColorAlphas() {
+            if (!Float.isNaN(mFillOpacity)) {
+                mFillColor &= 0x00FFFFFF;
+                mFillColor |= ((int) (0xFF * mFillOpacity)) << 24;
+            }
+
+            if (!Float.isNaN(mStrokeOpacity)) {
+                mStrokeColor &= 0x00FFFFFF;
+                mStrokeColor |= ((int) (0xFF * mStrokeOpacity)) << 24;
+            }
+        }
+
+        private static int nextStart(String s, int end) {
+            char c;
+
+            while (end < s.length()) {
+                c = s.charAt(end);
+                if (((c - 'A') * (c - 'Z') <= 0) || (((c - 'a') * (c - 'z') <= 0))) {
+                    return end;
+                }
+                end++;
+            }
+            return end;
+        }
+
+        private void addNode(ArrayList<VectorDrawable.VNode> list, char cmd, float[] val) {
+            list.add(new VectorDrawable.VNode(cmd, val));
+        }
+
+        /**
+         * parse the floats in the string
+         * this is an optimized version of
+         * parseFloat(s.split(",|\\s"));
+         *
+         * @param s the string containing a command and list of floats
+         * @return array of floats
+         */
+        private static float[] getFloats(String s) {
+            if (s.charAt(0) == 'z' | s.charAt(0) == 'Z') {
+                return new float[0];
+            }
+            try {
+                float[] tmp = new float[s.length()];
+                int count = 0;
+                int pos = 1, end;
+                while ((end = extract(s, pos)) >= 0) {
+                    if (pos < end) {
+                        tmp[count++] = Float.parseFloat(s.substring(pos, end));
+                    }
+                    pos = end + 1;
+                }
+                // handle the final float if there is one
+                if (pos < s.length()) {
+                    tmp[count++] = Float.parseFloat(s.substring(pos, s.length()));
+                }
+                return Arrays.copyOf(tmp, count);
+            } catch (NumberFormatException e){
+                Log.e(LOGTAG,"error in parsing \""+s+"\"");
+                throw e;
+            }
+        }
+
+        /**
+         * calculate the position of the next comma or space
+         * @param s the string to search
+         * @param start the position to start searching
+         * @return the position of the next comma or space or -1 if none found
+         */
+        private static int extract(String s, int start) {
+            int space = s.indexOf(' ', start);
+            int comma = s.indexOf(',', start);
+            if (space == -1) {
+                return comma;
+            }
+            if (comma == -1) {
+                return space;
+            }
+            return (comma > space) ? space : comma;
+        }
+
+        private VectorDrawable.VNode[] parsePath(String value) {
+            int start = 0;
+            int end = 1;
+
+            ArrayList<VectorDrawable.VNode> list = new ArrayList<VectorDrawable.VNode>();
+            while (end < value.length()) {
+                end = nextStart(value, end);
+                String s = value.substring(start, end);
+                float[] val = getFloats(s);
+                addNode(list, s.charAt(0), val);
+
+                start = end;
+                end++;
+            }
+            if ((end - start) == 1 && start < value.length()) {
+
+                addNode(list, value.charAt(start), new float[0]);
+            }
+            return list.toArray(new VectorDrawable.VNode[list.size()]);
+        }
+
+        public void copyFrom(VPath p1) {
+            mNode = new VNode[p1.mNode.length];
+            for (int i = 0; i < mNode.length; i++) {
+                mNode[i] = new VNode(p1.mNode[i]);
+            }
+            mId = p1.mId;
+            mStrokeColor = p1.mStrokeColor;
+            mFillColor = p1.mFillColor;
+            mStrokeWidth = p1.mStrokeWidth;
+            mRotate = p1.mRotate;
+            mPivotX = p1.mPivotX;
+            mPivotY = p1.mPivotY;
+            mAnimated = p1.mAnimated;
+            mTrimPathStart = p1.mTrimPathStart;
+            mTrimPathEnd = p1.mTrimPathEnd;
+            mTrimPathOffset = p1.mTrimPathOffset;
+            mStrokeLineCap = p1.mStrokeLineCap;
+            mStrokeLineJoin = p1.mStrokeLineJoin;
+            mStrokeMiterlimit = p1.mStrokeMiterlimit;
+            mNumberOfStates = p1.mNumberOfStates;
+            for (int i = 0; i < mNumberOfStates; i++) {
+                mCheckState[i] = p1.mCheckState[i];
+                mCheckValue[i] = p1.mCheckValue[i];
+            }
+
+            mFillRule = p1.mFillRule;
+        }
+
+        public static VPath interpolate(float t, VPath p1, VPath p2, VPath returnPath, int limit) {
+            if (limit == LIMIT_ALL || limit == LIMIT_PATH) {
+                if (returnPath.mNode == null || returnPath.mNode.length != p1.mNode.length) {
+                    returnPath.mNode = new VNode[p1.mNode.length];
+                }
+                for (int i = 0; i < returnPath.mNode.length; i++) {
+                    if (returnPath.mNode[i] == null) {
+                        returnPath.mNode[i] = new VNode(p1.mNode[i], p2.mNode[i], t);
+                    } else {
+                        returnPath.mNode[i].interpolate(p1.mNode[i], p2.mNode[i], t);
+                    }
+                }
+            }
+            float t1 = 1 - t;
+            switch (limit) {
+                case LIMIT_ALL:
+                    returnPath.mRotate = t1 * p1.mRotate + t * p2.mRotate;
+                    returnPath.mPivotX = t1 * p1.mPivotX + t * p2.mPivotX;
+                    returnPath.mPivotY = t1 * p1.mPivotY + t * p2.mPivotY;
+                    returnPath.mClip = p1.mClip | p2.mClip;
+
+                    returnPath.mTrimPathStart = t1 * p1.mTrimPathStart + t * p2.mTrimPathStart;
+                    returnPath.mTrimPathEnd = t1 * p1.mTrimPathEnd + t * p2.mTrimPathEnd;
+                    returnPath.mTrimPathOffset = t1 * p1.mTrimPathOffset + t * p2.mTrimPathOffset;
+                    returnPath.mStrokeMiterlimit =
+                            t1 * p1.mStrokeMiterlimit + t * p2.mStrokeMiterlimit;
+                    returnPath.mStrokeLineCap = p1.mStrokeLineCap;
+                    if (returnPath.mStrokeLineCap == null) {
+                        returnPath.mStrokeLineCap = p2.mStrokeLineCap;
+                    }
+                    returnPath.mStrokeLineJoin = p1.mStrokeLineJoin;
+                    if (returnPath.mStrokeLineJoin == null) {
+                        returnPath.mStrokeLineJoin = p2.mStrokeLineJoin;
+                    }
+                    returnPath.mFillRule = p1.mFillRule;
+
+                    returnPath.mStrokeColor = rgbInterpolate(t, p1.mStrokeColor, p2.mStrokeColor);
+                    returnPath.mFillColor = rgbInterpolate(t, p1.mFillColor, p2.mFillColor);
+                    returnPath.mStrokeWidth = t1 * p1.mStrokeWidth + t * p2.mStrokeWidth;
+                    returnPath.mNumberOfStates = p1.mNumberOfStates;
+                    for (int i = 0; i < returnPath.mNumberOfStates; i++) {
+                        returnPath.mCheckState[i] = p1.mCheckState[i];
+                        returnPath.mCheckValue[i] = p1.mCheckValue[i];
+                    }
+                    for (int i = 0; i < p2.mNumberOfStates; i++) {
+                        returnPath.addStateFilter(p2.mCheckState[i], p2.mCheckValue[i]);
+                    }
+
+                    int count = 0;
+                    for (int i = 0; i < returnPath.mNumberOfStates; i++) {
+                        if (returnPath.mCheckValue[i]) {
+                            count++;
+                        }
+                    }
+                    returnPath.mNumberOfTrue = count;
+                    break;
+                case LIMIT_ROTATE:
+                    returnPath.mRotate = t1 * p1.mRotate + t * p2.mRotate;
+                    break;
+                case LIMIT_TRIM_PATH_END:
+                    returnPath.mTrimPathEnd = t1 * p1.mTrimPathEnd + t * p2.mTrimPathEnd;
+                    break;
+                case LIMIT_TRIM_PATH_OFFSET:
+                    returnPath.mTrimPathOffset = t1 * p1.mTrimPathOffset + t * p2.mTrimPathOffset;
+                    break;
+                case LIMIT_TRIM_PATH_START:
+                    returnPath.mTrimPathStart = t1 * p1.mTrimPathStart + t * p2.mTrimPathStart;
+                    break;
+            }
+            return returnPath;
+        }
+
+        private static int rgbInterpolate(float fraction, int startColor, int endColor) {
+            if (startColor == endColor) {
+                return startColor;
+            } else if (startColor == 0) {
+                return endColor;
+            } else if (endColor == 0) {
+                return startColor;
+            }
+
+            final int startA = (startColor >> 24) & 0xff;
+            final int startR = (startColor >> 16) & 0xff;
+            final int startG = (startColor >> 8) & 0xff;
+            final int startB = startColor & 0xff;
+
+            final int endA = (endColor >> 24) & 0xff;
+            final int endR = (endColor >> 16) & 0xff;
+            final int endG = (endColor >> 8) & 0xff;
+            final int endB = endColor & 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))));
+        }
+
+        public boolean isVisible(int[] state) {
+            int match = 0;
+            for (int i = 0; i < state.length; i++) {
+                int v = getState(state[i]);
+                if (v != STATE_UNDEFINED) {
+                    if (v==STATE_TRUE) {
+                        match++;
+                    } else {
+                        return false;
+                    }
+                }
+            }
+            return match == mNumberOfTrue;
+        }
+    }
+
+    private static class VNode {
+        private char mType;
+        private float[] mParams;
+
+        public VNode(char type, float[] params) {
+            mType = type;
+            mParams = params;
+        }
+
+        public VNode(VNode n) {
+            mType = n.mType;
+            mParams = Arrays.copyOf(n.mParams, n.mParams.length);
+        }
+
+        public VNode(VNode n1, VNode n2, float t) {
+            mType = n1.mType;
+            mParams = new float[n1.mParams.length];
+            interpolate(n1, n2, t);
+        }
+
+        private boolean match(VNode n) {
+            if (n.mType != mType) {
+                return false;
+            }
+            return (mParams.length == n.mParams.length);
+        }
+
+        public void interpolate(VNode n1, VNode n2, float t) {
+            for (int i = 0; i < n1.mParams.length; i++) {
+                mParams[i] = n1.mParams[i] * (1 - t) + n2.mParams[i] * t;
+            }
+        }
+
+        public static void createPath(VNode[] node, Path path) {
+            float[] current = new float[4];
+            char previousCommand = 'm';
+            for (int i = 0; i < node.length; i++) {
+                addCommand(path, current, previousCommand, node[i].mType, node[i].mParams);
+                previousCommand = node[i].mType;
+            }
+        }
+
+        private static void addCommand(Path path, float[] current,
+                char previousCmd, char cmd, float[] val) {
+
+            int incr = 2;
+            float currentX = current[0];
+            float currentY = current[1];
+            float ctrlPointX = current[2];
+            float ctrlPointY = current[3];
+            float reflectiveCtrlPointX;
+            float reflectiveCtrlPointY;
+
+            switch (cmd) {
+                case 'z':
+                case 'Z':
+                    path.close();
+                    return;
+                case 'm':
+                case 'M':
+                case 'l':
+                case 'L':
+                case 't':
+                case 'T':
+                    incr = 2;
+                    break;
+                case 'h':
+                case 'H':
+                case 'v':
+                case 'V':
+                    incr = 1;
+                    break;
+                case 'c':
+                case 'C':
+                    incr = 6;
+                    break;
+                case 's':
+                case 'S':
+                case 'q':
+                case 'Q':
+                    incr = 4;
+                    break;
+                case 'a':
+                case 'A':
+                    incr = 7;
+                    break;
+            }
+            for (int k = 0; k < val.length; k += incr) {
+                // TODO: build test to prove all permutations work
+                switch (cmd) {
+                    case 'm': // moveto - Start a new sub-path (relative)
+                        path.rMoveTo(val[k + 0], val[k + 1]);
+                        currentX += val[k + 0];
+                        currentY += val[k + 1];
+                        break;
+                    case 'M': // moveto - Start a new sub-path
+                        path.moveTo(val[k + 0], val[k + 1]);
+                        currentX = val[k + 0];
+                        currentY = val[k + 1];
+                        break;
+                    case 'l': // lineto - Draw a line from the current point (relative)
+                        path.rLineTo(val[k + 0], val[k + 1]);
+                        currentX += val[k + 0];
+                        currentY += val[k + 1];
+                        break;
+                    case 'L': // lineto - Draw a line from the current point
+                        path.lineTo(val[k + 0], val[k + 1]);
+                        currentX = val[k + 0];
+                        currentY = val[k + 1];
+                        break;
+                    case 'z': // closepath - Close the current subpath
+                    case 'Z': // closepath - Close the current subpath
+                        path.close();
+                        break;
+                    case 'h': // horizontal lineto - Draws a horizontal line (relative)
+                        path.rLineTo(val[k + 0], 0);
+                        currentX += val[k + 0];
+                        break;
+                    case 'H': // horizontal lineto - Draws a horizontal line
+                        path.lineTo(val[k + 0], currentY);
+                        currentX = val[k + 0];
+                        break;
+                    case 'v': // vertical lineto - Draws a vertical line from the current point (r)
+                        path.rLineTo(0, val[k + 0]);
+                        currentY += val[k + 0];
+                        break;
+                    case 'V': // vertical lineto - Draws a vertical line from the current point
+                        path.lineTo(currentX, val[k + 0]);
+                        currentY = val[k + 0];
+                        break;
+                    case 'c': // curveto - Draws a cubic Bézier curve (relative)
+                        path.rCubicTo(val[k + 0], val[k + 1], val[k + 2], val[k + 3],
+                                val[k + 4], val[k + 5]);
+
+                        ctrlPointX = currentX + val[k + 2];
+                        ctrlPointY = currentY + val[k + 3];
+                        currentX += val[k + 4];
+                        currentY += val[k + 5];
+
+                        break;
+                    case 'C': // curveto - Draws a cubic Bézier curve
+                        path.cubicTo(val[k + 0], val[k + 1], val[k + 2], val[k + 3],
+                                val[k + 4], val[k + 5]);
+                        currentX = val[k + 4];
+                        currentY = val[k + 5];
+                        ctrlPointX = val[k + 2];
+                        ctrlPointY = val[k + 3];
+                        break;
+                    case 's': // smooth curveto - Draws a cubic Bézier curve (reflective cp)
+                        reflectiveCtrlPointX = 0;
+                        reflectiveCtrlPointY = 0;
+                        if (previousCmd == 'c' || previousCmd == 's'
+                                || previousCmd == 'C' || previousCmd == 'S') {
+                            reflectiveCtrlPointX = currentX - ctrlPointX;
+                            reflectiveCtrlPointY = currentY - ctrlPointY;
+                        }
+                        path.rCubicTo(reflectiveCtrlPointX, reflectiveCtrlPointY,
+                                val[k + 0], val[k + 1],
+                                val[k + 2], val[k + 3]);
+
+                        ctrlPointX = currentX + val[k + 0];
+                        ctrlPointY = currentY + val[k + 1];
+                        currentX += val[k + 2];
+                        currentY += val[k + 3];
+                        break;
+                    case 'S': // shorthand/smooth curveto Draws a cubic Bézier curve(reflective cp)
+                        reflectiveCtrlPointX = currentX;
+                        reflectiveCtrlPointY = currentY;
+                        if (previousCmd == 'c' || previousCmd == 's'
+                                || previousCmd == 'C' || previousCmd == 'S') {
+                            reflectiveCtrlPointX = 2 * currentX - ctrlPointX;
+                            reflectiveCtrlPointY = 2 * currentY - ctrlPointY;
+                        }
+                        path.cubicTo(reflectiveCtrlPointX, reflectiveCtrlPointY,
+                                val[k + 0], val[k + 1], val[k + 2], val[k + 3]);
+                        ctrlPointX = val[k + 0];
+                        ctrlPointY = val[k + 1];
+                        currentX = val[k + 2];
+                        currentY = val[k + 3];
+                        break;
+                    case 'q': // Draws a quadratic Bézier (relative)
+                        path.rQuadTo(val[k + 0], val[k + 1], val[k + 2], val[k + 3]);
+                        ctrlPointX = currentX + val[k + 0];
+                        ctrlPointY = currentY + val[k + 1];
+                        currentX += val[k + 2];
+                        currentY += val[k + 3];
+                        break;
+                    case 'Q': // Draws a quadratic Bézier
+                        path.quadTo(val[k + 0], val[k + 1], val[k + 2], val[k + 3]);
+                        ctrlPointX = val[k + 0];
+                        ctrlPointY = val[k + 1];
+                        currentX = val[k + 2];
+                        currentY = val[k + 3];
+                        break;
+                    case 't': // Draws a quadratic Bézier curve(reflective control point)(relative)
+                        reflectiveCtrlPointX = 0;
+                        reflectiveCtrlPointY = 0;
+                        if (previousCmd == 'q' || previousCmd == 't'
+                                || previousCmd == 'Q' || previousCmd == 'T') {
+                            reflectiveCtrlPointX = currentX - ctrlPointX;
+                            reflectiveCtrlPointY = currentY - ctrlPointY;
+                        }
+                        path.rQuadTo(reflectiveCtrlPointX, reflectiveCtrlPointY,
+                                val[k + 0], val[k + 1]);
+                        ctrlPointX = currentX + reflectiveCtrlPointX;
+                        ctrlPointY = currentY + reflectiveCtrlPointY;
+                        currentX += val[k + 0];
+                        currentY += val[k + 1];
+                        break;
+                    case 'T': // Draws a quadratic Bézier curve (reflective control point)
+                        reflectiveCtrlPointX = currentX;
+                        reflectiveCtrlPointY = currentY;
+                        if (previousCmd == 'q' || previousCmd == 't'
+                                || previousCmd == 'Q' || previousCmd == 'T') {
+                            reflectiveCtrlPointX = 2 * currentX - ctrlPointX;
+                            reflectiveCtrlPointY = 2 * currentY - ctrlPointY;
+                        }
+                        path.quadTo(reflectiveCtrlPointX, reflectiveCtrlPointY,
+                                val[k + 0], val[k + 1]);
+                        ctrlPointX = reflectiveCtrlPointX;
+                        ctrlPointY = reflectiveCtrlPointY;
+                        currentX = val[k + 0];
+                        currentY = val[k + 1];
+                        break;
+                    case 'a': // Draws an elliptical arc
+                        // (rx ry x-axis-rotation large-arc-flag sweep-flag x y)
+                        drawArc(path,
+                                currentX,
+                                currentY,
+                                val[k + 5] + currentX,
+                                val[k + 6] + currentY,
+                                val[k + 0],
+                                val[k + 1],
+                                val[k + 2],
+                                val[k + 3] != 0,
+                                val[k + 4] != 0);
+                        currentX += val[k + 5];
+                        currentY += val[k + 6];
+                        ctrlPointX = currentX;
+                        ctrlPointY = currentY;
+                        break;
+                    case 'A': // Draws an elliptical arc
+                        drawArc(path,
+                                currentX,
+                                currentY,
+                                val[k + 5],
+                                val[k + 6],
+                                val[k + 0],
+                                val[k + 1],
+                                val[k + 2],
+                                val[k + 3] != 0,
+                                val[k + 4] != 0);
+                        currentX = val[k + 5];
+                        currentY = val[k + 6];
+                        ctrlPointX = currentX;
+                        ctrlPointY = currentY;
+                        break;
+                }
+                previousCmd = cmd;
+            }
+            current[0] = currentX;
+            current[1] = currentY;
+            current[2] = ctrlPointX;
+            current[3] = ctrlPointY;
+        }
+
+        private static void drawArc(Path p,
+                float x0,
+                float y0,
+                float x1,
+                float y1,
+                float a,
+                float b,
+                float theta,
+                boolean isMoreThanHalf,
+                boolean isPositiveArc) {
+
+            /* Convert rotation angle from degrees to radians */
+            double thetaD = Math.toRadians(theta);
+            /* Pre-compute rotation matrix entries */
+            double cosTheta = Math.cos(thetaD);
+            double sinTheta = Math.sin(thetaD);
+            /* Transform (x0, y0) and (x1, y1) into unit space */
+            /* using (inverse) rotation, followed by (inverse) scale */
+            double x0p = (x0 * cosTheta + y0 * sinTheta) / a;
+            double y0p = (-x0 * sinTheta + y0 * cosTheta) / b;
+            double x1p = (x1 * cosTheta + y1 * sinTheta) / a;
+            double y1p = (-x1 * sinTheta + y1 * cosTheta) / b;
+
+            /* Compute differences and averages */
+            double dx = x0p - x1p;
+            double dy = y0p - y1p;
+            double xm = (x0p + x1p) / 2;
+            double ym = (y0p + y1p) / 2;
+            /* Solve for intersecting unit circles */
+            double dsq = dx * dx + dy * dy;
+            if (dsq == 0.0) {
+                Log.w(LOGTAG, " Points are coincident");
+                return; /* Points are coincident */
+            }
+            double disc = 1.0 / dsq - 1.0 / 4.0;
+            if (disc < 0.0) {
+                Log.w(LOGTAG, "Points are too far apart " + dsq);
+                float adjust = (float) (Math.sqrt(dsq) / 1.99999);
+                drawArc(p, x0, y0, x1, y1, a * adjust,
+                        b * adjust, theta, isMoreThanHalf, isPositiveArc);
+                return; /* Points are too far apart */
+            }
+            double s = Math.sqrt(disc);
+            double sdx = s * dx;
+            double sdy = s * dy;
+            double cx;
+            double cy;
+            if (isMoreThanHalf == isPositiveArc) {
+                cx = xm - sdy;
+                cy = ym + sdx;
+            } else {
+                cx = xm + sdy;
+                cy = ym - sdx;
+            }
+
+            double eta0 = Math.atan2((y0p - cy), (x0p - cx));
+
+            double eta1 = Math.atan2((y1p - cy), (x1p - cx));
+
+            double sweep = (eta1 - eta0);
+            if (isPositiveArc != (sweep >= 0)) {
+                if (sweep > 0) {
+                    sweep -= 2 * Math.PI;
+                } else {
+                    sweep += 2 * Math.PI;
+                }
+            }
+
+            cx *= a;
+            cy *= b;
+            double tcx = cx;
+            cx = cx * cosTheta - cy * sinTheta;
+            cy = tcx * sinTheta + cy * cosTheta;
+
+            arcToBezier(p, cx, cy, a, b, x0, y0, thetaD, eta0, sweep);
+        }
+
+        /**
+         * Converts an arc to cubic Bezier segments and records them in p.
+         *
+         * @param p The target for the cubic Bezier segments
+         * @param cx The x coordinate center of the ellipse
+         * @param cy The y coordinate center of the ellipse
+         * @param a The radius of the ellipse in the horizontal direction
+         * @param b The radius of the ellipse in the vertical direction
+         * @param e1x E(eta1) x coordinate of the starting point of the arc
+         * @param e1y E(eta2) y coordinate of the starting point of the arc
+         * @param theta The angle that the ellipse bounding rectangle makes with horizontal plane
+         * @param start The start angle of the arc on the ellipse
+         * @param sweep The angle (positive or negative) of the sweep of the arc on the ellipse
+         */
+        private static void arcToBezier(Path p,
+                double cx,
+                double cy,
+                double a,
+                double b,
+                double e1x,
+                double e1y,
+                double theta,
+                double start,
+                double sweep) {
+            // Taken from equations at: http://spaceroots.org/documents/ellipse/node8.html
+            // and http://www.spaceroots.org/documents/ellipse/node22.html
+
+            // Maximum of 45 degrees per cubic Bezier segment
+            int numSegments = Math.abs((int) Math.ceil(sweep * 4 / Math.PI));
+
+            double eta1 = start;
+            double cosTheta = Math.cos(theta);
+            double sinTheta = Math.sin(theta);
+            double cosEta1 = Math.cos(eta1);
+            double sinEta1 = Math.sin(eta1);
+            double ep1x = (-a * cosTheta * sinEta1) - (b * sinTheta * cosEta1);
+            double ep1y = (-a * sinTheta * sinEta1) + (b * cosTheta * cosEta1);
+
+            double anglePerSegment = sweep / numSegments;
+            for (int i = 0; i < numSegments; i++) {
+                double eta2 = eta1 + anglePerSegment;
+                double sinEta2 = Math.sin(eta2);
+                double cosEta2 = Math.cos(eta2);
+                double e2x = cx + (a * cosTheta * cosEta2) - (b * sinTheta * sinEta2);
+                double e2y = cy + (a * sinTheta * cosEta2) + (b * cosTheta * sinEta2);
+                double ep2x = -a * cosTheta * sinEta2 - b * sinTheta * cosEta2;
+                double ep2y = -a * sinTheta * sinEta2 + b * cosTheta * cosEta2;
+                double tanDiff2 = Math.tan((eta2 - eta1) / 2);
+                double alpha =
+                        Math.sin(eta2 - eta1) * (Math.sqrt(4 + (3 * tanDiff2 * tanDiff2)) - 1) / 3;
+                double q1x = e1x + alpha * ep1x;
+                double q1y = e1y + alpha * ep1y;
+                double q2x = e2x - alpha * ep2x;
+                double q2y = e2y - alpha * ep2y;
+
+                p.cubicTo((float) q1x,
+                        (float) q1y,
+                        (float) q2x,
+                        (float) q2y,
+                        (float) e2x,
+                        (float) e2y);
+                eta1 = eta2;
+                e1x = e2x;
+                e1y = e2y;
+                ep1x = ep2x;
+                ep1y = ep2y;
+            }
+        }
+
+    }
+}
diff --git a/include/android_runtime/AndroidRuntime.h b/include/android_runtime/AndroidRuntime.h
index 649f4c3..3dfdb46 100644
--- a/include/android_runtime/AndroidRuntime.h
+++ b/include/android_runtime/AndroidRuntime.h
@@ -34,7 +34,7 @@
 class AndroidRuntime
 {
 public:
-    AndroidRuntime();
+    AndroidRuntime(char* argBlockStart, size_t argBlockSize);
     virtual ~AndroidRuntime();
 
     enum StartMode {
@@ -44,6 +44,8 @@
         Tool,
     };
 
+    void setArgv0(const char* argv0);
+
     /**
      * Register a set of methods in the specified class.
      */
@@ -53,8 +55,7 @@
     /**
      * Call a class's static main method with the given arguments,
      */
-    status_t callMain(const char* className, jclass clazz, int argc,
-        const char* const argv[]);
+    status_t callMain(const String8& className, jclass clazz, const Vector<String8>& args);
 
     /**
      * Find a class, with the input either of the form
@@ -64,7 +65,7 @@
 
     int addVmArguments(int argc, const char* const argv[]);
 
-    void start(const char *classname, const char* options);
+    void start(const char *classname, const Vector<String8>& options);
 
     void exit(int code);
 
@@ -120,6 +121,8 @@
 
     Vector<JavaVMOption> mOptions;
     bool mExitWithoutCleanup;
+    char* const mArgBlockStart;
+    const size_t mArgBlockLength;
 
     /* JNI JavaVM pointer */
     static JavaVM* mJavaVM;
diff --git a/include/androidfw/ResourceTypes.h b/include/androidfw/ResourceTypes.h
index 7cc10be87..4d8e512 100644
--- a/include/androidfw/ResourceTypes.h
+++ b/include/androidfw/ResourceTypes.h
@@ -1054,6 +1054,7 @@
         UI_MODE_TYPE_CAR = ACONFIGURATION_UI_MODE_TYPE_CAR,
         UI_MODE_TYPE_TELEVISION = ACONFIGURATION_UI_MODE_TYPE_TELEVISION,
         UI_MODE_TYPE_APPLIANCE = ACONFIGURATION_UI_MODE_TYPE_APPLIANCE,
+        UI_MODE_TYPE_WATCH = ACONFIGURATION_UI_MODE_TYPE_WATCH,
 
         // uiMode bits for the night switch.
         MASK_UI_MODE_NIGHT = 0x30,
diff --git a/include/private/hwui/DrawGlInfo.h b/include/private/hwui/DrawGlInfo.h
index fc810be..a357a01 100644
--- a/include/private/hwui/DrawGlInfo.h
+++ b/include/private/hwui/DrawGlInfo.h
@@ -55,7 +55,10 @@
         kModeDraw,
         // Indicates the the functor is called only to perform
         // processing and that no draw should be attempted
-        kModeProcess
+        kModeProcess,
+        // Same as kModeProcess, however there is no GL context because it was
+        // lost or destroyed
+        kModeProcessNoContext
     };
 
     /**
@@ -65,14 +68,6 @@
     enum Status {
         // The functor is done
         kStatusDone = 0x0,
-        // The functor is requesting a redraw (the clip rect
-        // used by the redraw is specified by DrawGlInfo.)
-        // The rest of the UI might redraw too.
-        kStatusDraw = 0x1,
-        // The functor needs to be invoked again but will
-        // not redraw. Only the functor is invoked again
-        // (unless another functor requests a redraw.)
-        kStatusInvoke = 0x2,
         // DisplayList actually issued GL drawing commands.
         // This is used to signal the HardwareRenderer that the
         // buffers should be flipped - otherwise, there were no
diff --git a/libs/androidfw/BackupData.cpp b/libs/androidfw/BackupData.cpp
index a5b9416..d16d5498 100644
--- a/libs/androidfw/BackupData.cpp
+++ b/libs/androidfw/BackupData.cpp
@@ -79,7 +79,7 @@
     paddingSize = padding_extra(n);
     if (paddingSize > 0) {
         uint32_t padding = 0xbcbcbcbc;
-        if (DEBUG) ALOGI("writing %d padding bytes for %d", paddingSize, n);
+        if (DEBUG) ALOGI("writing %zd padding bytes for %d", paddingSize, n);
         amt = write(m_fd, &padding, paddingSize);
         if (amt != paddingSize) {
             m_status = errno;
@@ -113,7 +113,7 @@
         k = key;
     }
     if (DEBUG) {
-        ALOGD("Writing header: prefix='%s' key='%s' dataSize=%d", m_keyPrefix.string(),
+        ALOGD("Writing header: prefix='%s' key='%s' dataSize=%zu", m_keyPrefix.string(),
                 key.string(), dataSize);
     }
 
@@ -126,7 +126,7 @@
     header.keyLen = tolel(keyLen);
     header.dataSize = tolel(dataSize);
 
-    if (DEBUG) ALOGI("writing entity header, %d bytes", sizeof(entity_header_v1));
+    if (DEBUG) ALOGI("writing entity header, %zu bytes", sizeof(entity_header_v1));
     amt = write(m_fd, &header, sizeof(entity_header_v1));
     if (amt != sizeof(entity_header_v1)) {
         m_status = errno;
@@ -134,7 +134,7 @@
     }
     m_pos += amt;
 
-    if (DEBUG) ALOGI("writing entity header key, %d bytes", keyLen+1);
+    if (DEBUG) ALOGI("writing entity header key, %zd bytes", keyLen+1);
     amt = write(m_fd, k.string(), keyLen+1);
     if (amt != keyLen+1) {
         m_status = errno;
diff --git a/libs/androidfw/BackupHelpers.cpp b/libs/androidfw/BackupHelpers.cpp
index ab837ad..52dce9f 100644
--- a/libs/androidfw/BackupHelpers.cpp
+++ b/libs/androidfw/BackupHelpers.cpp
@@ -639,7 +639,7 @@
 
         // size header -- calc len in digits by actually rendering the number
         // to a string - brute force but simple
-        snprintf(sizeStr, sizeof(sizeStr), "%lld", s.st_size);
+        snprintf(sizeStr, sizeof(sizeStr), "%lld", (long long)s.st_size);
         p += write_pax_header_entry(p, "size", sizeStr);
 
         // fullname was generated above with the ustar paths
@@ -661,7 +661,7 @@
 
         // [ 124 :  12 ] size of pax extended header data
         memset(paxHeader + 124, 0, 12);
-        snprintf(paxHeader + 124, 12, "%011o", p - paxData);
+        snprintf(paxHeader + 124, 12, "%011o", (unsigned int)(p - paxData));
 
         // Checksum and write the pax block header
         calc_tar_checksum(paxHeader);
@@ -681,7 +681,10 @@
     if (!isdir) {
         off64_t toWrite = s.st_size;
         while (toWrite > 0) {
-            size_t toRead = (toWrite < BUFSIZE) ? toWrite : BUFSIZE;
+            size_t toRead = toWrite;
+            if (toRead > BUFSIZE) {
+                toRead = BUFSIZE;
+            }
             ssize_t nRead = read(fd, buf, toRead);
             if (nRead < 0) {
                 err = errno;
@@ -1095,8 +1098,8 @@
         if (name != filenames[i] || states[i].modTime_sec != state.modTime_sec
                 || states[i].modTime_nsec != state.modTime_nsec || states[i].mode != state.mode
                 || states[i].size != state.size || states[i].crc32 != states[i].crc32) {
-            fprintf(stderr, "state %zu expected={%d/%d, 0x%08x, %04o, 0x%08x, %3d} '%s'\n"
-                            "          actual={%d/%d, 0x%08x, %04o, 0x%08x, %3zu} '%s'\n", i,
+            fprintf(stderr, "state %zu expected={%d/%d, %04o, 0x%08x, 0x%08x, %3zu} '%s'\n"
+                            "          actual={%d/%d, %04o, 0x%08x, 0x%08x, %3d} '%s'\n", i,
                     states[i].modTime_sec, states[i].modTime_nsec, states[i].mode, states[i].size,
                     states[i].crc32, name.length(), filenames[i].string(),
                     state.modTime_sec, state.modTime_nsec, state.mode, state.size, state.crc32,
@@ -1194,7 +1197,7 @@
 test_read_header_and_entity(BackupDataReader& reader, const char* str)
 {
     int err;
-    int bufSize = strlen(str)+1;
+    size_t bufSize = strlen(str)+1;
     char* buf = (char*)malloc(bufSize);
     String8 string;
     int cookie = 0x11111111;
@@ -1229,9 +1232,9 @@
         err = EINVAL;
         goto finished;
     }
-    if ((int)actualSize != bufSize) {
-        fprintf(stderr, "ReadEntityHeader expected dataSize 0x%08x got 0x%08zx\n", bufSize,
-                actualSize);
+    if (actualSize != bufSize) {
+        fprintf(stderr, "ReadEntityHeader expected dataSize %zu got %zu\n",
+                bufSize, actualSize);
         err = EINVAL;
         goto finished;
     }
diff --git a/libs/androidfw/CursorWindow.cpp b/libs/androidfw/CursorWindow.cpp
index 2b74a33..166863c 100644
--- a/libs/androidfw/CursorWindow.cpp
+++ b/libs/androidfw/CursorWindow.cpp
@@ -210,8 +210,8 @@
     uint32_t offset = mHeader->freeOffset + padding;
     uint32_t nextFreeOffset = offset + size;
     if (nextFreeOffset > mSize) {
-        ALOGW("Window is full: requested allocation %d bytes, "
-                "free space %d bytes, window size %d bytes",
+        ALOGW("Window is full: requested allocation %zu bytes, "
+                "free space %zu bytes, window size %zu bytes",
                 size, freeSpace(), mSize);
         return 0;
     }
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 04ca81e..098753b 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -2557,6 +2557,9 @@
             case ResTable_config::UI_MODE_TYPE_APPLIANCE:
                 res.append("appliance");
                 break;
+            case ResTable_config::UI_MODE_TYPE_WATCH:
+                res.append("watch");
+                break;
             default:
                 res.appendFormat("uiModeType=%d",
                         dtohs(screenLayout&ResTable_config::MASK_UI_MODE_TYPE));
@@ -6251,12 +6254,12 @@
 
                         uintptr_t esize = dtohs(ent->size);
                         if ((esize&0x3) != 0) {
-                            printf("NON-INTEGER ResTable_entry SIZE: 0x%x\n", esize);
+                            printf("NON-INTEGER ResTable_entry SIZE: %p\n", (void *)esize);
                             continue;
                         }
                         if ((thisOffset+esize) > typeSize) {
-                            printf("ResTable_entry OUT OF BOUNDS: 0x%x+0x%x+0x%x (size is 0x%x)\n",
-                                   entriesStart, thisOffset, esize, typeSize);
+                            printf("ResTable_entry OUT OF BOUNDS: 0x%x+0x%x+%p (size is 0x%x)\n",
+                                   entriesStart, thisOffset, (void *)esize, typeSize);
                             continue;
                         }
 
diff --git a/libs/common_time/common_time_server.cpp b/libs/common_time/common_time_server.cpp
index 21e706f..3e11987 100644
--- a/libs/common_time/common_time_server.cpp
+++ b/libs/common_time/common_time_server.cpp
@@ -590,7 +590,7 @@
     for (i = 0; (i < src_len) && (offset < dst_len); ++i) {
         int res;
         if (0 == (i % 16)) {
-            res = snprintf(dst + offset, dst_len - offset, "\n%04x :", i);
+            res = snprintf(dst + offset, dst_len - offset, "\n%04zx :", i);
             if (res < 0)
                 break;
             offset += res;
diff --git a/libs/common_time/utils.cpp b/libs/common_time/utils.cpp
index ed2c77d..ddcdfe7 100644
--- a/libs/common_time/utils.cpp
+++ b/libs/common_time/utils.cpp
@@ -56,7 +56,7 @@
     , mHeader(header) {
     mRingBuffer = new Entry[mSize];
     if (NULL == mRingBuffer)
-        ALOGE("Failed to allocate log ring with %u entries.", mSize);
+        ALOGE("Failed to allocate log ring with %zu entries.", mSize);
 }
 
 LogRing::~LogRing() {
@@ -150,7 +150,7 @@
 
         localtime_r(&mRingBuffer[ndx].first_ts.tv_sec, &t);
         strftime(timebuf, sizeof(timebuf), kTimeFmt, &t);
-        res = snprintf(buf, sizeof(buf), "[%2d] %s.%03ld :: %s%s\n", 
+        res = snprintf(buf, sizeof(buf), "[%2zu] %s.%03ld :: %s%s\n",
                        i, timebuf,
                        mRingBuffer[ndx].first_ts.tv_usec / 1000,
                        mRingBuffer[ndx].s.string(),
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 4de755d..52be531 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -54,6 +54,7 @@
 	# RenderThread stuff
 	LOCAL_SRC_FILES += \
 		renderthread/CanvasContext.cpp \
+		renderthread/DrawFrameTask.cpp \
 		renderthread/RenderProxy.cpp \
 		renderthread/RenderTask.cpp \
 		renderthread/RenderThread.cpp
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index 477d691..df2123b 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -315,24 +315,15 @@
     pathCache.clearGarbage();
     patchCache.clearGarbage();
 
-    Vector<RenderNode*> displayLists;
     Vector<Layer*> layers;
 
     { // scope for the lock
         Mutex::Autolock _l(mGarbageLock);
-        displayLists = mDisplayListGarbage;
         layers = mLayerGarbage;
-        mDisplayListGarbage.clear();
         mLayerGarbage.clear();
     }
 
-    size_t count = displayLists.size();
-    for (size_t i = 0; i < count; i++) {
-        RenderNode* displayList = displayLists.itemAt(i);
-        delete displayList;
-    }
-
-    count = layers.size();
+    size_t count = layers.size();
     for (size_t i = 0; i < count; i++) {
         Layer* layer = layers.itemAt(i);
         delete layer;
@@ -345,11 +336,6 @@
     mLayerGarbage.push(layer);
 }
 
-void Caches::deleteDisplayListDeferred(RenderNode* displayList) {
-    Mutex::Autolock _l(mGarbageLock);
-    mDisplayListGarbage.push(displayList);
-}
-
 void Caches::flush(FlushMode mode) {
     FLUSH_LOGD("Flushing caches (mode %d)", mode);
 
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index 50c5fef..ba3ccaf 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -166,11 +166,6 @@
      */
     void deleteLayerDeferred(Layer* layer);
 
-    /*
-     * Can be used to delete a display list from a non EGL thread.
-     */
-    void deleteDisplayListDeferred(RenderNode* layer);
-
     /**
      * Binds the VBO used to render simple textured quads.
      */
@@ -420,7 +415,6 @@
 
     mutable Mutex mGarbageLock;
     Vector<Layer*> mLayerGarbage;
-    Vector<RenderNode*> mDisplayListGarbage;
 
     DebugLevel mDebugLevel;
     bool mInitialized;
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp
index 7380bbf..285c8c3 100644
--- a/libs/hwui/DeferredLayerUpdater.cpp
+++ b/libs/hwui/DeferredLayerUpdater.cpp
@@ -29,7 +29,6 @@
         , mNeedsGLContextAttach(false)
         , mUpdateTexImage(false)
         , mLayer(layer)
-        , mRenderer(renderer)
         , mCaches(Caches::getInstance()) {
     mWidth = mLayer->layer.getWidth();
     mHeight = mLayer->layer.getHeight();
@@ -42,10 +41,10 @@
 
 DeferredLayerUpdater::~DeferredLayerUpdater() {
     SkSafeUnref(mColorFilter);
+    setTransform(0);
     if (mLayer) {
         mCaches.resourceCache.decrementRefcount(mLayer);
     }
-    delete mRenderer;
 }
 
 void DeferredLayerUpdater::setPaint(const SkPaint* paint) {
@@ -64,19 +63,19 @@
     }
 }
 
-bool DeferredLayerUpdater::apply() {
+bool DeferredLayerUpdater::apply(TreeInfo& info) {
     bool success = true;
     // These properties are applied the same to both layer types
     mLayer->setColorFilter(mColorFilter);
     mLayer->setAlpha(mAlpha, mMode);
 
-    if (mDisplayList) {
+    if (mDisplayList.get()) {
         if (mWidth != mLayer->layer.getWidth() || mHeight != mLayer->layer.getHeight()) {
             success = LayerRenderer::resizeLayer(mLayer, mWidth, mHeight);
         }
         mLayer->setBlend(mBlend);
-        mDisplayList->updateProperties();
-        mLayer->updateDeferred(mRenderer, mDisplayList,
+        mDisplayList->prepareTree(info);
+        mLayer->updateDeferred(mDisplayList.get(),
                 mDirtyRect.left, mDirtyRect.top, mDirtyRect.right, mDirtyRect.bottom);
         mDirtyRect.setEmpty();
         mDisplayList = 0;
diff --git a/libs/hwui/DeferredLayerUpdater.h b/libs/hwui/DeferredLayerUpdater.h
index cf745ee..cc62caa 100644
--- a/libs/hwui/DeferredLayerUpdater.h
+++ b/libs/hwui/DeferredLayerUpdater.h
@@ -77,7 +77,7 @@
 
     ANDROID_API void setPaint(const SkPaint* paint);
 
-    ANDROID_API bool apply();
+    ANDROID_API bool apply(TreeInfo& info);
 
     ANDROID_API Layer* backingLayer() {
         return mLayer;
@@ -101,7 +101,7 @@
     // Layer type specific properties
     // displayList and surfaceTexture are mutually exclusive, only 1 may be set
     // dirtyRect is only valid if displayList is set
-    RenderNode* mDisplayList;
+    sp<RenderNode> mDisplayList;
     Rect mDirtyRect;
     sp<GLConsumer> mSurfaceTexture;
     SkMatrix* mTransform;
@@ -109,7 +109,6 @@
     bool mUpdateTexImage;
 
     Layer* mLayer;
-    OpenGLRenderer* mRenderer;
     Caches& mCaches;
 
     void doUpdateTexImage();
diff --git a/libs/hwui/DisplayList.cpp b/libs/hwui/DisplayList.cpp
index 9e6a96d..a5d8dcb 100644
--- a/libs/hwui/DisplayList.cpp
+++ b/libs/hwui/DisplayList.cpp
@@ -29,6 +29,13 @@
 namespace android {
 namespace uirenderer {
 
+DisplayListData::DisplayListData() : projectionReceiveIndex(-1), functorCount(0), hasDrawOps(false) {
+}
+
+DisplayListData::~DisplayListData() {
+    cleanupResources();
+}
+
 void DisplayListData::cleanupResources() {
     Caches& caches = Caches::getInstance();
     caches.unregisterFunctors(functorCount);
@@ -91,5 +98,12 @@
     layers.clear();
 }
 
+void DisplayListData::addChild(DrawDisplayListOp* op) {
+    LOG_ALWAYS_FATAL_IF(!op->renderNode(), "DrawDisplayListOp with no render node!");
+
+    mChildren.push(op);
+    mReferenceHolders.push(op->renderNode());
+}
+
 }; // namespace uirenderer
 }; // namespace android
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h
index df5cba6..fe70d13 100644
--- a/libs/hwui/DisplayList.h
+++ b/libs/hwui/DisplayList.h
@@ -41,6 +41,7 @@
 #include "Matrix.h"
 #include "DeferredDisplayList.h"
 #include "RenderProperties.h"
+#include "utils/VirtualLightRefBase.h"
 
 class SkBitmap;
 class SkPaint;
@@ -106,8 +107,8 @@
  */
 class DisplayListData {
 public:
-    DisplayListData() : projectionReceiveIndex(-1), functorCount(0), hasDrawOps(false) {}
-    virtual ~DisplayListData() { cleanupResources(); }
+    DisplayListData();
+    ~DisplayListData();
 
     // allocator into which all ops were allocated
     LinearAllocator allocator;
@@ -115,9 +116,6 @@
     // pointers to all ops within display list, pointing into allocator data
     Vector<DisplayListOp*> displayListOps;
 
-    // list of children display lists for quick, non-drawing traversal
-    Vector<DrawDisplayListOp*> children;
-
     // index of DisplayListOp restore, after which projected descendents should be drawn
     int projectionReceiveIndex;
 
@@ -139,7 +137,15 @@
         return !displayListOps.size();
     }
 
+    void addChild(DrawDisplayListOp* childOp);
+    const Vector<DrawDisplayListOp*>& children() { return mChildren; }
+
 private:
+    Vector< sp<VirtualLightRefBase> > mReferenceHolders;
+
+    // list of children display lists for quick, non-drawing traversal
+    Vector<DrawDisplayListOp*> mChildren;
+
     void cleanupResources();
 };
 
diff --git a/libs/hwui/DisplayListOp.h b/libs/hwui/DisplayListOp.h
index 9e367fc..f19da9d 100644
--- a/libs/hwui/DisplayListOp.h
+++ b/libs/hwui/DisplayListOp.h
@@ -286,12 +286,6 @@
 
     int getFlags() const { return mFlags; }
 private:
-    SaveOp() {}
-    DisplayListOp* reinit(int flags) {
-        mFlags = flags;
-        return this;
-    }
-
     int mFlags;
 };
 
@@ -318,12 +312,6 @@
     virtual const char* name() { return "RestoreToCount"; }
 
 private:
-    RestoreToCountOp() {}
-    DisplayListOp* reinit(int count) {
-        mCount = count;
-        return this;
-    }
-
     int mCount;
 };
 
@@ -514,7 +502,6 @@
     }
 
 protected:
-    ClipOp() {}
     virtual bool isRect() { return false; }
 
     SkRegion::Op mOp;
@@ -539,13 +526,6 @@
     virtual bool isRect() { return true; }
 
 private:
-    ClipRectOp() {}
-    DisplayListOp* reinit(float left, float top, float right, float bottom, SkRegion::Op op) {
-        mOp = op;
-        mArea.set(left, top, right, bottom);
-        return this;
-    }
-
     Rect mArea;
 };
 
@@ -1499,13 +1479,13 @@
     virtual void defer(DeferStateStruct& deferStruct, int saveCount, int level,
             bool useQuickReject) {
         if (mDisplayList && mDisplayList->isRenderable() && !mSkipInOrderDraw) {
-            mDisplayList->defer(deferStruct, level + 1);
+            mDisplayList->deferNodeInParent(deferStruct, level + 1);
         }
     }
     virtual void replay(ReplayStateStruct& replayStruct, int saveCount, int level,
             bool useQuickReject) {
         if (mDisplayList && mDisplayList->isRenderable() && !mSkipInOrderDraw) {
-            mDisplayList->replay(replayStruct, level + 1);
+            mDisplayList->replayNodeInParent(replayStruct, level + 1);
         }
     }
 
@@ -1523,6 +1503,8 @@
 
     virtual const char* name() { return "DrawDisplayList"; }
 
+    RenderNode* renderNode() { return mDisplayList; }
+
 private:
     RenderNode* mDisplayList;
     const int mFlags;
@@ -1548,14 +1530,16 @@
 };
 
 /**
- * Not a canvas operation, used only by 3d / z ordering logic in DisplayList::iterate()
+ * Not a canvas operation, used only by 3d / z ordering logic in RenderNode::iterate()
  */
 class DrawShadowOp : public DrawOp {
 public:
-    DrawShadowOp(const mat4& transformXY, const mat4& transformZ, float alpha,
+    DrawShadowOp(const mat4& transformXY, const mat4& transformZ,
+            float casterAlpha, bool casterUnclipped,
             float fallbackWidth, float fallbackHeight,
             const SkPath* outline, const SkPath* revealClip)
-            : DrawOp(NULL), mTransformXY(transformXY), mTransformZ(transformZ), mAlpha(alpha),
+            : DrawOp(NULL), mTransformXY(transformXY), mTransformZ(transformZ),
+            mCasterAlpha(casterAlpha), mCasterUnclipped(casterUnclipped),
             mFallbackWidth(fallbackWidth), mFallbackHeight(fallbackHeight),
             mOutline(outline), mRevealClip(revealClip) {}
 
@@ -1572,7 +1556,8 @@
             Op(casterPerimeter, *mRevealClip, kIntersect_PathOp, &casterPerimeter);
         }
 
-        return renderer.drawShadow(mTransformXY, mTransformZ, mAlpha, &casterPerimeter);
+        return renderer.drawShadow(mTransformXY, mTransformZ,
+                mCasterAlpha, mCasterUnclipped, &casterPerimeter);
     }
 
     virtual void output(int level, uint32_t logFlags) const {
@@ -1584,7 +1569,8 @@
 private:
     const mat4 mTransformXY;
     const mat4 mTransformZ;
-    const float mAlpha;
+    const float mCasterAlpha;
+    const bool mCasterUnclipped;
     const float mFallbackWidth;
     const float mFallbackHeight;
 
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index 78c97e1..6c73d68 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -191,8 +191,10 @@
     DrawDisplayListOp* op = new (alloc()) DrawDisplayListOp(displayList,
             flags, *currentTransform());
     addDrawOp(op);
-    mDisplayListData->children.push(op);
-    if (displayList->isProjectionReceiver()) {
+    mDisplayListData->addChild(op);
+
+    if (displayList->stagingProperties().isProjectionReceiver()) {
+        // use staging property, since recording on UI thread
         mDisplayListData->projectionReceiveIndex = mDisplayListData->displayListOps.size() - 1;
     }
 
@@ -256,11 +258,11 @@
 
 status_t DisplayListRenderer::drawBitmapMesh(const SkBitmap* bitmap, int meshWidth, int meshHeight,
         const float* vertices, const int* colors, const SkPaint* paint) {
-    int count = (meshWidth + 1) * (meshHeight + 1) * 2;
+    int vertexCount = (meshWidth + 1) * (meshHeight + 1);
     bitmap = refBitmap(bitmap);
-    vertices = refBuffer<float>(vertices, count);
+    vertices = refBuffer<float>(vertices, vertexCount * 2); // 2 floats per vertex
     paint = refPaint(paint);
-    colors = refBuffer<int>(colors, count);
+    colors = refBuffer<int>(colors, vertexCount); // 1 color per vertex
 
     addDrawOp(new (alloc()) DrawBitmapMeshOp(bitmap, meshWidth, meshHeight,
                     vertices, colors, paint));
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp
index bd9bfe9..bfe4eda 100644
--- a/libs/hwui/Layer.cpp
+++ b/libs/hwui/Layer.cpp
@@ -58,6 +58,7 @@
 
     delete[] mesh;
     delete deferredList;
+    delete renderer;
 }
 
 uint32_t Layer::computeIdealWidth(uint32_t layerWidth) {
@@ -68,6 +69,13 @@
     return uint32_t(ceilf(layerHeight / float(LAYER_SIZE)) * LAYER_SIZE);
 }
 
+void Layer::requireRenderer() {
+    if (!renderer) {
+        renderer = new LayerRenderer(this);
+        renderer->initProperties();
+    }
+}
+
 bool Layer::resize(const uint32_t width, const uint32_t height) {
     uint32_t desiredWidth = computeIdealWidth(width);
     uint32_t desiredHeight = computeIdealWidth(height);
@@ -132,6 +140,15 @@
     }
 }
 
+void Layer::updateDeferred(RenderNode* displayList,
+        int left, int top, int right, int bottom) {
+    requireRenderer();
+    this->displayList = displayList;
+    const Rect r(left, top, right, bottom);
+    dirtyRect.unionWith(r);
+    deferredUpdateScheduled = true;
+}
+
 void Layer::setPaint(const SkPaint* paint) {
     OpenGLRenderer::getAlphaAndModeDirect(paint, &alpha, &mode);
     setColorFilter((paint) ? paint->getColorFilter() : NULL);
@@ -201,13 +218,12 @@
             dirtyRect.right, dirtyRect.bottom, !isBlend());
 
     displayList->computeOrdering();
-    displayList->defer(deferredState, 0);
+    displayList->deferNodeTree(deferredState);
 
     deferredUpdateScheduled = false;
 }
 
 void Layer::cancelDefer() {
-    renderer = NULL;
     displayList = NULL;
     deferredUpdateScheduled = false;
     if (deferredList) {
@@ -226,7 +242,6 @@
         deferredList->flush(*renderer, dirtyRect);
 
         renderer->finish();
-        renderer = NULL;
 
         dirtyRect.setEmpty();
         displayList = NULL;
@@ -238,10 +253,9 @@
     renderer->prepareDirty(dirtyRect.left, dirtyRect.top, dirtyRect.right, dirtyRect.bottom,
             !isBlend());
 
-    renderer->drawDisplayList(displayList, dirtyRect, RenderNode::kReplayFlag_ClipChildren);
+    renderer->drawDisplayList(displayList.get(), dirtyRect, RenderNode::kReplayFlag_ClipChildren);
 
     renderer->finish();
-    renderer = NULL;
 
     dirtyRect.setEmpty();
 
diff --git a/libs/hwui/Layer.h b/libs/hwui/Layer.h
index d8440ea..5375b45 100644
--- a/libs/hwui/Layer.h
+++ b/libs/hwui/Layer.h
@@ -19,6 +19,7 @@
 
 #include <cutils/compiler.h>
 #include <sys/types.h>
+#include <utils/StrongPointer.h>
 
 #include <GLES2/gl2.h>
 
@@ -84,14 +85,8 @@
         regionRect.translate(layer.left, layer.top);
     }
 
-    void updateDeferred(OpenGLRenderer* renderer, RenderNode* displayList,
-            int left, int top, int right, int bottom) {
-        this->renderer = renderer;
-        this->displayList = displayList;
-        const Rect r(left, top, right, bottom);
-        dirtyRect.unionWith(r);
-        deferredUpdateScheduled = true;
-    }
+    void updateDeferred(RenderNode* displayList,
+            int left, int top, int right, int bottom);
 
     inline uint32_t getWidth() const {
         return texture.width;
@@ -294,12 +289,14 @@
      */
     bool deferredUpdateScheduled;
     OpenGLRenderer* renderer;
-    RenderNode* displayList;
+    sp<RenderNode> displayList;
     Rect dirtyRect;
     bool debugDrawUpdate;
     bool hasDrawnSinceUpdate;
 
 private:
+    void requireRenderer();
+
     Caches& caches;
 
     /**
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index d808735..f37487f 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -409,15 +409,6 @@
         for (size_t i = 0; i < count; i++) {
             Functor* f = functors.itemAt(i);
             result |= (*f)(DrawGlInfo::kModeProcess, &info);
-
-            if (result & DrawGlInfo::kStatusDraw) {
-                Rect localDirty(info.dirtyLeft, info.dirtyTop, info.dirtyRight, info.dirtyBottom);
-                dirty.unionWith(localDirty);
-            }
-
-            if (result & DrawGlInfo::kStatusInvoke) {
-                mFunctors.add(f);
-            }
         }
         resume();
     }
@@ -461,19 +452,10 @@
     interrupt();
 
     // call functor immediately after GL state setup
-    status_t result = (*functor)(DrawGlInfo::kModeDraw, &info);
-
-    if (result != DrawGlInfo::kStatusDone) {
-        Rect localDirty(info.dirtyLeft, info.dirtyTop, info.dirtyRight, info.dirtyBottom);
-        dirty.unionWith(localDirty);
-
-        if (result & DrawGlInfo::kStatusInvoke) {
-            mFunctors.add(functor);
-        }
-    }
+    (*functor)(DrawGlInfo::kModeDraw, &info);
 
     resume();
-    return result | DrawGlInfo::kStatusDrew;
+    return DrawGlInfo::kStatusDrew;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -555,7 +537,7 @@
 
 bool OpenGLRenderer::updateLayer(Layer* layer, bool inFrame) {
     if (layer->deferredUpdateScheduled && layer->renderer &&
-            layer->displayList && layer->displayList->isRenderable()) {
+            layer->displayList.get() && layer->displayList->isRenderable()) {
         ATRACE_CALL();
 
         Rect& dirty = layer->dirtyRect;
@@ -1919,19 +1901,18 @@
     // will be performed by the display list itself
     if (displayList && displayList->isRenderable()) {
         // compute 3d ordering
-        displayList->updateProperties();
         displayList->computeOrdering();
         if (CC_UNLIKELY(mCaches.drawDeferDisabled)) {
             status = startFrame();
             ReplayStateStruct replayStruct(*this, dirty, replayFlags);
-            displayList->replay(replayStruct, 0);
+            displayList->replayNodeTree(replayStruct);
             return status | replayStruct.mDrawGlStatus;
         }
 
         bool avoidOverdraw = !mCaches.debugOverdraw && !mCountOverdraw; // shh, don't tell devs!
         DeferredDisplayList deferredList(*currentClipRect(), avoidOverdraw);
         DeferStateStruct deferStruct(deferredList, *this, replayFlags);
-        displayList->defer(deferStruct, 0);
+        displayList->deferNodeTree(deferStruct);
 
         flushLayers();
         status = startFrame();
@@ -3203,7 +3184,7 @@
 }
 
 status_t OpenGLRenderer::drawShadow(const mat4& casterTransformXY, const mat4& casterTransformZ,
-        float casterAlpha, const SkPath* casterPerimeter) {
+        float casterAlpha, bool casterUnclipped, const SkPath* casterPerimeter) {
     if (currentSnapshot()->isIgnored()) return DrawGlInfo::kStatusDone;
 
     // TODO: use quickRejectWithScissor. For now, always force enable scissor.
@@ -3260,7 +3241,7 @@
     Rect casterBounds(casterPerimeter->getBounds());
     casterTransformXY.mapRect(casterBounds);
 
-    bool isCasterOpaque = (casterAlpha == 1.0f);
+    bool isCasterOpaque = (casterAlpha == 1.0f) && casterUnclipped;
     // draw caster's shadows
     if (mCaches.propertyAmbientShadowStrength > 0) {
         paint.setARGB(casterAlpha * mCaches.propertyAmbientShadowStrength, 0, 0, 0);
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index 054767e..2debd2e 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -210,7 +210,7 @@
     virtual status_t drawRects(const float* rects, int count, const SkPaint* paint);
 
     status_t drawShadow(const mat4& casterTransformXY, const mat4& casterTransformZ,
-            float casterAlpha, const SkPath* casterPerimeter);
+            float casterAlpha, bool casterUnclipped, const SkPath* casterPerimeter);
 
     virtual void resetShader();
     virtual void setupShader(SkiaShader* shader);
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index e39e5ae..cf21834 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -49,28 +49,24 @@
     fflush(file);
 }
 
-RenderNode::RenderNode() : mDestroyed(false), mNeedsPropertiesSync(false), mDisplayListData(0) {
+RenderNode::RenderNode()
+        : mNeedsPropertiesSync(false)
+        , mNeedsDisplayListDataSync(false)
+        , mDisplayListData(0)
+        , mStagingDisplayListData(0) {
 }
 
 RenderNode::~RenderNode() {
-    LOG_ALWAYS_FATAL_IF(mDestroyed, "Double destroyed DisplayList %p", this);
-
-    mDestroyed = true;
     delete mDisplayListData;
+    delete mStagingDisplayListData;
 }
 
-void RenderNode::destroyDisplayListDeferred(RenderNode* displayList) {
-    if (displayList) {
-        DISPLAY_LIST_LOGD("Deferring display list destruction");
-        Caches::getInstance().deleteDisplayListDeferred(displayList);
-    }
-}
-
-void RenderNode::setData(DisplayListData* data) {
-    delete mDisplayListData;
-    mDisplayListData = data;
-    if (mDisplayListData) {
-        Caches::getInstance().registerFunctors(mDisplayListData->functorCount);
+void RenderNode::setStagingDisplayList(DisplayListData* data) {
+    mNeedsDisplayListDataSync = true;
+    delete mStagingDisplayListData;
+    mStagingDisplayListData = data;
+    if (mStagingDisplayListData) {
+        Caches::getInstance().registerFunctors(mStagingDisplayListData->functorCount);
     }
 }
 
@@ -93,16 +89,50 @@
     ALOGD("%*sDone (%p, %s)", (level - 1) * 2, "", this, mName.string());
 }
 
-void RenderNode::updateProperties() {
+void RenderNode::prepareTree(TreeInfo& info) {
+    ATRACE_CALL();
+
+    prepareTreeImpl(info);
+}
+
+void RenderNode::prepareTreeImpl(TreeInfo& info) {
+    pushStagingChanges(info);
+    prepareSubTree(info, mDisplayListData);
+}
+
+void RenderNode::pushStagingChanges(TreeInfo& info) {
     if (mNeedsPropertiesSync) {
         mNeedsPropertiesSync = false;
         mProperties = mStagingProperties;
     }
+    if (mNeedsDisplayListDataSync) {
+        mNeedsDisplayListDataSync = false;
+        // Do a push pass on the old tree to handle freeing DisplayListData
+        // that are no longer used
+        TreeInfo oldTreeInfo;
+        prepareSubTree(oldTreeInfo, mDisplayListData);
+        // TODO: The damage for the old tree should be accounted for
+        delete mDisplayListData;
+        mDisplayListData = mStagingDisplayListData;
+        mStagingDisplayListData = 0;
+    }
+}
 
-    if (mDisplayListData) {
-        for (size_t i = 0; i < mDisplayListData->children.size(); i++) {
-            RenderNode* childNode = mDisplayListData->children[i]->mDisplayList;
-            childNode->updateProperties();
+void RenderNode::prepareSubTree(TreeInfo& info, DisplayListData* subtree) {
+    if (subtree) {
+        TextureCache& cache = Caches::getInstance().textureCache;
+        info.hasFunctors |= subtree->functorCount;
+        // TODO: Fix ownedBitmapResources to not require disabling prepareTextures
+        // and thus falling out of async drawing path.
+        if (subtree->ownedBitmapResources.size()) {
+            info.prepareTextures = false;
+        }
+        for (size_t i = 0; info.prepareTextures && i < subtree->bitmapResources.size(); i++) {
+            info.prepareTextures = cache.prefetchAndMarkInUse(subtree->bitmapResources[i]);
+        }
+        for (size_t i = 0; i < subtree->children().size(); i++) {
+            RenderNode* childNode = subtree->children()[i]->mDisplayList;
+            childNode->prepareTreeImpl(info);
         }
     }
 }
@@ -115,10 +145,9 @@
 #define PROPERTY_SAVECOUNT 0
 
 template <class T>
-void RenderNode::setViewProperties(OpenGLRenderer& renderer, T& handler,
-        const int level) {
+void RenderNode::setViewProperties(OpenGLRenderer& renderer, T& handler) {
 #if DEBUG_DISPLAY_LIST
-    properties().debugOutputProperties(level);
+    properties().debugOutputProperties(handler.level() + 1);
 #endif
     if (properties().getLeft() != 0 || properties().getTop() != 0) {
         renderer.translate(properties().getLeft(), properties().getTop());
@@ -128,8 +157,8 @@
     } else if (properties().getAnimationMatrix()) {
         renderer.concatMatrix(properties().getAnimationMatrix());
     }
-    if (properties().getMatrixFlags() != 0) {
-        if (properties().getMatrixFlags() == TRANSLATION) {
+    if (properties().hasTransformMatrix()) {
+        if (properties().isTransformTranslateOnly()) {
             renderer.translate(properties().getTranslationX(), properties().getTranslationY());
         } else {
             renderer.concatMatrix(*properties().getTransformMatrix());
@@ -188,8 +217,8 @@
         mat4 anim(*properties().getAnimationMatrix());
         matrix.multiply(anim);
     }
-    if (properties().getMatrixFlags() != 0) {
-        if (properties().getMatrixFlags() == TRANSLATION) {
+    if (properties().hasTransformMatrix()) {
+        if (properties().isTransformTranslateOnly()) {
             matrix.translate(properties().getTranslationX(), properties().getTranslationY(),
                     true3dTransform ? properties().getTranslationZ() : 0.0f);
         } else {
@@ -228,8 +257,8 @@
     // TODO: create temporary DDLOp and call computeOrderingImpl on top DisplayList so that
     // transform properties are applied correctly to top level children
     if (mDisplayListData == NULL) return;
-    for (unsigned int i = 0; i < mDisplayListData->children.size(); i++) {
-        DrawDisplayListOp* childOp = mDisplayListData->children[i];
+    for (unsigned int i = 0; i < mDisplayListData->children().size(); i++) {
+        DrawDisplayListOp* childOp = mDisplayListData->children()[i];
         childOp->mDisplayList->computeOrderingImpl(childOp,
                 &mProjectedNodes, &mat4::identity());
     }
@@ -257,11 +286,11 @@
         opState->mSkipInOrderDraw = false;
     }
 
-    if (mDisplayListData->children.size() > 0) {
+    if (mDisplayListData->children().size() > 0) {
         const bool isProjectionReceiver = mDisplayListData->projectionReceiveIndex >= 0;
         bool haveAppliedPropertiesToProjection = false;
-        for (unsigned int i = 0; i < mDisplayListData->children.size(); i++) {
-            DrawDisplayListOp* childOp = mDisplayListData->children[i];
+        for (unsigned int i = 0; i < mDisplayListData->children().size(); i++) {
+            DrawDisplayListOp* childOp = mDisplayListData->children()[i];
             RenderNode* child = childOp->mDisplayList;
 
             Vector<DrawDisplayListOp*>* projectionChildren = NULL;
@@ -285,7 +314,6 @@
             child->computeOrderingImpl(childOp, projectionChildren, projectionTransform);
         }
     }
-
 }
 
 class DeferOperationHandler {
@@ -296,15 +324,25 @@
         operation->defer(mDeferStruct, saveCount, mLevel, clipToBounds);
     }
     inline LinearAllocator& allocator() { return *(mDeferStruct.mAllocator); }
+    inline void startMark(const char* name) {} // do nothing
+    inline void endMark() {}
+    inline int level() { return mLevel; }
+    inline int replayFlags() { return mDeferStruct.mReplayFlags; }
 
 private:
     DeferStateStruct& mDeferStruct;
     const int mLevel;
 };
 
-void RenderNode::defer(DeferStateStruct& deferStruct, const int level) {
+void RenderNode::deferNodeTree(DeferStateStruct& deferStruct) {
+    DeferOperationHandler handler(deferStruct, 0);
+    if (properties().getTranslationZ() > 0.0f) issueDrawShadowOperation(Matrix4::identity(), handler);
+    issueOperations<DeferOperationHandler>(deferStruct.mRenderer, handler);
+}
+
+void RenderNode::deferNodeInParent(DeferStateStruct& deferStruct, const int level) {
     DeferOperationHandler handler(deferStruct, level);
-    iterate<DeferOperationHandler>(deferStruct.mRenderer, handler, level);
+    issueOperations<DeferOperationHandler>(deferStruct.mRenderer, handler);
 }
 
 class ReplayOperationHandler {
@@ -318,28 +356,38 @@
         operation->replay(mReplayStruct, saveCount, mLevel, clipToBounds);
     }
     inline LinearAllocator& allocator() { return *(mReplayStruct.mAllocator); }
+    inline void startMark(const char* name) {
+        mReplayStruct.mRenderer.startMark(name);
+    }
+    inline void endMark() {
+        mReplayStruct.mRenderer.endMark();
+        DISPLAY_LIST_LOGD("%*sDone (%p, %s), returning %d", level * 2, "", this, mName.string(),
+                mReplayStruct.mDrawGlStatus);
+    }
+    inline int level() { return mLevel; }
+    inline int replayFlags() { return mReplayStruct.mReplayFlags; }
 
 private:
     ReplayStateStruct& mReplayStruct;
     const int mLevel;
 };
 
-void RenderNode::replay(ReplayStateStruct& replayStruct, const int level) {
+void RenderNode::replayNodeTree(ReplayStateStruct& replayStruct) {
+    ReplayOperationHandler handler(replayStruct, 0);
+    if (properties().getTranslationZ() > 0.0f) issueDrawShadowOperation(Matrix4::identity(), handler);
+    issueOperations<ReplayOperationHandler>(replayStruct.mRenderer, handler);
+}
+
+void RenderNode::replayNodeInParent(ReplayStateStruct& replayStruct, const int level) {
     ReplayOperationHandler handler(replayStruct, level);
-
-    replayStruct.mRenderer.startMark(mName.string());
-    iterate<ReplayOperationHandler>(replayStruct.mRenderer, handler, level);
-    replayStruct.mRenderer.endMark();
-
-    DISPLAY_LIST_LOGD("%*sDone (%p, %s), returning %d", level * 2, "", this, mName.string(),
-            replayStruct.mDrawGlStatus);
+    issueOperations<ReplayOperationHandler>(replayStruct.mRenderer, handler);
 }
 
 void RenderNode::buildZSortedChildList(Vector<ZDrawDisplayListOpPair>& zTranslatedNodes) {
-    if (mDisplayListData == NULL || mDisplayListData->children.size() == 0) return;
+    if (mDisplayListData == NULL || mDisplayListData->children().size() == 0) return;
 
-    for (unsigned int i = 0; i < mDisplayListData->children.size(); i++) {
-        DrawDisplayListOp* childOp = mDisplayListData->children[i];
+    for (unsigned int i = 0; i < mDisplayListData->children().size(); i++) {
+        DrawDisplayListOp* childOp = mDisplayListData->children()[i];
         RenderNode* child = childOp->mDisplayList;
         float childZ = child->properties().getTranslationZ();
 
@@ -356,10 +404,42 @@
     std::stable_sort(zTranslatedNodes.begin(), zTranslatedNodes.end());
 }
 
+template <class T>
+void RenderNode::issueDrawShadowOperation(const Matrix4& transformFromParent, T& handler) {
+    if (properties().getAlpha() <= 0.0f) return;
+
+    mat4 shadowMatrixXY(transformFromParent);
+    applyViewPropertyTransforms(shadowMatrixXY);
+
+    // Z matrix needs actual 3d transformation, so mapped z values will be correct
+    mat4 shadowMatrixZ(transformFromParent);
+    applyViewPropertyTransforms(shadowMatrixZ, true);
+
+    const SkPath* outlinePath = properties().getOutline().getPath();
+    const RevealClip& revealClip = properties().getRevealClip();
+    const SkPath* revealClipPath = revealClip.hasConvexClip()
+            ?  revealClip.getPath() : NULL; // only pass the reveal clip's path if it's convex
+
+    /**
+     * The drawing area of the caster is always the same as the its perimeter (which
+     * the shadow system uses) *except* in the inverse clip case. Inform the shadow
+     * system that the caster's drawing area (as opposed to its perimeter) has been
+     * clipped, so that it knows the caster can't be opaque.
+     */
+    bool casterUnclipped = !revealClip.willClip() || revealClip.hasConvexClip();
+
+    DisplayListOp* shadowOp  = new (handler.allocator()) DrawShadowOp(
+            shadowMatrixXY, shadowMatrixZ,
+            properties().getAlpha(), casterUnclipped,
+            properties().getWidth(), properties().getHeight(),
+            outlinePath, revealClipPath);
+    handler(shadowOp, PROPERTY_SAVECOUNT, properties().getClipToBounds());
+}
+
 #define SHADOW_DELTA 0.1f
 
 template <class T>
-void RenderNode::iterate3dChildren(const Vector<ZDrawDisplayListOpPair>& zTranslatedNodes,
+void RenderNode::issueOperationsOf3dChildren(const Vector<ZDrawDisplayListOpPair>& zTranslatedNodes,
         ChildrenSelectMode mode, OpenGLRenderer& renderer, T& handler) {
     const int size = zTranslatedNodes.size();
     if (size == 0
@@ -369,12 +449,6 @@
         return;
     }
 
-    int rootRestoreTo = renderer.save(SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
-    LinearAllocator& alloc = handler.allocator();
-    ClipRectOp* clipOp = new (alloc) ClipRectOp(0, 0, properties().getWidth(), properties().getHeight(),
-            SkRegion::kIntersect_Op); // clip to 3d root bounds
-    handler(clipOp, PROPERTY_SAVECOUNT, properties().getClipToBounds());
-
     /**
      * Draw shadows and (potential) casters mostly in order, but allow the shadows of casters
      * with very similar Z heights to draw together.
@@ -402,26 +476,7 @@
             // attempt to render the shadow if the caster about to be drawn is its caster,
             // OR if its caster's Z value is similar to the previous potential caster
             if (shadowIndex == drawIndex || casterZ - lastCasterZ < SHADOW_DELTA) {
-
-                if (caster->properties().getAlpha() > 0.0f) {
-                    mat4 shadowMatrixXY(casterOp->mTransformFromParent);
-                    caster->applyViewPropertyTransforms(shadowMatrixXY);
-
-                    // Z matrix needs actual 3d transformation, so mapped z values will be correct
-                    mat4 shadowMatrixZ(casterOp->mTransformFromParent);
-                    caster->applyViewPropertyTransforms(shadowMatrixZ, true);
-
-                    const SkPath* outlinePath = caster->properties().getOutline().getPath();
-                    const RevealClip& revealClip = caster->properties().getRevealClip();
-                    const SkPath* revealClipPath = revealClip.hasConvexClip()
-                            ?  revealClip.getPath() : NULL; // only pass the reveal clip's path if it's convex
-
-                    DisplayListOp* shadowOp  = new (alloc) DrawShadowOp(
-                            shadowMatrixXY, shadowMatrixZ, caster->properties().getAlpha(),
-                            caster->properties().getWidth(), caster->properties().getHeight(),
-                            outlinePath, revealClipPath);
-                    handler(shadowOp, PROPERTY_SAVECOUNT, properties().getClipToBounds());
-                }
+                caster->issueDrawShadowOperation(casterOp->mTransformFromParent, handler);
 
                 lastCasterZ = casterZ; // must do this even if current caster not casting a shadow
                 shadowIndex++;
@@ -444,17 +499,10 @@
         renderer.restoreToCount(restoreTo);
         drawIndex++;
     }
-    handler(new (alloc) RestoreToCountOp(rootRestoreTo), PROPERTY_SAVECOUNT, properties().getClipToBounds());
 }
 
 template <class T>
-void RenderNode::iterateProjectedChildren(OpenGLRenderer& renderer, T& handler, const int level) {
-    int rootRestoreTo = renderer.save(SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
-    LinearAllocator& alloc = handler.allocator();
-    ClipRectOp* clipOp = new (alloc) ClipRectOp(0, 0, properties().getWidth(), properties().getHeight(),
-            SkRegion::kReplace_Op); // clip to projection surface root bounds
-    handler(clipOp, PROPERTY_SAVECOUNT, properties().getClipToBounds());
-
+void RenderNode::issueOperationsOfProjectedChildren(OpenGLRenderer& renderer, T& handler) {
     for (size_t i = 0; i < mProjectedNodes.size(); i++) {
         DrawDisplayListOp* childOp = mProjectedNodes[i];
 
@@ -466,7 +514,6 @@
         childOp->mSkipInOrderDraw = true;
         renderer.restoreToCount(restoreTo);
     }
-    handler(new (alloc) RestoreToCountOp(rootRestoreTo), PROPERTY_SAVECOUNT, properties().getClipToBounds());
 }
 
 /**
@@ -479,16 +526,15 @@
  * defer vs replay logic, per operation
  */
 template <class T>
-void RenderNode::iterate(OpenGLRenderer& renderer, T& handler, const int level) {
-    if (CC_UNLIKELY(mDestroyed)) { // temporary debug logging
-        ALOGW("Error: %s is drawing after destruction", mName.string());
-        CRASH();
-    }
+void RenderNode::issueOperations(OpenGLRenderer& renderer, T& handler) {
+    const int level = handler.level();
     if (mDisplayListData->isEmpty() || properties().getAlpha() <= 0) {
         DISPLAY_LIST_LOGD("%*sEmpty display list (%p, %s)", level * 2, "", this, mName.string());
         return;
     }
 
+    handler.startMark(mName.string());
+
 #if DEBUG_DISPLAY_LIST
     Rect* clipRect = renderer.getClipRect();
     DISPLAY_LIST_LOGD("%*sStart display list (%p, %s), clipRect: %.0f, %.0f, %.0f, %.0f",
@@ -504,7 +550,7 @@
     DISPLAY_LIST_LOGD("%*sSave %d %d", (level + 1) * 2, "",
             SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag, restoreTo);
 
-    setViewProperties<T>(renderer, handler, level + 1);
+    setViewProperties<T>(renderer, handler);
 
     bool quickRejected = properties().getClipToBounds()
             && renderer.quickRejectConservative(0, 0, properties().getWidth(), properties().getHeight());
@@ -513,7 +559,7 @@
         buildZSortedChildList(zTranslatedNodes);
 
         // for 3d root, draw children with negative z values
-        iterate3dChildren(zTranslatedNodes, kNegativeZChildren, renderer, handler);
+        issueOperationsOf3dChildren(zTranslatedNodes, kNegativeZChildren, renderer, handler);
 
         DisplayListLogBuffer& logBuffer = DisplayListLogBuffer::getInstance();
         const int saveCountOffset = renderer.getSaveCount() - 1;
@@ -524,23 +570,24 @@
 #if DEBUG_DISPLAY_LIST
             op->output(level + 1);
 #endif
-
             logBuffer.writeCommand(level, op->name());
             handler(op, saveCountOffset, properties().getClipToBounds());
 
             if (CC_UNLIKELY(i == projectionReceiveIndex && mProjectedNodes.size() > 0)) {
-                iterateProjectedChildren(renderer, handler, level);
+                issueOperationsOfProjectedChildren(renderer, handler);
             }
         }
 
         // for 3d root, draw children with positive z values
-        iterate3dChildren(zTranslatedNodes, kPositiveZChildren, renderer, handler);
+        issueOperationsOf3dChildren(zTranslatedNodes, kPositiveZChildren, renderer, handler);
     }
 
     DISPLAY_LIST_LOGD("%*sRestoreToCount %d", (level + 1) * 2, "", restoreTo);
     handler(new (alloc) RestoreToCountOp(restoreTo),
             PROPERTY_SAVECOUNT, properties().getClipToBounds());
     renderer.setOverrideLayerAlpha(1.0f);
+
+    handler.endMark();
 }
 
 } /* namespace uirenderer */
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h
index 756c9444..6688952 100644
--- a/libs/hwui/RenderNode.h
+++ b/libs/hwui/RenderNode.h
@@ -41,6 +41,7 @@
 #include "DeferredDisplayList.h"
 #include "DisplayList.h"
 #include "RenderProperties.h"
+#include "utils/VirtualLightRefBase.h"
 
 class SkBitmap;
 class SkPaint;
@@ -64,6 +65,17 @@
 class RestoreToCountOp;
 class DrawDisplayListOp;
 
+struct TreeInfo {
+    TreeInfo()
+            : hasFunctors(false)
+            , prepareTextures(false)
+    {}
+
+    bool hasFunctors;
+    bool prepareTextures;
+    // TODO: Damage calculations? Flag to skip staging pushes for RT animations?
+};
+
 /**
  * Primary class for storing recorded canvas commands, as well as per-View/ViewGroup display properties.
  *
@@ -76,7 +88,7 @@
  * recorded stream of canvas operations is refreshed. The DisplayList (and its properties) stay
  * attached.
  */
-class RenderNode {
+class RenderNode : public VirtualLightRefBase {
 public:
     ANDROID_API RenderNode();
     ANDROID_API ~RenderNode();
@@ -86,14 +98,17 @@
         kReplayFlag_ClipChildren = 0x1
     };
 
-    ANDROID_API static void destroyDisplayListDeferred(RenderNode* displayList);
     ANDROID_API static void outputLogBuffer(int fd);
 
-    ANDROID_API void setData(DisplayListData* newData);
+    ANDROID_API void setStagingDisplayList(DisplayListData* newData);
 
     void computeOrdering();
-    void defer(DeferStateStruct& deferStruct, const int level);
-    void replay(ReplayStateStruct& replayStruct, const int level);
+
+    void deferNodeTree(DeferStateStruct& deferStruct);
+    void deferNodeInParent(DeferStateStruct& deferStruct, const int level);
+
+    void replayNodeTree(ReplayStateStruct& replayStruct);
+    void replayNodeInParent(ReplayStateStruct& replayStruct, const int level);
 
     ANDROID_API void output(uint32_t level = 1);
 
@@ -101,6 +116,10 @@
         return mDisplayListData && mDisplayListData->hasDrawOps;
     }
 
+    const char* getName() const {
+        return mName.string();
+    }
+
     void setName(const char* name) {
         if (name) {
             char* lastPeriod = strrchr(name, '.');
@@ -125,10 +144,6 @@
         return mStagingProperties;
     }
 
-    bool isProjectionReceiver() {
-        return properties().isProjectionReceiver();
-    }
-
     int getWidth() {
         return properties().getWidth();
     }
@@ -137,7 +152,7 @@
         return properties().getHeight();
     }
 
-    ANDROID_API void updateProperties();
+    ANDROID_API void prepareTree(TreeInfo& info);
 
 private:
     typedef key_value_pair_t<float, DrawDisplayListOp*> ZDrawDisplayListOpPair;
@@ -161,19 +176,26 @@
             const mat4* transformFromProjectionSurface);
 
     template <class T>
-    inline void setViewProperties(OpenGLRenderer& renderer, T& handler, const int level);
+    inline void setViewProperties(OpenGLRenderer& renderer, T& handler);
 
     void buildZSortedChildList(Vector<ZDrawDisplayListOpPair>& zTranslatedNodes);
 
+    template<class T>
+    inline void issueDrawShadowOperation(const Matrix4& transformFromParent, T& handler);
+
     template <class T>
-    inline void iterate3dChildren(const Vector<ZDrawDisplayListOpPair>& zTranslatedNodes,
+    inline void issueOperationsOf3dChildren(const Vector<ZDrawDisplayListOpPair>& zTranslatedNodes,
             ChildrenSelectMode mode, OpenGLRenderer& renderer, T& handler);
 
     template <class T>
-    inline void iterateProjectedChildren(OpenGLRenderer& renderer, T& handler, const int level);
+    inline void issueOperationsOfProjectedChildren(OpenGLRenderer& renderer, T& handler);
 
+    /**
+     * Issue the RenderNode's operations into a handler, recursing for subtrees through
+     * DrawDisplayListOp's defer() or replay() methods
+     */
     template <class T>
-    inline void iterate(OpenGLRenderer& renderer, T& handler, const int level);
+    inline void issueOperations(OpenGLRenderer& renderer, T& handler);
 
     class TextContainer {
     public:
@@ -189,14 +211,19 @@
         const char* mText;
     };
 
+    void prepareTreeImpl(TreeInfo& info);
+    void pushStagingChanges(TreeInfo& info);
+    void prepareSubTree(TreeInfo& info, DisplayListData* subtree);
+
     String8 mName;
-    bool mDestroyed; // used for debugging crash, TODO: remove once invalid state crash fixed
 
     bool mNeedsPropertiesSync;
     RenderProperties mProperties;
     RenderProperties mStagingProperties;
 
+    bool mNeedsDisplayListDataSync;
     DisplayListData* mDisplayListData;
+    DisplayListData* mStagingDisplayListData;
 
     /**
      * Draw time state - these properties are only set and used during rendering
diff --git a/libs/hwui/RenderProperties.cpp b/libs/hwui/RenderProperties.cpp
index 3975a76..08829ef 100644
--- a/libs/hwui/RenderProperties.cpp
+++ b/libs/hwui/RenderProperties.cpp
@@ -27,6 +27,16 @@
 
 #include "Matrix.h"
 
+/**
+ * Convenience value to check for float values that are close enough to zero to be considered
+ * zero.
+ */
+#define NONZERO_EPSILON .001f
+
+static inline bool is_zero(float value) {
+    return (value >= -NONZERO_EPSILON) || (value <= NONZERO_EPSILON);
+}
+
 namespace android {
 namespace uirenderer {
 
@@ -42,31 +52,23 @@
         , mPivotX(0), mPivotY(0)
         , mLeft(0), mTop(0), mRight(0), mBottom(0)
         , mWidth(0), mHeight(0)
-        , mPrevWidth(-1), mPrevHeight(-1)
         , mPivotExplicitlySet(false)
-        , mMatrixDirty(false)
-        , mMatrixIsIdentity(true)
-        , mMatrixFlags(0)
+        , mMatrixOrPivotDirty(false)
         , mCaching(false) {
 }
 
 RenderProperties::ComputedFields::ComputedFields()
         : mTransformMatrix(NULL)
-        , mTransformCamera(NULL)
-        , mTransformMatrix3D(NULL)
         , mClipPath(NULL) {
 }
 
 RenderProperties::ComputedFields::~ComputedFields() {
     delete mTransformMatrix;
-    delete mTransformCamera;
-    delete mTransformMatrix3D;
     delete mClipPath;
 }
 
 RenderProperties::RenderProperties()
-        : mCameraDistance(0)
-        , mStaticMatrix(NULL)
+        : mStaticMatrix(NULL)
         , mAnimationMatrix(NULL) {
 }
 
@@ -82,9 +84,12 @@
         setAnimationMatrix(other.getAnimationMatrix());
         setCameraDistance(other.getCameraDistance());
 
-        // Update the computed fields
-        updateMatrix();
+        // Update the computed clip path
         updateClipPath();
+
+        // Force recalculation of the matrix, since other's dirty bit may be clear
+        mPrimitiveFields.mMatrixOrPivotDirty = true;
+        updateMatrix();
     }
     return *this;
 }
@@ -101,13 +106,13 @@
         ALOGD("%*sConcatMatrix (animation) %p: " SK_MATRIX_STRING,
                 level * 2, "", mAnimationMatrix, SK_MATRIX_ARGS(mAnimationMatrix));
     }
-    if (mPrimitiveFields.mMatrixFlags != 0) {
-        if (mPrimitiveFields.mMatrixFlags == TRANSLATION) {
+    if (hasTransformMatrix()) {
+        if (isTransformTranslateOnly()) {
             ALOGD("%*sTranslate %.2f, %.2f, %.2f",
                     level * 2, "", mPrimitiveFields.mTranslationX, mPrimitiveFields.mTranslationY, mPrimitiveFields.mTranslationZ);
         } else {
-            ALOGD("%*sConcatMatrix %p: " MATRIX_4_STRING,
-                    level * 2, "", mComputedFields.mTransformMatrix, MATRIX_4_ARGS(mComputedFields.mTransformMatrix));
+            ALOGD("%*sConcatMatrix %p: " SK_MATRIX_STRING,
+                    level * 2, "", mComputedFields.mTransformMatrix, SK_MATRIX_ARGS(mComputedFields.mTransformMatrix));
         }
     }
 
@@ -135,54 +140,36 @@
 }
 
 void RenderProperties::updateMatrix() {
-    if (mPrimitiveFields.mMatrixDirty) {
-        // NOTE: mComputedFields.mTransformMatrix won't be up to date if a DisplayList goes from a complex transform
-        // to a pure translate. This is safe because the mPrimitiveFields.matrix isn't read in pure translate cases.
-        if (mPrimitiveFields.mMatrixFlags && mPrimitiveFields.mMatrixFlags != TRANSLATION) {
-            if (!mComputedFields.mTransformMatrix) {
-                // only allocate a mPrimitiveFields.matrix if we have a complex transform
-                mComputedFields.mTransformMatrix = new Matrix4();
-            }
-            if (!mPrimitiveFields.mPivotExplicitlySet) {
-                if (mPrimitiveFields.mWidth != mPrimitiveFields.mPrevWidth || mPrimitiveFields.mHeight != mPrimitiveFields.mPrevHeight) {
-                    mPrimitiveFields.mPrevWidth = mPrimitiveFields.mWidth;
-                    mPrimitiveFields.mPrevHeight = mPrimitiveFields.mHeight;
-                    mPrimitiveFields.mPivotX = mPrimitiveFields.mPrevWidth / 2.0f;
-                    mPrimitiveFields.mPivotY = mPrimitiveFields.mPrevHeight / 2.0f;
-                }
-            }
-
-            if ((mPrimitiveFields.mMatrixFlags & ROTATION_3D) == 0) {
-                mComputedFields.mTransformMatrix->loadTranslate(
-                        mPrimitiveFields.mPivotX + mPrimitiveFields.mTranslationX,
-                        mPrimitiveFields.mPivotY + mPrimitiveFields.mTranslationY,
-                        0);
-                mComputedFields.mTransformMatrix->rotate(mPrimitiveFields.mRotation, 0, 0, 1);
-                mComputedFields.mTransformMatrix->scale(mPrimitiveFields.mScaleX, mPrimitiveFields.mScaleY, 1);
-                mComputedFields.mTransformMatrix->translate(-mPrimitiveFields.mPivotX, -mPrimitiveFields.mPivotY);
-            } else {
-                if (!mComputedFields.mTransformCamera) {
-                    mComputedFields.mTransformCamera = new Sk3DView();
-                    mComputedFields.mTransformMatrix3D = new SkMatrix();
-                }
-                SkMatrix transformMatrix;
-                transformMatrix.reset();
-                mComputedFields.mTransformCamera->save();
-                transformMatrix.preScale(mPrimitiveFields.mScaleX, mPrimitiveFields.mScaleY, mPrimitiveFields.mPivotX, mPrimitiveFields.mPivotY);
-                mComputedFields.mTransformCamera->rotateX(mPrimitiveFields.mRotationX);
-                mComputedFields.mTransformCamera->rotateY(mPrimitiveFields.mRotationY);
-                mComputedFields.mTransformCamera->rotateZ(-mPrimitiveFields.mRotation);
-                mComputedFields.mTransformCamera->getMatrix(mComputedFields.mTransformMatrix3D);
-                mComputedFields.mTransformMatrix3D->preTranslate(-mPrimitiveFields.mPivotX, -mPrimitiveFields.mPivotY);
-                mComputedFields.mTransformMatrix3D->postTranslate(mPrimitiveFields.mPivotX + mPrimitiveFields.mTranslationX,
-                        mPrimitiveFields.mPivotY + mPrimitiveFields.mTranslationY);
-                transformMatrix.postConcat(*mComputedFields.mTransformMatrix3D);
-                mComputedFields.mTransformCamera->restore();
-
-                mComputedFields.mTransformMatrix->load(transformMatrix);
-            }
+    if (mPrimitiveFields.mMatrixOrPivotDirty) {
+        if (!mComputedFields.mTransformMatrix) {
+            // only allocate a mPrimitiveFields.matrix if we have a complex transform
+            mComputedFields.mTransformMatrix = new SkMatrix();
         }
-        mPrimitiveFields.mMatrixDirty = false;
+        if (!mPrimitiveFields.mPivotExplicitlySet) {
+            mPrimitiveFields.mPivotX = mPrimitiveFields.mWidth / 2.0f;
+            mPrimitiveFields.mPivotY = mPrimitiveFields.mHeight / 2.0f;
+        }
+        SkMatrix* transform = mComputedFields.mTransformMatrix;
+        transform->reset();
+        if (is_zero(getRotationX()) && is_zero(getRotationY())) {
+            transform->setTranslate(getTranslationX(), getTranslationY());
+            transform->preRotate(getRotation(), getPivotX(), getPivotY());
+            transform->preScale(getScaleX(), getScaleY(), getPivotX(), getPivotY());
+        } else {
+            SkMatrix transform3D;
+            mComputedFields.mTransformCamera.save();
+            transform->preScale(getScaleX(), getScaleY(), getPivotX(), getPivotY());
+            mComputedFields.mTransformCamera.rotateX(mPrimitiveFields.mRotationX);
+            mComputedFields.mTransformCamera.rotateY(mPrimitiveFields.mRotationY);
+            mComputedFields.mTransformCamera.rotateZ(-mPrimitiveFields.mRotation);
+            mComputedFields.mTransformCamera.getMatrix(&transform3D);
+            transform3D.preTranslate(-getPivotX(), -getPivotY());
+            transform3D.postTranslate(getPivotX() + getTranslationX(),
+                    getPivotY() + getTranslationY());
+            transform->postConcat(transform3D);
+            mComputedFields.mTransformCamera.restore();
+        }
+        mPrimitiveFields.mMatrixOrPivotDirty = false;
     }
 }
 
diff --git a/libs/hwui/RenderProperties.h b/libs/hwui/RenderProperties.h
index 061e469..4270da2 100644
--- a/libs/hwui/RenderProperties.h
+++ b/libs/hwui/RenderProperties.h
@@ -28,12 +28,6 @@
 #include "RevealClip.h"
 #include "Outline.h"
 
-#define TRANSLATION 0x0001
-#define ROTATION    0x0002
-#define ROTATION_3D 0x0004
-#define SCALE       0x0008
-#define PIVOT       0x0010
-
 class SkBitmap;
 class SkPaint;
 
@@ -114,7 +108,7 @@
     void setTranslationX(float translationX) {
         if (translationX != mPrimitiveFields.mTranslationX) {
             mPrimitiveFields.mTranslationX = translationX;
-            onTranslationUpdate();
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -125,7 +119,7 @@
     void setTranslationY(float translationY) {
         if (translationY != mPrimitiveFields.mTranslationY) {
             mPrimitiveFields.mTranslationY = translationY;
-            onTranslationUpdate();
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -136,7 +130,7 @@
     void setTranslationZ(float translationZ) {
         if (translationZ != mPrimitiveFields.mTranslationZ) {
             mPrimitiveFields.mTranslationZ = translationZ;
-            onTranslationUpdate();
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -147,12 +141,7 @@
     void setRotation(float rotation) {
         if (rotation != mPrimitiveFields.mRotation) {
             mPrimitiveFields.mRotation = rotation;
-            mPrimitiveFields.mMatrixDirty = true;
-            if (mPrimitiveFields.mRotation == 0.0f) {
-                mPrimitiveFields.mMatrixFlags &= ~ROTATION;
-            } else {
-                mPrimitiveFields.mMatrixFlags |= ROTATION;
-            }
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -163,12 +152,7 @@
     void setRotationX(float rotationX) {
         if (rotationX != mPrimitiveFields.mRotationX) {
             mPrimitiveFields.mRotationX = rotationX;
-            mPrimitiveFields.mMatrixDirty = true;
-            if (mPrimitiveFields.mRotationX == 0.0f && mPrimitiveFields.mRotationY == 0.0f) {
-                mPrimitiveFields.mMatrixFlags &= ~ROTATION_3D;
-            } else {
-                mPrimitiveFields.mMatrixFlags |= ROTATION_3D;
-            }
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -179,12 +163,7 @@
     void setRotationY(float rotationY) {
         if (rotationY != mPrimitiveFields.mRotationY) {
             mPrimitiveFields.mRotationY = rotationY;
-            mPrimitiveFields.mMatrixDirty = true;
-            if (mPrimitiveFields.mRotationX == 0.0f && mPrimitiveFields.mRotationY == 0.0f) {
-                mPrimitiveFields.mMatrixFlags &= ~ROTATION_3D;
-            } else {
-                mPrimitiveFields.mMatrixFlags |= ROTATION_3D;
-            }
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -195,12 +174,7 @@
     void setScaleX(float scaleX) {
         if (scaleX != mPrimitiveFields.mScaleX) {
             mPrimitiveFields.mScaleX = scaleX;
-            mPrimitiveFields.mMatrixDirty = true;
-            if (mPrimitiveFields.mScaleX == 1.0f && mPrimitiveFields.mScaleY == 1.0f) {
-                mPrimitiveFields.mMatrixFlags &= ~SCALE;
-            } else {
-                mPrimitiveFields.mMatrixFlags |= SCALE;
-            }
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -211,12 +185,7 @@
     void setScaleY(float scaleY) {
         if (scaleY != mPrimitiveFields.mScaleY) {
             mPrimitiveFields.mScaleY = scaleY;
-            mPrimitiveFields.mMatrixDirty = true;
-            if (mPrimitiveFields.mScaleX == 1.0f && mPrimitiveFields.mScaleY == 1.0f) {
-                mPrimitiveFields.mMatrixFlags &= ~SCALE;
-            } else {
-                mPrimitiveFields.mMatrixFlags |= SCALE;
-            }
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
         }
     }
 
@@ -226,12 +195,7 @@
 
     void setPivotX(float pivotX) {
         mPrimitiveFields.mPivotX = pivotX;
-        mPrimitiveFields.mMatrixDirty = true;
-        if (mPrimitiveFields.mPivotX == 0.0f && mPrimitiveFields.mPivotY == 0.0f) {
-            mPrimitiveFields.mMatrixFlags &= ~PIVOT;
-        } else {
-            mPrimitiveFields.mMatrixFlags |= PIVOT;
-        }
+        mPrimitiveFields.mMatrixOrPivotDirty = true;
         mPrimitiveFields.mPivotExplicitlySet = true;
     }
 
@@ -245,12 +209,7 @@
 
     void setPivotY(float pivotY) {
         mPrimitiveFields.mPivotY = pivotY;
-        mPrimitiveFields.mMatrixDirty = true;
-        if (mPrimitiveFields.mPivotX == 0.0f && mPrimitiveFields.mPivotY == 0.0f) {
-            mPrimitiveFields.mMatrixFlags &= ~PIVOT;
-        } else {
-            mPrimitiveFields.mMatrixFlags |= PIVOT;
-        }
+        mPrimitiveFields.mMatrixOrPivotDirty = true;
         mPrimitiveFields.mPivotExplicitlySet = true;
     }
 
@@ -258,28 +217,28 @@
         return mPrimitiveFields.mPivotY;
     }
 
+    bool isPivotExplicitlySet() const {
+        return mPrimitiveFields.mPivotExplicitlySet;
+    }
+
     void setCameraDistance(float distance) {
-        if (distance != mCameraDistance) {
-            mCameraDistance = distance;
-            mPrimitiveFields.mMatrixDirty = true;
-            if (!mComputedFields.mTransformCamera) {
-                mComputedFields.mTransformCamera = new Sk3DView();
-                mComputedFields.mTransformMatrix3D = new SkMatrix();
-            }
-            mComputedFields.mTransformCamera->setCameraLocation(0, 0, distance);
+        if (distance != getCameraDistance()) {
+            mPrimitiveFields.mMatrixOrPivotDirty = true;
+            mComputedFields.mTransformCamera.setCameraLocation(0, 0, distance);
         }
     }
 
     float getCameraDistance() const {
-        return mCameraDistance;
+        // TODO: update getCameraLocationZ() to be const
+        return const_cast<Sk3DView*>(&mComputedFields.mTransformCamera)->getCameraLocationZ();
     }
 
     void setLeft(int left) {
         if (left != mPrimitiveFields.mLeft) {
             mPrimitiveFields.mLeft = left;
             mPrimitiveFields.mWidth = mPrimitiveFields.mRight - mPrimitiveFields.mLeft;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -292,8 +251,8 @@
         if (top != mPrimitiveFields.mTop) {
             mPrimitiveFields.mTop = top;
             mPrimitiveFields.mHeight = mPrimitiveFields.mBottom - mPrimitiveFields.mTop;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -306,8 +265,8 @@
         if (right != mPrimitiveFields.mRight) {
             mPrimitiveFields.mRight = right;
             mPrimitiveFields.mWidth = mPrimitiveFields.mRight - mPrimitiveFields.mLeft;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -320,8 +279,8 @@
         if (bottom != mPrimitiveFields.mBottom) {
             mPrimitiveFields.mBottom = bottom;
             mPrimitiveFields.mHeight = mPrimitiveFields.mBottom - mPrimitiveFields.mTop;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -336,8 +295,8 @@
             mPrimitiveFields.mTop = top;
             mPrimitiveFields.mWidth = mPrimitiveFields.mRight - mPrimitiveFields.mLeft;
             mPrimitiveFields.mHeight = mPrimitiveFields.mBottom - mPrimitiveFields.mTop;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -350,8 +309,8 @@
             mPrimitiveFields.mBottom = bottom;
             mPrimitiveFields.mWidth = mPrimitiveFields.mRight - mPrimitiveFields.mLeft;
             mPrimitiveFields.mHeight = mPrimitiveFields.mBottom - mPrimitiveFields.mTop;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -360,8 +319,8 @@
         if (offset != 0) {
             mPrimitiveFields.mLeft += offset;
             mPrimitiveFields.mRight += offset;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -370,8 +329,8 @@
         if (offset != 0) {
             mPrimitiveFields.mTop += offset;
             mPrimitiveFields.mBottom += offset;
-            if (mPrimitiveFields.mMatrixFlags > TRANSLATION && !mPrimitiveFields.mPivotExplicitlySet) {
-                mPrimitiveFields.mMatrixDirty = true;
+            if (!mPrimitiveFields.mPivotExplicitlySet) {
+                mPrimitiveFields.mMatrixOrPivotDirty = true;
             }
         }
     }
@@ -392,11 +351,17 @@
         return mAnimationMatrix;
     }
 
-    uint32_t getMatrixFlags() const {
-        return mPrimitiveFields.mMatrixFlags;
+    bool hasTransformMatrix() const {
+        return getTransformMatrix() && !getTransformMatrix()->isIdentity();
     }
 
-    const Matrix4* getTransformMatrix() const {
+    // May only call this if hasTransformMatrix() is true
+    bool isTransformTranslateOnly() const {
+        return getTransformMatrix()->getType() == SkMatrix::kTranslate_Mask;
+    }
+
+    const SkMatrix* getTransformMatrix() const {
+        LOG_ALWAYS_FATAL_IF(mPrimitiveFields.mMatrixOrPivotDirty, "Cannot get a dirty matrix!");
         return mComputedFields.mTransformMatrix;
     }
 
@@ -452,14 +417,6 @@
     }
 
 private:
-    void onTranslationUpdate() {
-        mPrimitiveFields.mMatrixDirty = true;
-        if (mPrimitiveFields.mTranslationX == 0.0f && mPrimitiveFields.mTranslationY == 0.0f && mPrimitiveFields.mTranslationZ == 0.0f) {
-            mPrimitiveFields.mMatrixFlags &= ~TRANSLATION;
-        } else {
-            mPrimitiveFields.mMatrixFlags |= TRANSLATION;
-        }
-    }
 
     // Rendering properties
     struct PrimitiveFields {
@@ -478,16 +435,12 @@
         float mPivotX, mPivotY;
         int mLeft, mTop, mRight, mBottom;
         int mWidth, mHeight;
-        int mPrevWidth, mPrevHeight;
         bool mPivotExplicitlySet;
-        bool mMatrixDirty;
-        bool mMatrixIsIdentity;
-        uint32_t mMatrixFlags;
+        bool mMatrixOrPivotDirty;
         bool mCaching;
     } mPrimitiveFields;
 
     // mCameraDistance isn't in mPrimitiveFields as it has a complex setter
-    float mCameraDistance;
     SkMatrix* mStaticMatrix;
     SkMatrix* mAnimationMatrix;
 
@@ -502,12 +455,12 @@
          * Stores the total transformation of the DisplayList based upon its scalar
          * translate/rotate/scale properties.
          *
-         * In the common translation-only case, the matrix isn't allocated and the mTranslation
-         * properties are used directly.
+         * In the common translation-only case, the matrix isn't necessarily allocated,
+         * and the mTranslation properties are used directly.
          */
-        Matrix4* mTransformMatrix;
-        Sk3DView* mTransformCamera;
-        SkMatrix* mTransformMatrix3D;
+        SkMatrix* mTransformMatrix;
+
+        Sk3DView mTransformCamera;
         SkPath* mClipPath; // TODO: remove this, create new ops for efficient/special case clipping
         SkRegion::Op mClipPathOp;
     } mComputedFields;
diff --git a/libs/hwui/ResourceCache.cpp b/libs/hwui/ResourceCache.cpp
index 5562f34..13a3e8e 100644
--- a/libs/hwui/ResourceCache.cpp
+++ b/libs/hwui/ResourceCache.cpp
@@ -31,9 +31,9 @@
     ALOGD("ResourceCache: cacheReport:");
     for (size_t i = 0; i < mCache->size(); ++i) {
         ResourceReference* ref = mCache->valueAt(i);
-        ALOGD("  ResourceCache: mCache(%d): resource, ref = 0x%p, 0x%p",
+        ALOGD("  ResourceCache: mCache(%zu): resource, ref = 0x%p, 0x%p",
                 i, mCache->keyAt(i), mCache->valueAt(i));
-        ALOGD("  ResourceCache: mCache(%d): refCount, recycled, destroyed, type = %d, %d, %d, %d",
+        ALOGD("  ResourceCache: mCache(%zu): refCount, recycled, destroyed, type = %d, %d, %d, %d",
                 i, ref->refCount, ref->recycled, ref->destroyed, ref->resourceType);
     }
 }
diff --git a/libs/hwui/Snapshot.h b/libs/hwui/Snapshot.h
index cc6d0cd..5bdb18a 100644
--- a/libs/hwui/Snapshot.h
+++ b/libs/hwui/Snapshot.h
@@ -108,7 +108,7 @@
      * Returns the current clip in local coordinates. The clip rect is
      * transformed by the inverse transform matrix.
      */
-    const Rect& getLocalClip();
+    ANDROID_API const Rect& getLocalClip();
 
     /**
      * Resets the clip to the specified rect.
diff --git a/libs/hwui/Texture.cpp b/libs/hwui/Texture.cpp
index 7923ce7..e783905 100644
--- a/libs/hwui/Texture.cpp
+++ b/libs/hwui/Texture.cpp
@@ -25,14 +25,14 @@
 namespace uirenderer {
 
 Texture::Texture(): id(0), generation(0), blend(false), width(0), height(0),
-        cleanup(false), bitmapSize(0), mipMap(false), uvMapper(NULL),
+        cleanup(false), bitmapSize(0), mipMap(false), uvMapper(NULL), isInUse(false),
         mWrapS(GL_CLAMP_TO_EDGE), mWrapT(GL_CLAMP_TO_EDGE),
         mMinFilter(GL_NEAREST), mMagFilter(GL_NEAREST),
         mFirstFilter(true), mFirstWrap(true), mCaches(Caches::getInstance()) {
 }
 
 Texture::Texture(Caches& caches): id(0), generation(0), blend(false), width(0), height(0),
-        cleanup(false), bitmapSize(0), mipMap(false), uvMapper(NULL),
+        cleanup(false), bitmapSize(0), mipMap(false), uvMapper(NULL), isInUse(false),
         mWrapS(GL_CLAMP_TO_EDGE), mWrapT(GL_CLAMP_TO_EDGE),
         mMinFilter(GL_NEAREST), mMagFilter(GL_NEAREST),
         mFirstFilter(true), mFirstWrap(true), mCaches(caches) {
diff --git a/libs/hwui/Texture.h b/libs/hwui/Texture.h
index d48ec59..d5601f8 100644
--- a/libs/hwui/Texture.h
+++ b/libs/hwui/Texture.h
@@ -94,6 +94,12 @@
      */
     const UvMapper* uvMapper;
 
+    /**
+     * Whether or not the Texture is marked in use and thus not evictable for
+     * the current frame. This is reset at the start of a new frame.
+     */
+    bool isInUse;
+
 private:
     /**
      * Last wrap modes set on this texture. Defaults to GL_CLAMP_TO_EDGE.
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index 01d72d1..34e2265 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -121,29 +121,49 @@
 // Caching
 ///////////////////////////////////////////////////////////////////////////////
 
-Texture* TextureCache::get(const SkBitmap* bitmap) {
+void TextureCache::resetMarkInUse() {
+    LruCache<const SkBitmap*, Texture*>::Iterator iter(mCache);
+    while (iter.next()) {
+        iter.value()->isInUse = false;
+    }
+}
+
+bool TextureCache::canMakeTextureFromBitmap(const SkBitmap* bitmap) {
+    if (bitmap->width() > mMaxTextureSize || bitmap->height() > mMaxTextureSize) {
+        ALOGW("Bitmap too large to be uploaded into a texture (%dx%d, max=%dx%d)",
+                bitmap->width(), bitmap->height(), mMaxTextureSize, mMaxTextureSize);
+        return false;
+    }
+    return true;
+}
+
+// Returns a prepared Texture* that either is already in the cache or can fit
+// in the cache (and is thus added to the cache)
+Texture* TextureCache::getCachedTexture(const SkBitmap* bitmap) {
     Texture* texture = mCache.get(bitmap);
 
     if (!texture) {
-        if (bitmap->width() > mMaxTextureSize || bitmap->height() > mMaxTextureSize) {
-            ALOGW("Bitmap too large to be uploaded into a texture (%dx%d, max=%dx%d)",
-                    bitmap->width(), bitmap->height(), mMaxTextureSize, mMaxTextureSize);
+        if (!canMakeTextureFromBitmap(bitmap)) {
             return NULL;
         }
 
         const uint32_t size = bitmap->rowBytes() * bitmap->height();
+        bool canCache = size < mMaxSize;
         // Don't even try to cache a bitmap that's bigger than the cache
-        if (size < mMaxSize) {
-            while (mSize + size > mMaxSize) {
+        while (canCache && mSize + size > mMaxSize) {
+            Texture* oldest = mCache.peekOldestValue();
+            if (oldest && !oldest->isInUse) {
                 mCache.removeOldest();
+            } else {
+                canCache = false;
             }
         }
 
-        texture = new Texture();
-        texture->bitmapSize = size;
-        generateTexture(bitmap, texture, false);
+        if (canCache) {
+            texture = new Texture();
+            texture->bitmapSize = size;
+            generateTexture(bitmap, texture, false);
 
-        if (size < mMaxSize) {
             mSize += size;
             TEXTURE_LOGD("TextureCache::get: create texture(%p): name, size, mSize = %d, %d, %d",
                      bitmap, texture->id, size, mSize);
@@ -151,16 +171,42 @@
                 ALOGD("Texture created, size = %d", size);
             }
             mCache.put(bitmap, texture);
-        } else {
-            texture->cleanup = true;
         }
-    } else if (bitmap->getGenerationID() != texture->generation) {
+    } else if (!texture->isInUse && bitmap->getGenerationID() != texture->generation) {
+        // Texture was in the cache but is dirty, re-upload
+        // TODO: Re-adjust the cache size if the bitmap's dimensions have changed
         generateTexture(bitmap, texture, true);
     }
 
     return texture;
 }
 
+bool TextureCache::prefetchAndMarkInUse(const SkBitmap* bitmap) {
+    Texture* texture = getCachedTexture(bitmap);
+    if (texture) {
+        texture->isInUse = true;
+    }
+    return texture;
+}
+
+Texture* TextureCache::get(const SkBitmap* bitmap) {
+    Texture* texture = getCachedTexture(bitmap);
+
+    if (!texture) {
+        if (!canMakeTextureFromBitmap(bitmap)) {
+            return NULL;
+        }
+
+        const uint32_t size = bitmap->rowBytes() * bitmap->height();
+        texture = new Texture();
+        texture->bitmapSize = size;
+        generateTexture(bitmap, texture, false);
+        texture->cleanup = true;
+    }
+
+    return texture;
+}
+
 Texture* TextureCache::getTransient(const SkBitmap* bitmap) {
     Texture* texture = new Texture();
     texture->bitmapSize = bitmap->rowBytes() * bitmap->height();
diff --git a/libs/hwui/TextureCache.h b/libs/hwui/TextureCache.h
index e33c60d..48a10c2 100644
--- a/libs/hwui/TextureCache.h
+++ b/libs/hwui/TextureCache.h
@@ -62,6 +62,18 @@
     void operator()(const SkBitmap*& bitmap, Texture*& texture);
 
     /**
+     * Resets all Textures to not be marked as in use
+     */
+    void resetMarkInUse();
+
+    /**
+     * Attempts to precache the SkBitmap. Returns true if a Texture was successfully
+     * acquired for the bitmap, false otherwise. If a Texture was acquired it is
+     * marked as in use.
+     */
+    bool prefetchAndMarkInUse(const SkBitmap* bitmap);
+
+    /**
      * Returns the texture associated with the specified bitmap. If the texture
      * cannot be found in the cache, a new texture is generated.
      */
@@ -116,6 +128,11 @@
     void setFlushRate(float flushRate);
 
 private:
+
+    bool canMakeTextureFromBitmap(const SkBitmap* bitmap);
+
+    Texture* getCachedTexture(const SkBitmap* bitmap);
+
     /**
      * Generates the texture from a bitmap into the specified texture structure.
      *
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index b3b4173..16baf77 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -82,6 +82,8 @@
     // Returns true on success, false on failure
     void initialize();
 
+    bool hasContext();
+
     void usePBufferSurface();
     EGLSurface createSurface(EGLNativeWindowType window);
     void destroySurface(EGLSurface surface);
@@ -138,7 +140,7 @@
 }
 
 void GlobalContext::initialize() {
-    if (mEglDisplay != EGL_NO_DISPLAY) return;
+    if (hasContext()) return;
 
     mEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
     LOG_ALWAYS_FATAL_IF(mEglDisplay == EGL_NO_DISPLAY,
@@ -157,6 +159,10 @@
     initAtlas();
 }
 
+bool GlobalContext::hasContext() {
+    return mEglDisplay != EGL_NO_DISPLAY;
+}
+
 void GlobalContext::loadConfig() {
     EGLint swapBehavior = mCanSetDirtyRegions ? EGL_SWAP_BEHAVIOR_PRESERVED_BIT : 0;
     EGLint attribs[] = {
@@ -307,18 +313,15 @@
         , mDirtyRegionsEnabled(false)
         , mOpaque(!translucent)
         , mCanvas(0)
-        , mHaveNewSurface(false)
-        , mInvokeFunctorsPending(false)
-        , mInvokeFunctorsTask(this) {
+        , mHaveNewSurface(false) {
     mGlobalContext = GlobalContext::get();
 }
 
 CanvasContext::~CanvasContext() {
-    removeFunctorsTask();
-    destroyCanvas();
+    destroyCanvasAndSurface();
 }
 
-void CanvasContext::destroyCanvas() {
+void CanvasContext::destroyCanvasAndSurface() {
     if (mCanvas) {
         delete mCanvas;
         mCanvas = 0;
@@ -341,6 +344,7 @@
 
     if (mEglSurface != EGL_NO_SURFACE) {
         mDirtyRegionsEnabled = mGlobalContext->enableDirtyRegions(mEglSurface);
+        mGlobalContext->makeCurrent(mEglSurface);
         mHaveNewSurface = true;
     }
 }
@@ -350,14 +354,15 @@
     mHaveNewSurface = false;
 }
 
-void CanvasContext::makeCurrent() {
+void CanvasContext::requireSurface() {
+    LOG_ALWAYS_FATAL_IF(mEglSurface == EGL_NO_SURFACE,
+            "requireSurface() called but no surface set!");
     mGlobalContext->makeCurrent(mEglSurface);
 }
 
 bool CanvasContext::initialize(EGLNativeWindowType window) {
     if (mCanvas) return false;
     setSurface(window);
-    makeCurrent();
     mCanvas = new OpenGLRenderer();
     mCanvas->initProperties();
     return true;
@@ -365,7 +370,11 @@
 
 void CanvasContext::updateSurface(EGLNativeWindowType window) {
     setSurface(window);
-    makeCurrent();
+}
+
+void CanvasContext::pauseSurface(EGLNativeWindowType window) {
+    // TODO: For now we just need a fence, in the future suspend any animations
+    // and such to prevent from trying to render into this surface
 }
 
 void CanvasContext::setup(int width, int height) {
@@ -373,15 +382,18 @@
     mCanvas->setViewport(width, height);
 }
 
-void CanvasContext::setDisplayListData(RenderNode* displayList, DisplayListData* newData) {
-    displayList->setData(newData);
+void CanvasContext::makeCurrent() {
+    mGlobalContext->makeCurrent(mEglSurface);
 }
 
-void CanvasContext::processLayerUpdates(const Vector<DeferredLayerUpdater*>* layerUpdaters) {
-    mGlobalContext->makeCurrent(mEglSurface);
+void CanvasContext::processLayerUpdates(const Vector<DeferredLayerUpdater*>* layerUpdaters,
+        TreeInfo& info) {
+    LOG_ALWAYS_FATAL_IF(!mCanvas, "Cannot process layer updates without a canvas!");
+    makeCurrent();
     for (size_t i = 0; i < layerUpdaters->size(); i++) {
         DeferredLayerUpdater* update = layerUpdaters->itemAt(i);
-        LOG_ALWAYS_FATAL_IF(!update->apply(), "Failed to update layer!");
+        bool success = update->apply(info);
+        LOG_ALWAYS_FATAL_IF(!success, "Failed to update layer!");
         if (update->backingLayer()->deferredUpdateScheduled) {
             mCanvas->pushLayerUpdate(update->backingLayer());
         }
@@ -392,8 +404,6 @@
     LOG_ALWAYS_FATAL_IF(!mCanvas || mEglSurface == EGL_NO_SURFACE,
             "drawDisplayList called on a context with no canvas or surface!");
 
-    displayList->updateProperties();
-
     EGLint width, height;
     mGlobalContext->beginFrame(mEglSurface, &width, &height);
     if (width != mCanvas->getViewportWidth() || height != mCanvas->getViewportHeight()) {
@@ -413,7 +423,6 @@
 
     Rect outBounds;
     status |= mCanvas->drawDisplayList(displayList, outBounds);
-    handleFunctorStatus(status, outBounds);
 
     // TODO: Draw debug info
     // TODO: Performance tracking
@@ -425,66 +434,23 @@
     }
 }
 
-void InvokeFunctorsTask::run() {
-    mContext->invokeFunctors();
-}
-
-void CanvasContext::attachFunctor(Functor* functor) {
-    if (!mCanvas) return;
-
-    mCanvas->attachFunctor(functor);
-    removeFunctorsTask();
-    queueFunctorsTask(0);
-}
-
-void CanvasContext::detachFunctor(Functor* functor) {
-    if (!mCanvas) return;
-
-    mCanvas->detachFunctor(functor);
-}
-
-void CanvasContext::invokeFunctors() {
-    mInvokeFunctorsPending = false;
-
-    if (!mCanvas) return;
-
-    makeCurrent();
-    Rect dirty;
-    int status = mCanvas->invokeFunctors(dirty);
-    handleFunctorStatus(status, dirty);
-}
-
-void CanvasContext::handleFunctorStatus(int status, const Rect& redrawClip) {
-    if (status & DrawGlInfo::kStatusDraw) {
-        // TODO: Invalidate the redrawClip
-        // Do we need to post to ViewRootImpl like the current renderer?
-        // Can we just enqueue ourselves to re-invoke the same display list?
-        // Something else entirely? Does ChromiumView still want this in a
-        // RenderThread world?
+void CanvasContext::invokeFunctor(Functor* functor) {
+    ATRACE_CALL();
+    DrawGlInfo::Mode mode = DrawGlInfo::kModeProcessNoContext;
+    if (mGlobalContext->hasContext()) {
+        requireGlContext();
+        mode = DrawGlInfo::kModeProcess;
     }
-
-    if (status & DrawGlInfo::kStatusInvoke) {
-        queueFunctorsTask();
-    }
-}
-
-void CanvasContext::removeFunctorsTask() {
-    if (!mInvokeFunctorsPending) return;
-
-    mInvokeFunctorsPending = false;
-    mRenderThread.remove(&mInvokeFunctorsTask);
-}
-
-void CanvasContext::queueFunctorsTask(int delayMs) {
-    if (mInvokeFunctorsPending) return;
-
-    mInvokeFunctorsPending = true;
-    mRenderThread.queueDelayed(&mInvokeFunctorsTask, delayMs);
+    // TODO: Remove the dummy info in the future
+    DrawGlInfo dummyInfo;
+    memset(&dummyInfo, 0, sizeof(DrawGlInfo));
+    (*functor)(mode, &dummyInfo);
 }
 
 bool CanvasContext::copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap) {
     requireGlContext();
-    layer->apply();
+    TreeInfo info;
+    layer->apply(info);
     return LayerRenderer::copyLayer(layer->backingLayer(), bitmap);
 }
 
@@ -493,6 +459,16 @@
     task->run();
 }
 
+Layer* CanvasContext::createRenderLayer(int width, int height) {
+    requireSurface();
+    return LayerRenderer::createRenderLayer(width, height);
+}
+
+Layer* CanvasContext::createTextureLayer() {
+    requireSurface();
+    return LayerRenderer::createTextureLayer();
+}
+
 void CanvasContext::requireGlContext() {
     if (mEglSurface != EGL_NO_SURFACE) {
         mGlobalContext->makeCurrent(mEglSurface);
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index e3fdf97..a3fe591 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -23,6 +23,7 @@
 #include <utils/Functor.h>
 #include <utils/Vector.h>
 
+#include "../RenderNode.h"
 #include "RenderTask.h"
 
 #define FUNCTOR_PROCESS_DELAY 4
@@ -31,10 +32,9 @@
 namespace uirenderer {
 
 class DeferredLayerUpdater;
-class RenderNode;
-class DisplayListData;
 class OpenGLRenderer;
 class Rect;
+class Layer;
 
 namespace renderthread {
 
@@ -42,17 +42,6 @@
 class CanvasContext;
 class RenderThread;
 
-class InvokeFunctorsTask : public RenderTask {
-public:
-    InvokeFunctorsTask(CanvasContext* context)
-        : mContext(context) {}
-
-    virtual void run();
-
-private:
-    CanvasContext* mContext;
-};
-
 // This per-renderer class manages the bridge between the global EGL context
 // and the render surface.
 class CanvasContext {
@@ -62,29 +51,26 @@
 
     bool initialize(EGLNativeWindowType window);
     void updateSurface(EGLNativeWindowType window);
+    void pauseSurface(EGLNativeWindowType window);
     void setup(int width, int height);
-    void setDisplayListData(RenderNode* displayList, DisplayListData* newData);
-    void processLayerUpdates(const Vector<DeferredLayerUpdater*>* layerUpdaters);
+    void makeCurrent();
+    void processLayerUpdates(const Vector<DeferredLayerUpdater*>* layerUpdaters, TreeInfo& info);
     void drawDisplayList(RenderNode* displayList, Rect* dirty);
-    void destroyCanvas();
+    void destroyCanvasAndSurface();
 
     bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap);
 
-    void attachFunctor(Functor* functor);
-    void detachFunctor(Functor* functor);
+    void invokeFunctor(Functor* functor);
 
     void runWithGlContext(RenderTask* task);
 
+    Layer* createRenderLayer(int width, int height);
+    Layer* createTextureLayer();
+
 private:
     void setSurface(EGLNativeWindowType window);
     void swapBuffers();
-    void makeCurrent();
-
-    friend class InvokeFunctorsTask;
-    void invokeFunctors();
-    void handleFunctorStatus(int status, const Rect& redrawClip);
-    void removeFunctorsTask();
-    void queueFunctorsTask(int delayMs = FUNCTOR_PROCESS_DELAY);
+    void requireSurface();
 
     void requireGlContext();
 
@@ -96,10 +82,6 @@
     bool mOpaque;
     OpenGLRenderer* mCanvas;
     bool mHaveNewSurface;
-
-    bool mInvokeFunctorsPending;
-    InvokeFunctorsTask mInvokeFunctorsTask;
-
 };
 
 } /* namespace renderthread */
diff --git a/libs/hwui/renderthread/DrawFrameTask.cpp b/libs/hwui/renderthread/DrawFrameTask.cpp
new file mode 100644
index 0000000..f542d43
--- /dev/null
+++ b/libs/hwui/renderthread/DrawFrameTask.cpp
@@ -0,0 +1,140 @@
+/*
+ * 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.
+ */
+
+#define ATRACE_TAG ATRACE_TAG_VIEW
+
+#include "DrawFrameTask.h"
+
+#include <utils/Log.h>
+#include <utils/Trace.h>
+
+#include "../DisplayList.h"
+#include "../RenderNode.h"
+#include "CanvasContext.h"
+#include "RenderThread.h"
+
+namespace android {
+namespace uirenderer {
+namespace renderthread {
+
+DrawFrameTask::DrawFrameTask() : mContext(0), mRenderNode(0) {
+}
+
+DrawFrameTask::~DrawFrameTask() {
+}
+
+void DrawFrameTask::setContext(CanvasContext* context) {
+    mContext = context;
+}
+
+void DrawFrameTask::addLayer(DeferredLayerUpdater* layer) {
+    LOG_ALWAYS_FATAL_IF(!mContext, "Lifecycle violation, there's no context to addLayer with!");
+
+    mLayers.push(layer);
+}
+
+void DrawFrameTask::removeLayer(DeferredLayerUpdater* layer) {
+    for (size_t i = 0; i < mLayers.size(); i++) {
+        if (mLayers[i] == layer) {
+            mLayers.removeAt(i);
+            break;
+        }
+    }
+}
+
+void DrawFrameTask::setRenderNode(RenderNode* renderNode) {
+    LOG_ALWAYS_FATAL_IF(!mContext, "Lifecycle violation, there's no context to setRenderNode with!");
+
+    mRenderNode = renderNode;
+}
+
+void DrawFrameTask::setDirty(int left, int top, int right, int bottom) {
+    mDirty.set(left, top, right, bottom);
+}
+
+void DrawFrameTask::drawFrame(RenderThread* renderThread) {
+    LOG_ALWAYS_FATAL_IF(!mRenderNode.get(), "Cannot drawFrame with no render node!");
+    LOG_ALWAYS_FATAL_IF(!mContext, "Cannot drawFrame with no CanvasContext!");
+
+    postAndWait(renderThread);
+
+    // Reset the single-frame data
+    mDirty.setEmpty();
+    mRenderNode = 0;
+}
+
+void DrawFrameTask::postAndWait(RenderThread* renderThread) {
+    AutoMutex _lock(mLock);
+    renderThread->queue(this);
+    mSignal.wait(mLock);
+}
+
+void DrawFrameTask::run() {
+    ATRACE_NAME("DrawFrame");
+
+    bool canUnblockUiThread = syncFrameState();
+
+    // Grab a copy of everything we need
+    Rect dirtyCopy(mDirty);
+    sp<RenderNode> renderNode = mRenderNode;
+    CanvasContext* context = mContext;
+
+    // From this point on anything in "this" is *UNSAFE TO ACCESS*
+    if (canUnblockUiThread) {
+        unblockUiThread();
+    }
+
+    drawRenderNode(context, renderNode.get(), &dirtyCopy);
+
+    if (!canUnblockUiThread) {
+        unblockUiThread();
+    }
+}
+
+static void prepareTreeInfo(TreeInfo& info) {
+    info.prepareTextures = true;
+}
+
+bool DrawFrameTask::syncFrameState() {
+    ATRACE_CALL();
+    mContext->makeCurrent();
+    Caches::getInstance().textureCache.resetMarkInUse();
+    TreeInfo info;
+    prepareTreeInfo(info);
+    mContext->processLayerUpdates(&mLayers, info);
+    mRenderNode->prepareTree(info);
+    // If prepareTextures is false, we ran out of texture cache space
+    return !info.hasFunctors && info.prepareTextures;
+}
+
+void DrawFrameTask::unblockUiThread() {
+    AutoMutex _lock(mLock);
+    mSignal.signal();
+}
+
+void DrawFrameTask::drawRenderNode(CanvasContext* context, RenderNode* renderNode, Rect* dirty) {
+    ATRACE_CALL();
+
+    if (dirty->bottom == -1 && dirty->left == -1
+            && dirty->top == -1 && dirty->right == -1) {
+        dirty = 0;
+    }
+    context->drawDisplayList(renderNode, dirty);
+}
+
+} /* namespace renderthread */
+} /* namespace uirenderer */
+} /* namespace android */
diff --git a/libs/hwui/renderthread/DrawFrameTask.h b/libs/hwui/renderthread/DrawFrameTask.h
new file mode 100644
index 0000000..055d4cf
--- /dev/null
+++ b/libs/hwui/renderthread/DrawFrameTask.h
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ */
+#ifndef DRAWFRAMETASK_H
+#define DRAWFRAMETASK_H
+
+#include <utils/Condition.h>
+#include <utils/Mutex.h>
+#include <utils/StrongPointer.h>
+#include <utils/Vector.h>
+
+#include "RenderTask.h"
+
+#include "../Rect.h"
+
+namespace android {
+namespace uirenderer {
+
+class DeferredLayerUpdater;
+class DisplayListData;
+class RenderNode;
+
+namespace renderthread {
+
+class CanvasContext;
+class RenderThread;
+
+/*
+ * This is a special Super Task. It is re-used multiple times by RenderProxy,
+ * and contains state (such as layer updaters & new DisplayListDatas) that is
+ * tracked across many frames not just a single frame.
+ * It is the sync-state task, and will kick off the post-sync draw
+ */
+class DrawFrameTask : public RenderTask {
+public:
+    DrawFrameTask();
+    virtual ~DrawFrameTask();
+
+    void setContext(CanvasContext* context);
+
+    void addLayer(DeferredLayerUpdater* layer);
+    void removeLayer(DeferredLayerUpdater* layer);
+
+    void setRenderNode(RenderNode* renderNode);
+    void setDirty(int left, int top, int right, int bottom);
+    void drawFrame(RenderThread* renderThread);
+
+    virtual void run();
+
+private:
+    void postAndWait(RenderThread* renderThread);
+    bool syncFrameState();
+    void unblockUiThread();
+    static void drawRenderNode(CanvasContext* context, RenderNode* renderNode, Rect* dirty);
+
+    Mutex mLock;
+    Condition mSignal;
+
+    CanvasContext* mContext;
+
+    /*********************************************
+     *  Single frame data
+     *********************************************/
+    sp<RenderNode> mRenderNode;
+    Rect mDirty;
+
+    /*********************************************
+     *  Multi frame data
+     *********************************************/
+    Vector<DeferredLayerUpdater*> mLayers;
+};
+
+} /* namespace renderthread */
+} /* namespace uirenderer */
+} /* namespace android */
+
+#endif /* DRAWFRAMETASK_H */
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 93360fc..ce490f1 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -48,7 +48,7 @@
     LOG_ALWAYS_FATAL_IF( METHOD_INVOKE_PAYLOAD_SIZE < sizeof(ARGS(method)), \
         "METHOD_INVOKE_PAYLOAD_SIZE %d is smaller than sizeof(" #method "Args) %d", \
                 METHOD_INVOKE_PAYLOAD_SIZE, sizeof(ARGS(method))); \
-    MethodInvokeRenderTask* task = createTask((RunnableMethod) Bridge_ ## method); \
+    MethodInvokeRenderTask* task = new MethodInvokeRenderTask((RunnableMethod) Bridge_ ## method); \
     ARGS(method) *args = (ARGS(method) *) task->payload()
 
 CREATE_BRIDGE1(createContext, bool translucent) {
@@ -61,6 +61,7 @@
     SETUP_TASK(createContext);
     args->translucent = translucent;
     mContext = (CanvasContext*) postAndWait(task);
+    mDrawFrameTask.setContext(mContext);
 }
 
 RenderProxy::~RenderProxy() {
@@ -77,7 +78,10 @@
         SETUP_TASK(destroyContext);
         args->context = mContext;
         mContext = 0;
-        post(task);
+        mDrawFrameTask.setContext(0);
+        // This is also a fence as we need to be certain that there are no
+        // outstanding mDrawFrame tasks posted before it is destroyed
+        postAndWait(task);
     }
 }
 
@@ -85,10 +89,10 @@
     return (void*) args->context->initialize(args->window);
 }
 
-bool RenderProxy::initialize(EGLNativeWindowType window) {
+bool RenderProxy::initialize(const sp<ANativeWindow>& window) {
     SETUP_TASK(initialize);
     args->context = mContext;
-    args->window = window;
+    args->window = window.get();
     return (bool) postAndWait(task);
 }
 
@@ -97,11 +101,23 @@
     return NULL;
 }
 
-void RenderProxy::updateSurface(EGLNativeWindowType window) {
+void RenderProxy::updateSurface(const sp<ANativeWindow>& window) {
     SETUP_TASK(updateSurface);
     args->context = mContext;
-    args->window = window;
-    post(task);
+    args->window = window.get();
+    postAndWait(task);
+}
+
+CREATE_BRIDGE2(pauseSurface, CanvasContext* context, EGLNativeWindowType window) {
+    args->context->pauseSurface(args->window);
+    return NULL;
+}
+
+void RenderProxy::pauseSurface(const sp<ANativeWindow>& window) {
+    SETUP_TASK(pauseSurface);
+    args->context = mContext;
+    args->window = window.get();
+    postAndWait(task);
 }
 
 CREATE_BRIDGE3(setup, CanvasContext* context, int width, int height) {
@@ -117,76 +133,42 @@
     post(task);
 }
 
-CREATE_BRIDGE3(setDisplayListData, CanvasContext* context, RenderNode* displayList,
-        DisplayListData* newData) {
-    args->context->setDisplayListData(args->displayList, args->newData);
-    return NULL;
-}
-
-void RenderProxy::setDisplayListData(RenderNode* displayList, DisplayListData* newData) {
-    SETUP_TASK(setDisplayListData);
-    args->context = mContext;
-    args->displayList = displayList;
-    args->newData = newData;
-    post(task);
-}
-
-CREATE_BRIDGE4(drawDisplayList, CanvasContext* context, RenderNode* displayList,
-        Rect dirty, const Vector<DeferredLayerUpdater*>* layerUpdates) {
-    Rect* dirty = &args->dirty;
-    if (dirty->bottom == -1 && dirty->left == -1 &&
-            dirty->top == -1 && dirty->right == -1) {
-        dirty = 0;
-    }
-    args->context->processLayerUpdates(args->layerUpdates);
-    args->context->drawDisplayList(args->displayList, dirty);
-    return NULL;
-}
-
 void RenderProxy::drawDisplayList(RenderNode* displayList,
         int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom) {
-    SETUP_TASK(drawDisplayList);
+    mDrawFrameTask.setRenderNode(displayList);
+    mDrawFrameTask.setDirty(dirtyLeft, dirtyTop, dirtyRight, dirtyBottom);
+    mDrawFrameTask.drawFrame(&mRenderThread);
+}
+
+CREATE_BRIDGE1(destroyCanvasAndSurface, CanvasContext* context) {
+    args->context->destroyCanvasAndSurface();
+    return NULL;
+}
+
+void RenderProxy::destroyCanvasAndSurface() {
+    SETUP_TASK(destroyCanvasAndSurface);
     args->context = mContext;
-    args->displayList = displayList;
-    args->dirty.set(dirtyLeft, dirtyTop, dirtyRight, dirtyBottom);
-    args->layerUpdates = &mLayers;
-    // TODO: Switch to post() once some form of thread safety strategy is in place
+    // destroyCanvasAndSurface() needs a fence as when it returns the
+    // underlying BufferQueue is going to be released from under
+    // the render thread.
     postAndWait(task);
 }
 
-CREATE_BRIDGE1(destroyCanvas, CanvasContext* context) {
-    args->context->destroyCanvas();
+CREATE_BRIDGE2(invokeFunctor, CanvasContext* context, Functor* functor) {
+    args->context->invokeFunctor(args->functor);
     return NULL;
 }
 
-void RenderProxy::destroyCanvas() {
-    SETUP_TASK(destroyCanvas);
-    args->context = mContext;
-    post(task);
-}
-
-CREATE_BRIDGE2(attachFunctor, CanvasContext* context, Functor* functor) {
-    args->context->attachFunctor(args->functor);
-    return NULL;
-}
-
-void RenderProxy::attachFunctor(Functor* functor) {
-    SETUP_TASK(attachFunctor);
+void RenderProxy::invokeFunctor(Functor* functor, bool waitForCompletion) {
+    ATRACE_CALL();
+    SETUP_TASK(invokeFunctor);
     args->context = mContext;
     args->functor = functor;
-    post(task);
-}
-
-CREATE_BRIDGE2(detachFunctor, CanvasContext* context, Functor* functor) {
-    args->context->detachFunctor(args->functor);
-    return NULL;
-}
-
-void RenderProxy::detachFunctor(Functor* functor) {
-    SETUP_TASK(detachFunctor);
-    args->context = mContext;
-    args->functor = functor;
-    post(task);
+    if (waitForCompletion) {
+        postAndWait(task);
+    } else {
+        post(task);
+    }
 }
 
 CREATE_BRIDGE2(runWithGlContext, CanvasContext* context, RenderTask* task) {
@@ -201,36 +183,35 @@
     postAndWait(task);
 }
 
-CREATE_BRIDGE2(createDisplayListLayer, int width, int height) {
-    Layer* layer = LayerRenderer::createRenderLayer(args->width, args->height);
+CREATE_BRIDGE3(createDisplayListLayer, CanvasContext* context, int width, int height) {
+    Layer* layer = args->context->createRenderLayer(args->width, args->height);
     if (!layer) return 0;
-
-    OpenGLRenderer* renderer = new LayerRenderer(layer);
-    renderer->initProperties();
-    return new DeferredLayerUpdater(layer, renderer);
+    return new DeferredLayerUpdater(layer);
 }
 
 DeferredLayerUpdater* RenderProxy::createDisplayListLayer(int width, int height) {
     SETUP_TASK(createDisplayListLayer);
     args->width = width;
     args->height = height;
+    args->context = mContext;
     void* retval = postAndWait(task);
     DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(retval);
-    mLayers.push(layer);
+    mDrawFrameTask.addLayer(layer);
     return layer;
 }
 
-CREATE_BRIDGE0(createTextureLayer) {
-    Layer* layer = LayerRenderer::createTextureLayer();
+CREATE_BRIDGE1(createTextureLayer, CanvasContext* context) {
+    Layer* layer = args->context->createTextureLayer();
     if (!layer) return 0;
     return new DeferredLayerUpdater(layer);
 }
 
 DeferredLayerUpdater* RenderProxy::createTextureLayer() {
     SETUP_TASK(createTextureLayer);
+    args->context = mContext;
     void* retval = postAndWait(task);
     DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(retval);
-    mLayers.push(layer);
+    mDrawFrameTask.addLayer(layer);
     return layer;
 }
 
@@ -254,20 +235,20 @@
 }
 
 void RenderProxy::destroyLayer(DeferredLayerUpdater* layer) {
-    for (size_t i = 0; i < mLayers.size(); i++) {
-        if (mLayers[i] == layer) {
-            mLayers.removeAt(i);
-            break;
-        }
-    }
+    mDrawFrameTask.removeLayer(layer);
     SETUP_TASK(destroyLayer);
     args->layer = layer->detachBackingLayer();
     post(task);
 }
 
-MethodInvokeRenderTask* RenderProxy::createTask(RunnableMethod method) {
-    // TODO: Consider having a small pool of these to avoid alloc churn
-    return new MethodInvokeRenderTask(method);
+CREATE_BRIDGE0(fence) {
+    // Intentionally empty
+    return NULL;
+}
+
+void RenderProxy::fence() {
+    SETUP_TASK(fence);
+    postAndWait(task);
 }
 
 void RenderProxy::post(RenderTask* task) {
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 73e9805..a112493 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -28,6 +28,8 @@
 #include <utils/StrongPointer.h>
 #include <utils/Vector.h>
 
+#include "DrawFrameTask.h"
+
 namespace android {
 namespace uirenderer {
 
@@ -57,16 +59,15 @@
     ANDROID_API RenderProxy(bool translucent);
     ANDROID_API virtual ~RenderProxy();
 
-    ANDROID_API bool initialize(EGLNativeWindowType window);
-    ANDROID_API void updateSurface(EGLNativeWindowType window);
+    ANDROID_API bool initialize(const sp<ANativeWindow>& window);
+    ANDROID_API void updateSurface(const sp<ANativeWindow>& window);
+    ANDROID_API void pauseSurface(const sp<ANativeWindow>& window);
     ANDROID_API void setup(int width, int height);
-    ANDROID_API void setDisplayListData(RenderNode* displayList, DisplayListData* newData);
     ANDROID_API void drawDisplayList(RenderNode* displayList,
             int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom);
-    ANDROID_API void destroyCanvas();
+    ANDROID_API void destroyCanvasAndSurface();
 
-    ANDROID_API void attachFunctor(Functor* functor);
-    ANDROID_API void detachFunctor(Functor* functor);
+    ANDROID_API void invokeFunctor(Functor* functor, bool waitForCompletion);
 
     ANDROID_API void runWithGlContext(RenderTask* task);
 
@@ -75,18 +76,19 @@
     ANDROID_API bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap);
     ANDROID_API void destroyLayer(DeferredLayerUpdater* layer);
 
+    ANDROID_API void fence();
+
 private:
     RenderThread& mRenderThread;
     CanvasContext* mContext;
 
+    DrawFrameTask mDrawFrameTask;
+
     Mutex mSyncMutex;
     Condition mSyncCondition;
 
-    Vector<DeferredLayerUpdater*> mLayers;
-
     void destroyContext();
 
-    MethodInvokeRenderTask* createTask(RunnableMethod method);
     void post(RenderTask* task);
     void* postAndWait(MethodInvokeRenderTask* task);
 
diff --git a/libs/hwui/utils/VirtualLightRefBase.h b/libs/hwui/utils/VirtualLightRefBase.h
new file mode 100644
index 0000000..b545aab
--- /dev/null
+++ b/libs/hwui/utils/VirtualLightRefBase.h
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+#ifndef VIRTUALLIGHTREFBASE_H
+#define VIRTUALLIGHTREFBASE_H
+
+#include <utils/RefBase.h>
+
+namespace android {
+namespace uirenderer {
+
+// This is a wrapper around LightRefBase that simply enforces a virtual
+// destructor to eliminate the template requirement of LightRefBase
+class VirtualLightRefBase : public LightRefBase<VirtualLightRefBase> {
+public:
+    virtual ~VirtualLightRefBase() {}
+};
+
+} /* namespace uirenderer */
+} /* namespace android */
+
+#endif /* VIRTUALLIGHTREFBASE_H */
diff --git a/libs/input/SpriteController.cpp b/libs/input/SpriteController.cpp
index 2667a72..3f6ccc9 100644
--- a/libs/input/SpriteController.cpp
+++ b/libs/input/SpriteController.cpp
@@ -402,7 +402,7 @@
 
     uint32_t dirty;
     if (icon.isValid()) {
-        icon.bitmap.copyTo(&mLocked.state.icon.bitmap, SkBitmap::kARGB_8888_Config);
+        icon.bitmap.copyTo(&mLocked.state.icon.bitmap, kNative_8888_SkColorType);
 
         if (!mLocked.state.icon.isValid()
                 || mLocked.state.icon.hotSpotX != icon.hotSpotX
diff --git a/libs/input/SpriteController.h b/libs/input/SpriteController.h
index 75e4843..797efd7 100644
--- a/libs/input/SpriteController.h
+++ b/libs/input/SpriteController.h
@@ -65,7 +65,7 @@
 
     inline SpriteIcon copy() const {
         SkBitmap bitmapCopy;
-        bitmap.copyTo(&bitmapCopy, SkBitmap::kARGB_8888_Config);
+        bitmap.copyTo(&bitmapCopy, kNative_8888_SkColorType);
         return SpriteIcon(bitmapCopy, hotSpotX, hotSpotY);
     }
 
diff --git a/libs/usb/tests/AccessoryChat/accessorychat/accessorychat.c b/libs/usb/tests/AccessoryChat/accessorychat/accessorychat.c
index 06b477f..57c0320 100644
--- a/libs/usb/tests/AccessoryChat/accessorychat/accessorychat.c
+++ b/libs/usb/tests/AccessoryChat/accessorychat/accessorychat.c
@@ -32,7 +32,7 @@
 struct usb_device *sDevice = NULL;
 
 static void* read_thread(void* arg) {
-    int endpoint = (int)arg;
+    int endpoint = (int)(uintptr_t)arg;
     int ret = 0;
 
     while (sDevice && ret >= 0) {
@@ -52,7 +52,7 @@
 }
 
 static void* write_thread(void* arg) {
-    int endpoint = (int)arg;
+    int endpoint = (int)(uintptr_t)arg;
     int ret = 0;
 
     while (ret >= 0) {
@@ -136,11 +136,11 @@
             }
 
             if ((ep1->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
-                pthread_create(&th, NULL, read_thread, (void *)ep1->bEndpointAddress);
-                pthread_create(&th, NULL, write_thread, (void *)ep2->bEndpointAddress);
+                pthread_create(&th, NULL, read_thread, (void *)(uintptr_t)ep1->bEndpointAddress);
+                pthread_create(&th, NULL, write_thread, (void *)(uintptr_t)ep2->bEndpointAddress);
             } else {
-                pthread_create(&th, NULL, read_thread, (void *)ep2->bEndpointAddress);
-                pthread_create(&th, NULL, write_thread, (void *)ep1->bEndpointAddress);
+                pthread_create(&th, NULL, read_thread, (void *)(uintptr_t)ep2->bEndpointAddress);
+                pthread_create(&th, NULL, write_thread, (void *)(uintptr_t)ep1->bEndpointAddress);
             }
         } else {
             printf("Found possible android device - attempting to switch to accessory mode\n");
diff --git a/media/java/android/media/AudioFormat.java b/media/java/android/media/AudioFormat.java
index 26e9cc5..04c6e97 100644
--- a/media/java/android/media/AudioFormat.java
+++ b/media/java/android/media/AudioFormat.java
@@ -56,7 +56,7 @@
     /** Default audio channel mask */
     public static final int CHANNEL_OUT_DEFAULT = 1;
 
-    // Channel mask definitions below are translated to the native values defined in
+    // Output channel mask definitions below are translated to the native values defined in
     //  in /system/core/include/system/audio.h in the JNI code of AudioTrack
     public static final int CHANNEL_OUT_FRONT_LEFT = 0x4;
     public static final int CHANNEL_OUT_FRONT_RIGHT = 0x8;
@@ -94,17 +94,21 @@
             CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_BACK_CENTER);
     public static final int CHANNEL_OUT_5POINT1 = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT |
             CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_LOW_FREQUENCY | CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT);
+    // different from AUDIO_CHANNEL_OUT_7POINT1
     public static final int CHANNEL_OUT_7POINT1 = (CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_RIGHT |
             CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_LOW_FREQUENCY | CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT |
             CHANNEL_OUT_FRONT_LEFT_OF_CENTER | CHANNEL_OUT_FRONT_RIGHT_OF_CENTER);
     /** @hide */
+    // matches AUDIO_CHANNEL_OUT_7POINT1
     public static final int CHANNEL_OUT_7POINT1_SURROUND = (
             CHANNEL_OUT_FRONT_LEFT | CHANNEL_OUT_FRONT_CENTER | CHANNEL_OUT_FRONT_RIGHT |
             CHANNEL_OUT_SIDE_LEFT | CHANNEL_OUT_SIDE_RIGHT |
             CHANNEL_OUT_BACK_LEFT | CHANNEL_OUT_BACK_RIGHT |
             CHANNEL_OUT_LOW_FREQUENCY);
+    // CHANNEL_OUT_ALL is not yet defined; if added then it should match AUDIO_CHANNEL_OUT_ALL
 
     public static final int CHANNEL_IN_DEFAULT = 1;
+    // These directly match native
     public static final int CHANNEL_IN_LEFT = 0x4;
     public static final int CHANNEL_IN_RIGHT = 0x8;
     public static final int CHANNEL_IN_FRONT = 0x10;
@@ -121,5 +125,8 @@
     public static final int CHANNEL_IN_VOICE_DNLINK = 0x8000;
     public static final int CHANNEL_IN_MONO = CHANNEL_IN_FRONT;
     public static final int CHANNEL_IN_STEREO = (CHANNEL_IN_LEFT | CHANNEL_IN_RIGHT);
+    /** @hide */
+    public static final int CHANNEL_IN_FRONT_BACK = CHANNEL_IN_FRONT | CHANNEL_IN_BACK;
+    // CHANNEL_IN_ALL is not yet defined; if added then it should match AUDIO_CHANNEL_IN_ALL
 
 }
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index fe510f6..4513ead 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -43,6 +43,7 @@
 import android.content.res.Resources;
 import android.content.res.XmlResourceParser;
 import android.database.ContentObserver;
+import android.hardware.usb.UsbManager;
 import android.media.MediaPlayer.OnCompletionListener;
 import android.media.MediaPlayer.OnErrorListener;
 import android.os.Binder;
@@ -528,6 +529,7 @@
         intentFilter.addAction(Intent.ACTION_SCREEN_ON);
         intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
         intentFilter.addAction(Intent.ACTION_USER_SWITCHED);
+        intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
 
         intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
         // TODO merge orientation and rotation
@@ -1689,7 +1691,7 @@
     private static final String ASSET_FILE_VERSION = "1.0";
     private static final String GROUP_TOUCH_SOUNDS = "touch_sounds";
 
-    private static final int SOUND_EFECTS_LOAD_TIMEOUT_MS = 5000;
+    private static final int SOUND_EFFECTS_LOAD_TIMEOUT_MS = 5000;
 
     class LoadSoundEffectReply {
         public int mStatus = 1;
@@ -1801,7 +1803,7 @@
             sendMsg(mAudioHandler, MSG_LOAD_SOUND_EFFECTS, SENDMSG_QUEUE, 0, 0, reply, 0);
             while ((reply.mStatus == 1) && (attempts-- > 0)) {
                 try {
-                    reply.wait(SOUND_EFECTS_LOAD_TIMEOUT_MS);
+                    reply.wait(SOUND_EFFECTS_LOAD_TIMEOUT_MS);
                 } catch (InterruptedException e) {
                     Log.w(TAG, "loadSoundEffects Interrupted while waiting sound pool loaded.");
                 }
@@ -3289,7 +3291,7 @@
                 while ((mSoundPoolCallBack == null) && (attempts-- > 0)) {
                     try {
                         // Wait for mSoundPoolCallBack to be set by the other thread
-                        mSoundEffectsLock.wait(SOUND_EFECTS_LOAD_TIMEOUT_MS);
+                        mSoundEffectsLock.wait(SOUND_EFFECTS_LOAD_TIMEOUT_MS);
                     } catch (InterruptedException e) {
                         Log.w(TAG, "Interrupted while waiting sound pool listener thread.");
                     }
@@ -3353,7 +3355,7 @@
                     status = 1;
                     while ((status == 1) && (attempts-- > 0)) {
                         try {
-                            mSoundEffectsLock.wait(SOUND_EFECTS_LOAD_TIMEOUT_MS);
+                            mSoundEffectsLock.wait(SOUND_EFFECTS_LOAD_TIMEOUT_MS);
                             status = mSoundPoolCallBack.status();
                         } catch (InterruptedException e) {
                             Log.w(TAG, "Interrupted while waiting sound pool callback.");
@@ -3975,7 +3977,8 @@
                     (device == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE))) {
                 setBluetoothA2dpOnInt(true);
             }
-            boolean isUsb = ((device & AudioSystem.DEVICE_OUT_ALL_USB) != 0);
+            boolean isUsb = ((device & AudioSystem.DEVICE_OUT_ALL_USB) != 0) ||
+                            ((device & AudioSystem.DEVICE_IN_ALL_USB) != 0);
             handleDeviceConnection((state == 1), device, (isUsb ? name : ""));
             if (state != 0) {
                 if ((device == AudioSystem.DEVICE_OUT_WIRED_HEADSET) ||
@@ -4080,20 +4083,41 @@
                         }
                     }
                 }
-            } else if (action.equals(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG) ||
-                           action.equals(Intent.ACTION_USB_AUDIO_DEVICE_PLUG)) {
+            } else if (action.equals(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG)) {
                 state = intent.getIntExtra("state", 0);
+
                 int alsaCard = intent.getIntExtra("card", -1);
                 int alsaDevice = intent.getIntExtra("device", -1);
+
                 String params = (alsaCard == -1 && alsaDevice == -1 ? ""
                                     : "card=" + alsaCard + ";device=" + alsaDevice);
-                device = action.equals(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG) ?
-                        AudioSystem.DEVICE_OUT_USB_ACCESSORY : AudioSystem.DEVICE_OUT_USB_DEVICE;
-                Log.v(TAG, "Broadcast Receiver: Got "
-                        + (action.equals(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG) ?
-                              "ACTION_USB_AUDIO_ACCESSORY_PLUG" : "ACTION_USB_AUDIO_DEVICE_PLUG")
-                        + ", state = " + state + ", card: " + alsaCard + ", device: " + alsaDevice);
+
+                // Playback Device
+                device = AudioSystem.DEVICE_OUT_USB_ACCESSORY;
                 setWiredDeviceConnectionState(device, state, params);
+            } else if (action.equals(Intent.ACTION_USB_AUDIO_DEVICE_PLUG)) {
+                state = intent.getIntExtra("state", 0);
+
+                int alsaCard = intent.getIntExtra("card", -1);
+                int alsaDevice = intent.getIntExtra("device", -1);
+                boolean hasPlayback = intent.getBooleanExtra("hasPlayback", false);
+                boolean hasCapture = intent.getBooleanExtra("hasCapture", false);
+                boolean hasMIDI = intent.getBooleanExtra("hasMIDI", false);
+
+                String params = (alsaCard == -1 && alsaDevice == -1 ? ""
+                                    : "card=" + alsaCard + ";device=" + alsaDevice);
+
+                // Playback Device
+                if (hasPlayback) {
+                    device = AudioSystem.DEVICE_OUT_USB_DEVICE;
+                    setWiredDeviceConnectionState(device, state, params);
+                }
+
+                // Capture Device
+                if (hasCapture) {
+                    device = AudioSystem.DEVICE_IN_USB_DEVICE;
+                    setWiredDeviceConnectionState(device, state, params);
+                }
             } else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) {
                 boolean broadcast = false;
                 int scoAudioState = AudioManager.SCO_AUDIO_STATE_ERROR;
@@ -4199,7 +4223,7 @@
                         mStreamStates[AudioSystem.STREAM_MUSIC], 0);
             }
         }
-    }
+    } // end class AudioServiceBroadcastReceiver
 
     //==========================================================================================
     // RemoteControlDisplay / RemoteControlClient / Remote info
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index 9c67bae..327c10c 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -288,6 +288,8 @@
                                              DEVICE_IN_USB_DEVICE |
                                              DEVICE_IN_DEFAULT);
     public static final int DEVICE_IN_ALL_SCO = DEVICE_IN_BLUETOOTH_SCO_HEADSET;
+    public static final int DEVICE_IN_ALL_USB = (DEVICE_IN_USB_ACCESSORY |
+                                                 DEVICE_IN_USB_DEVICE);
 
     // device states, must match AudioSystem::device_connection_state
     public static final int DEVICE_STATE_UNAVAILABLE = 0;
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index 40c6797..17840f2 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -77,10 +77,14 @@
     //---------------------------------------------------------
     // Constants
     //--------------------
-    /** Minimum value for a channel volume */
-    private static final float VOLUME_MIN = 0.0f;
-    /** Maximum value for a channel volume */
-    private static final float VOLUME_MAX = 1.0f;
+    /** Minimum value for a linear gain or auxiliary effect level.
+     *  This value must be exactly equal to 0.0f; do not change it.
+     */
+    private static final float GAIN_MIN = 0.0f;
+    /** Maximum value for a linear gain or auxiliary effect level.
+     *  This value must be greater than or equal to 1.0f.
+     */
+    private static final float GAIN_MAX = 1.0f;
 
     /** Minimum value for sample rate */
     private static final int SAMPLE_RATE_HZ_MIN = 4000;
@@ -548,21 +552,25 @@
     // Getters
     //--------------------
     /**
-     * Returns the minimum valid volume value. Volume values set under this one will
-     * be clamped at this value.
-     * @return the minimum volume expressed as a linear attenuation.
+     * Returns the minimum gain value, which is the constant 0.0.
+     * Gain values less than 0.0 will be clamped to 0.0.
+     * <p>The word "volume" in the API name is historical; this is actually a linear gain.
+     * @return the minimum value, which is the constant 0.0.
      */
     static public float getMinVolume() {
-        return VOLUME_MIN;
+        return GAIN_MIN;
     }
 
     /**
-     * Returns the maximum valid volume value. Volume values set above this one will
-     * be clamped at this value.
-     * @return the maximum volume expressed as a linear attenuation.
+     * Returns the maximum gain value, which is greater than or equal to 1.0.
+     * Gain values greater than the maximum will be clamped to the maximum.
+     * <p>The word "volume" in the API name is historical; this is actually a gain.
+     * expressed as a linear multiplier on sample values, where a maximum value of 1.0
+     * corresponds to a gain of 0 dB (sample values left unmodified).
+     * @return the maximum value, which is greater than or equal to 1.0.
      */
     static public float getMaxVolume() {
-        return VOLUME_MAX;
+        return GAIN_MAX;
     }
 
     /**
@@ -845,17 +853,35 @@
     }
 
 
+    private static float clampGainOrLevel(float gainOrLevel) {
+        if (Float.isNaN(gainOrLevel)) {
+            throw new IllegalArgumentException();
+        }
+        if (gainOrLevel < GAIN_MIN) {
+            gainOrLevel = GAIN_MIN;
+        } else if (gainOrLevel > GAIN_MAX) {
+            gainOrLevel = GAIN_MAX;
+        }
+        return gainOrLevel;
+    }
+
 
      /**
-     * Sets the specified left/right output volume values on the AudioTrack. Values are clamped
-     * to the ({@link #getMinVolume()}, {@link #getMaxVolume()}) interval if outside this range.
-     * @param leftVolume output attenuation for the left channel. A value of 0.0f is silence,
-     *      a value of 1.0f is no attenuation.
-     * @param rightVolume output attenuation for the right channel
+     * Sets the specified left and right output gain values on the AudioTrack.
+     * <p>Gain values are clamped to the closed interval [0.0, max] where
+     * max is the value of {@link #getMaxVolume}.
+     * A value of 0.0 results in zero gain (silence), and
+     * a value of 1.0 means unity gain (signal unchanged).
+     * The default value is 1.0 meaning unity gain.
+     * <p>The word "volume" in the API name is historical; this is actually a linear gain.
+     * @param leftGain output gain for the left channel.
+     * @param rightGain output gain for the right channel
      * @return error code or success, see {@link #SUCCESS},
      *    {@link #ERROR_INVALID_OPERATION}
+     * @deprecated Applications should use {@link #setVolume} instead, as it
+     * more gracefully scales down to mono, and up to multi-channel content beyond stereo.
      */
-    public int setStereoVolume(float leftVolume, float rightVolume) {
+    public int setStereoVolume(float leftGain, float rightGain) {
         if (isRestricted()) {
             return SUCCESS;
         }
@@ -863,36 +889,31 @@
             return ERROR_INVALID_OPERATION;
         }
 
-        // clamp the volumes
-        if (leftVolume < getMinVolume()) {
-            leftVolume = getMinVolume();
-        }
-        if (leftVolume > getMaxVolume()) {
-            leftVolume = getMaxVolume();
-        }
-        if (rightVolume < getMinVolume()) {
-            rightVolume = getMinVolume();
-        }
-        if (rightVolume > getMaxVolume()) {
-            rightVolume = getMaxVolume();
-        }
+        leftGain = clampGainOrLevel(leftGain);
+        rightGain = clampGainOrLevel(rightGain);
 
-        native_setVolume(leftVolume, rightVolume);
+        native_setVolume(leftGain, rightGain);
 
         return SUCCESS;
     }
 
 
     /**
-     * Sets the specified output volume values on all channels of this track.  The value is clamped
-     * to the ({@link #getMinVolume()}, {@link #getMaxVolume()}) interval if outside this range.
-     * @param volume output attenuation for all channels. A value of 0.0f is silence,
-     *      a value of 1.0f is no attenuation.
+     * Sets the specified output gain value on all channels of this track.
+     * <p>Gain values are clamped to the closed interval [0.0, max] where
+     * max is the value of {@link #getMaxVolume}.
+     * A value of 0.0 results in zero gain (silence), and
+     * a value of 1.0 means unity gain (signal unchanged).
+     * The default value is 1.0 meaning unity gain.
+     * <p>This API is preferred over {@link #setStereoVolume}, as it
+     * more gracefully scales down to mono, and up to multi-channel content beyond stereo.
+     * <p>The word "volume" in the API name is historical; this is actually a linear gain.
+     * @param gain output gain for all channels.
      * @return error code or success, see {@link #SUCCESS},
      *    {@link #ERROR_INVALID_OPERATION}
      */
-    public int setVolume(float volume) {
-        return setStereoVolume(volume, volume);
+    public int setVolume(float gain) {
+        return setStereoVolume(gain, gain);
     }
 
 
@@ -1309,19 +1330,21 @@
 
     /**
      * Sets the send level of the audio track to the attached auxiliary effect
-     * {@link #attachAuxEffect(int)}.  The level value range is 0.0f to 1.0f.
-     * Values are clamped to the (0.0f, 1.0f) interval if outside this range.
+     * {@link #attachAuxEffect(int)}.  Effect levels
+     * are clamped to the closed interval [0.0, max] where
+     * max is the value of {@link #getMaxVolume}.
+     * A value of 0.0 results in no effect, and a value of 1.0 is full send.
      * <p>By default the send level is 0.0f, so even if an effect is attached to the player
      * this method must be called for the effect to be applied.
-     * <p>Note that the passed level value is a raw scalar. UI controls should be scaled
-     * logarithmically: the gain applied by audio framework ranges from -72dB to 0dB,
+     * <p>Note that the passed level value is a linear scalar. UI controls should be scaled
+     * logarithmically: the gain applied by audio framework ranges from -72dB to at least 0dB,
      * so an appropriate conversion from linear UI input x to level is:
      * x == 0 -&gt; level = 0
      * 0 &lt; x &lt;= R -&gt; level = 10^(72*(x-R)/20/R)
      *
-     * @param level send level scalar
+     * @param level linear send level
      * @return error code or success, see {@link #SUCCESS},
-     *    {@link #ERROR_INVALID_OPERATION}
+     *    {@link #ERROR_INVALID_OPERATION}, {@link #ERROR}
      */
     public int setAuxEffectSendLevel(float level) {
         if (isRestricted()) {
@@ -1330,15 +1353,9 @@
         if (mState == STATE_UNINITIALIZED) {
             return ERROR_INVALID_OPERATION;
         }
-        // clamp the level
-        if (level < getMinVolume()) {
-            level = getMinVolume();
-        }
-        if (level > getMaxVolume()) {
-            level = getMaxVolume();
-        }
-        native_setAuxEffectSendLevel(level);
-        return SUCCESS;
+        level = clampGainOrLevel(level);
+        int err = native_setAuxEffectSendLevel(level);
+        return err == 0 ? SUCCESS : ERROR;
     }
 
     //---------------------------------------------------------
@@ -1508,7 +1525,7 @@
             int sampleRateInHz, int channelConfig, int audioFormat);
 
     private native final int native_attachAuxEffect(int effectId);
-    private native final void native_setAuxEffectSendLevel(float level);
+    private native final int native_setAuxEffectSendLevel(float level);
 
     //---------------------------------------------------------
     // Utility methods
diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java
index 7170ffb..440653a 100644
--- a/media/java/android/media/MediaDrm.java
+++ b/media/java/android/media/MediaDrm.java
@@ -20,6 +20,8 @@
 import java.util.UUID;
 import java.util.HashMap;
 import java.util.List;
+import android.os.Binder;
+import android.os.Debug;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
@@ -95,12 +97,28 @@
 
     private final static String TAG = "MediaDrm";
 
+    private static final String PERMISSION = android.Manifest.permission.ACCESS_DRM_CERTIFICATES;
+
     private EventHandler mEventHandler;
     private OnEventListener mOnEventListener;
 
     private long mNativeContext;
 
     /**
+     * Specify no certificate type
+     *
+     * @hide - not part of the public API at this time
+     */
+    public static final int CERTIFICATE_TYPE_NONE = 0;
+
+    /**
+     * Specify X.509 certificate type
+     *
+     * @hide - not part of the public API at this time
+     */
+    public static final int CERTIFICATE_TYPE_X509 = 1;
+
+    /**
      * Query if the given scheme identified by its UUID is supported on
      * this device.
      * @param uuid The UUID of the crypto scheme.
@@ -135,7 +153,7 @@
     }
 
     private static final native boolean isCryptoSchemeSupportedNative(byte[] uuid,
-                                                                      String mimeType);
+            String mimeType);
 
     /**
      * Instantiate a MediaDrm object
@@ -159,7 +177,7 @@
          * It's easier to create it here than in C++.
          */
         native_setup(new WeakReference<MediaDrm>(this),
-                     getByteArrayFromUUID(uuid));
+                getByteArrayFromUUID(uuid));
     }
 
     /**
@@ -268,7 +286,7 @@
      * the cookie passed to native_setup().)
      */
     private static void postEventFromNative(Object mediadrm_ref,
-                                            int eventType, int extra, Object obj)
+            int eventType, int extra, Object obj)
     {
         MediaDrm md = (MediaDrm)((WeakReference)mediadrm_ref).get();
         if (md == null) {
@@ -316,6 +334,9 @@
      * Contains the opaque data an app uses to request keys from a license server
      */
     public final static class KeyRequest {
+        private byte[] mData;
+        private String mDefaultUrl;
+
         KeyRequest() {}
 
         /**
@@ -329,9 +350,6 @@
          * server URL from other sources.
          */
         public String getDefaultUrl() { return mDefaultUrl; }
-
-        private byte[] mData;
-        private String mDefaultUrl;
     };
 
     /**
@@ -368,9 +386,8 @@
      * problem with the certifcate
      */
     public native KeyRequest getKeyRequest(byte[] scope, byte[] init,
-                                           String mimeType, int keyType,
-                                           HashMap<String, String> optionalParameters)
-        throws NotProvisionedException;
+            String mimeType, int keyType, HashMap<String, String> optionalParameters)
+            throws NotProvisionedException;
 
 
     /**
@@ -394,7 +411,7 @@
      * @throws ResourceBusyException if required resources are in use
      */
     public native byte[] provideKeyResponse(byte[] scope, byte[] response)
-        throws NotProvisionedException, DeniedByServerException;
+            throws NotProvisionedException, DeniedByServerException;
 
 
     /**
@@ -456,7 +473,12 @@
      * is returned in ProvisionRequest.data. The recommended URL to deliver the provision
      * request to is returned in ProvisionRequest.defaultUrl.
      */
-    public native ProvisionRequest getProvisionRequest();
+    public ProvisionRequest getProvisionRequest() {
+        return getProvisionRequestNative(CERTIFICATE_TYPE_NONE, "");
+    }
+
+    private native ProvisionRequest getProvisionRequestNative(int certType,
+            String certAuthority);
 
     /**
      * After a provision response is received by the app, it is provided to the DRM
@@ -468,8 +490,13 @@
      * @throws DeniedByServerException if the response indicates that the
      * server rejected the request
      */
-    public native void provideProvisionResponse(byte[] response)
-        throws DeniedByServerException;
+    public void provideProvisionResponse(byte[] response)
+            throws DeniedByServerException {
+        provideProvisionResponseNative(response);
+    }
+
+    private native Certificate provideProvisionResponseNative(byte[] response)
+            throws DeniedByServerException;
 
     /**
      * A means of enforcing limits on the number of concurrent streams per subscriber
@@ -556,23 +583,22 @@
 
 
     private static final native void setCipherAlgorithmNative(MediaDrm drm, byte[] sessionId,
-                                                              String algorithm);
+            String algorithm);
 
     private static final native void setMacAlgorithmNative(MediaDrm drm, byte[] sessionId,
-                                                           String algorithm);
+            String algorithm);
 
     private static final native byte[] encryptNative(MediaDrm drm, byte[] sessionId,
-                                                     byte[] keyId, byte[] input, byte[] iv);
+            byte[] keyId, byte[] input, byte[] iv);
 
     private static final native byte[] decryptNative(MediaDrm drm, byte[] sessionId,
-                                                     byte[] keyId, byte[] input, byte[] iv);
+            byte[] keyId, byte[] input, byte[] iv);
 
     private static final native byte[] signNative(MediaDrm drm, byte[] sessionId,
-                                                  byte[] keyId, byte[] message);
+            byte[] keyId, byte[] message);
 
     private static final native boolean verifyNative(MediaDrm drm, byte[] sessionId,
-                                                     byte[] keyId, byte[] message,
-                                                     byte[] signature);
+            byte[] keyId, byte[] message, byte[] signature);
 
     /**
      * In addition to supporting decryption of DASH Common Encrypted Media, the
@@ -602,7 +628,7 @@
         private byte[] mSessionId;
 
         CryptoSession(MediaDrm drm, byte[] sessionId,
-                      String cipherAlgorithm, String macAlgorithm)
+                String cipherAlgorithm, String macAlgorithm)
         {
             mSessionId = sessionId;
             mDrm = drm;
@@ -677,12 +703,124 @@
      * "algorithms".
      */
     public CryptoSession getCryptoSession(byte[] sessionId,
-                                          String cipherAlgorithm,
-                                          String macAlgorithm)
+            String cipherAlgorithm, String macAlgorithm)
     {
         return new CryptoSession(this, sessionId, cipherAlgorithm, macAlgorithm);
     }
 
+    /**
+     * Contains the opaque data an app uses to request a certificate from a provisioning
+     * server
+     *
+     * @hide - not part of the public API at this time
+     */
+    public final static class CertificateRequest {
+        private byte[] mData;
+        private String mDefaultUrl;
+
+        CertificateRequest(byte[] data, String defaultUrl) {
+            mData = data;
+            mDefaultUrl = defaultUrl;
+        }
+
+        /**
+         * Get the opaque message data
+         */
+        public byte[] getData() { return mData; }
+
+        /**
+         * Get the default URL to use when sending the certificate request
+         * message to a server, if known. The app may prefer to use a different
+         * certificate server URL obtained from other sources.
+         */
+        public String getDefaultUrl() { return mDefaultUrl; }
+    }
+
+    /**
+     * Generate a certificate request, specifying the certificate type
+     * and authority. The response received should be passed to
+     * provideCertificateResponse.
+     *
+     * @param certType Specifies the certificate type.
+     *
+     * @param certAuthority is passed to the certificate server to specify
+     * the chain of authority.
+     *
+     * @hide - not part of the public API at this time
+     */
+    public CertificateRequest getCertificateRequest(int certType,
+            String certAuthority)
+    {
+        ProvisionRequest provisionRequest = getProvisionRequestNative(certType, certAuthority);
+        return new CertificateRequest(provisionRequest.getData(),
+                provisionRequest.getDefaultUrl());
+    }
+
+    /**
+     * Contains the wrapped private key and public certificate data associated
+     * with a certificate.
+     *
+     * @hide - not part of the public API at this time
+     */
+    public final static class Certificate {
+        Certificate() {}
+
+        /**
+         * Get the wrapped private key data
+         */
+        public byte[] getWrappedPrivateKey() { return mWrappedKey; }
+
+        /**
+         * Get the PEM-encoded certificate chain
+         */
+        public byte[] getContent() { return mCertificateData; }
+
+        private byte[] mWrappedKey;
+        private byte[] mCertificateData;
+    }
+
+
+    /**
+     * Process a response from the certificate server.  The response
+     * is obtained from an HTTP Post to the url provided by getCertificateRequest.
+     * <p>
+     * The public X509 certificate chain and wrapped private key are returned
+     * in the returned Certificate objec.  The certificate chain is in PEM format.
+     * The wrapped private key should be stored in application private
+     * storage, and used when invoking the signRSA method.
+     *
+     * @param response the opaque certificate response byte array to provide to the
+     * DRM engine plugin.
+     *
+     * @throws DeniedByServerException if the response indicates that the
+     * server rejected the request
+     *
+     * @hide - not part of the public API at this time
+     */
+    public Certificate provideCertificateResponse(byte[] response)
+            throws DeniedByServerException {
+        return provideProvisionResponseNative(response);
+    }
+
+    private static final native byte[] signRSANative(MediaDrm drm, byte[] sessionId,
+            String algorithm, byte[] wrappedKey, byte[] message);
+
+    /**
+     * Sign data using an RSA key
+     *
+     * @param sessionId a sessionId obtained from openSession on the MediaDrm object
+     * @param algorithm the signing algorithm to use, e.g. "PKCS1-BlockType1"
+     * @param wrappedKey - the wrapped (encrypted) RSA private key obtained
+     * from provideCertificateResponse
+     * @param message the data for which a signature is to be computed
+     *
+     * @hide - not part of the public API at this time
+     */
+    public byte[] signRSA(byte[] sessionId, String algorithm,
+            byte[] wrappedKey, byte[] message) {
+        return signRSANative(this, sessionId, algorithm, wrappedKey, message);
+    }
+
     @Override
     protected void finalize() {
         native_finalize();
diff --git a/media/java/android/media/MediaFocusControl.java b/media/java/android/media/MediaFocusControl.java
index f688d81..214306c 100644
--- a/media/java/android/media/MediaFocusControl.java
+++ b/media/java/android/media/MediaFocusControl.java
@@ -471,10 +471,6 @@
                 final FocusRequester exFocusOwner = mFocusStack.pop();
                 exFocusOwner.handleFocusLoss(AudioManager.AUDIOFOCUS_LOSS);
                 exFocusOwner.release();
-                // clear RCD
-                synchronized(mPRStack) {
-                    clearRemoteControlDisplay_syncAfRcs();
-                }
             }
         }
     }
@@ -535,10 +531,6 @@
             if (signal) {
                 // notify the new top of the stack it gained focus
                 notifyTopOfAudioFocusStack();
-                // there's a new top of the stack, let the remote control know
-                synchronized(mPRStack) {
-                    checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-                }
             }
         } else {
             // focus is abandoned by a client that's not at the top of the stack,
@@ -582,10 +574,6 @@
             // we removed an entry at the top of the stack:
             //  notify the new top of the stack it gained focus.
             notifyTopOfAudioFocusStack();
-            // there's a new top of the stack, let the remote control know
-            synchronized(mPRStack) {
-                checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-            }
         }
     }
 
@@ -694,10 +682,6 @@
             mFocusStack.push(new FocusRequester(mainStreamType, focusChangeHint, fd, cb,
                     clientId, afdh, callingPackageName, Binder.getCallingUid()));
 
-            // there's a new top of the stack, let the remote control know
-            synchronized(mPRStack) {
-                checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-            }
         }//synchronized(mAudioFocusLock)
 
         return AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
@@ -1080,10 +1064,8 @@
     private boolean mHasRemotePlayback;
 
     /**
-     *  The stack of remote control event receivers.
-     *  Code sections and methods that modify the remote control event receiver stack are
-     *  synchronized on mPRStack, but also BEFORE on mFocusLock as any change in either
-     *  stack, audio focus or RC, can lead to a change in the remote control display
+     * The stack of remote control event receivers.
+     * All read and write operations on mPRStack are synchronized.
      */
     private final Stack<PlayerRecord> mPRStack = new Stack<PlayerRecord>();
 
@@ -1237,11 +1219,11 @@
     /**
      * Helper function:
      * Set the new remote control receiver at the top of the RC focus stack.
-     * Called synchronized on mAudioFocusLock, then mPRStack
+     * Called synchronized on mPRStack
      * precondition: mediaIntent != null
      * @return true if mPRStack was changed, false otherwise
      */
-    private boolean pushMediaButtonReceiver_syncAfRcs(PendingIntent mediaIntent,
+    private boolean pushMediaButtonReceiver_syncPrs(PendingIntent mediaIntent,
             ComponentName target, IBinder token) {
         // already at top of stack?
         if (!mPRStack.empty() && mPRStack.peek().hasMatchingMediaButtonIntent(mediaIntent)) {
@@ -1285,10 +1267,10 @@
     /**
      * Helper function:
      * Remove the remote control receiver from the RC focus stack.
-     * Called synchronized on mAudioFocusLock, then mPRStack
+     * Called synchronized on mPRStack
      * precondition: pi != null
      */
-    private void removeMediaButtonReceiver_syncAfRcs(PendingIntent pi) {
+    private void removeMediaButtonReceiver_syncPrs(PendingIntent pi) {
         try {
             for (int index = mPRStack.size()-1; index >= 0; index--) {
                 final PlayerRecord prse = mPRStack.elementAt(index);
@@ -1470,7 +1452,7 @@
      * Helper function:
      * Called synchronized on mPRStack
      */
-    private void clearRemoteControlDisplay_syncAfRcs() {
+    private void clearRemoteControlDisplay_syncPrs() {
         synchronized(mCurrentRcLock) {
             mCurrentRcClient = null;
         }
@@ -1480,20 +1462,20 @@
 
     /**
      * Helper function for code readability: only to be called from
-     *    checkUpdateRemoteControlDisplay_syncAfRcs() which checks the preconditions for
+     *    checkUpdateRemoteControlDisplay_syncPrs() which checks the preconditions for
      *    this method.
      * Preconditions:
-     *    - called synchronized mAudioFocusLock then on mPRStack
+     *    - called synchronized on mPRStack
      *    - mPRStack.isEmpty() is false
      */
-    private void updateRemoteControlDisplay_syncAfRcs(int infoChangedFlags) {
+    private void updateRemoteControlDisplay_syncPrs(int infoChangedFlags) {
         PlayerRecord prse = mPRStack.peek();
         int infoFlagsAboutToBeUsed = infoChangedFlags;
         // this is where we enforce opt-in for information display on the remote controls
         //   with the new AudioManager.registerRemoteControlClient() API
         if (prse.getRcc() == null) {
             //Log.w(TAG, "Can't update remote control display with null remote control client");
-            clearRemoteControlDisplay_syncAfRcs();
+            clearRemoteControlDisplay_syncPrs();
             return;
         }
         synchronized(mCurrentRcLock) {
@@ -1511,62 +1493,25 @@
 
     /**
      * Helper function:
-     * Called synchronized on mAudioFocusLock, then mPRStack
+     * Called synchronized on mPRStack
      * Check whether the remote control display should be updated, triggers the update if required
      * @param infoChangedFlags the flags corresponding to the remote control client information
      *     that has changed, if applicable (checking for the update conditions might trigger a
      *     clear, rather than an update event).
      */
-    private void checkUpdateRemoteControlDisplay_syncAfRcs(int infoChangedFlags) {
+    private void checkUpdateRemoteControlDisplay_syncPrs(int infoChangedFlags) {
         // determine whether the remote control display should be refreshed
-        // if either stack is empty, there is a mismatch, so clear the RC display
-        if (mPRStack.isEmpty() || mFocusStack.isEmpty()) {
-            clearRemoteControlDisplay_syncAfRcs();
+        // if the player record stack is empty, there is nothing to display, so clear the RC display
+        if (mPRStack.isEmpty()) {
+            clearRemoteControlDisplay_syncPrs();
             return;
         }
 
-        // determine which entry in the AudioFocus stack to consider, and compare against the
-        // top of the stack for the media button event receivers : simply using the top of the
-        // stack would make the entry disappear from the RemoteControlDisplay in conditions such as
-        // notifications playing during music playback.
-        // Crawl the AudioFocus stack from the top until an entry is found with the following
-        // characteristics:
-        // - focus gain on STREAM_MUSIC stream
-        // - non-transient focus gain on a stream other than music
-        FocusRequester af = null;
-        try {
-            for (int index = mFocusStack.size()-1; index >= 0; index--) {
-                FocusRequester fr = mFocusStack.elementAt(index);
-                if ((fr.getStreamType() == AudioManager.STREAM_MUSIC)
-                        || (fr.getGainRequest() == AudioManager.AUDIOFOCUS_GAIN)) {
-                    af = fr;
-                    break;
-                }
-            }
-        } catch (ArrayIndexOutOfBoundsException e) {
-            Log.e(TAG, "Wrong index accessing audio focus stack when updating RCD: " + e);
-            af = null;
-        }
-        if (af == null) {
-            clearRemoteControlDisplay_syncAfRcs();
-            return;
-        }
-
-        // if the audio focus and RC owners belong to different packages, there is a mismatch, clear
-        if (!af.hasSamePackage(mPRStack.peek().getCallingPackageName())) {
-            clearRemoteControlDisplay_syncAfRcs();
-            return;
-        }
-        // if the audio focus didn't originate from the same Uid as the one in which the remote
-        //   control information will be retrieved, clear
-        if (!af.hasSameUid(mPRStack.peek().getCallingUid())) {
-            clearRemoteControlDisplay_syncAfRcs();
-            return;
-        }
+        // this is where more rules for refresh go
 
         // refresh conditions were verified: update the remote controls
-        // ok to call: synchronized mAudioFocusLock then on mPRStack, mPRStack is not empty
-        updateRemoteControlDisplay_syncAfRcs(infoChangedFlags);
+        // ok to call: synchronized on mPRStack, mPRStack is not empty
+        updateRemoteControlDisplay_syncPrs(infoChangedFlags);
     }
 
     /**
@@ -1582,35 +1527,33 @@
 
     private void onPromoteRcc(int rccId) {
         if (DEBUG_RC) { Log.d(TAG, "Promoting RCC " + rccId); }
-        synchronized(mAudioFocusLock) {
-            synchronized(mPRStack) {
-                // ignore if given RCC ID is already at top of remote control stack
-                if (!mPRStack.isEmpty() && (mPRStack.peek().getRccId() == rccId)) {
-                    return;
-                }
-                int indexToPromote = -1;
-                try {
-                    for (int index = mPRStack.size()-1; index >= 0; index--) {
-                        final PlayerRecord prse = mPRStack.elementAt(index);
-                        if (prse.getRccId() == rccId) {
-                            indexToPromote = index;
-                            break;
-                        }
+        synchronized(mPRStack) {
+            // ignore if given RCC ID is already at top of remote control stack
+            if (!mPRStack.isEmpty() && (mPRStack.peek().getRccId() == rccId)) {
+                return;
+            }
+            int indexToPromote = -1;
+            try {
+                for (int index = mPRStack.size()-1; index >= 0; index--) {
+                    final PlayerRecord prse = mPRStack.elementAt(index);
+                    if (prse.getRccId() == rccId) {
+                        indexToPromote = index;
+                        break;
                     }
-                    if (indexToPromote >= 0) {
-                        if (DEBUG_RC) { Log.d(TAG, "  moving RCC from index " + indexToPromote
-                                + " to " + (mPRStack.size()-1)); }
-                        final PlayerRecord prse = mPRStack.remove(indexToPromote);
-                        mPRStack.push(prse);
-                        // the RC stack changed, reevaluate the display
-                        checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-                    }
-                } catch (ArrayIndexOutOfBoundsException e) {
-                    // not expected to happen, indicates improper concurrent modification
-                    Log.e(TAG, "Wrong index accessing RC stack, lock error? ", e);
                 }
-            }//synchronized(mPRStack)
-        }//synchronized(mAudioFocusLock)
+                if (indexToPromote >= 0) {
+                    if (DEBUG_RC) { Log.d(TAG, "  moving RCC from index " + indexToPromote
+                            + " to " + (mPRStack.size()-1)); }
+                    final PlayerRecord prse = mPRStack.remove(indexToPromote);
+                    mPRStack.push(prse);
+                    // the RC stack changed, reevaluate the display
+                    checkUpdateRemoteControlDisplay_syncPrs(RC_INFO_ALL);
+                }
+            } catch (ArrayIndexOutOfBoundsException e) {
+                // not expected to happen, indicates improper concurrent modification
+                Log.e(TAG, "Wrong index accessing RC stack, lock error? ", e);
+            }
+        }//synchronized(mPRStack)
     }
 
     /**
@@ -1621,12 +1564,10 @@
             IBinder token) {
         Log.i(TAG, "  Remote Control   registerMediaButtonIntent() for " + mediaIntent);
 
-        synchronized(mAudioFocusLock) {
-            synchronized(mPRStack) {
-                if (pushMediaButtonReceiver_syncAfRcs(mediaIntent, eventReceiver, token)) {
-                    // new RC client, assume every type of information shall be queried
-                    checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-                }
+        synchronized(mPRStack) {
+            if (pushMediaButtonReceiver_syncPrs(mediaIntent, eventReceiver, token)) {
+                // new RC client, assume every type of information shall be queried
+                checkUpdateRemoteControlDisplay_syncPrs(RC_INFO_ALL);
             }
         }
     }
@@ -1639,14 +1580,12 @@
     {
         Log.i(TAG, "  Remote Control   unregisterMediaButtonIntent() for " + mediaIntent);
 
-        synchronized(mAudioFocusLock) {
-            synchronized(mPRStack) {
-                boolean topOfStackWillChange = isCurrentRcController(mediaIntent);
-                removeMediaButtonReceiver_syncAfRcs(mediaIntent);
-                if (topOfStackWillChange) {
-                    // current RC client will change, assume every type of info needs to be queried
-                    checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-                }
+        synchronized(mPRStack) {
+            boolean topOfStackWillChange = isCurrentRcController(mediaIntent);
+            removeMediaButtonReceiver_syncPrs(mediaIntent);
+            if (topOfStackWillChange) {
+                // current RC client will change, assume every type of info needs to be queried
+                checkUpdateRemoteControlDisplay_syncPrs(RC_INFO_ALL);
             }
         }
     }
@@ -1697,42 +1636,40 @@
             IRemoteControlClient rcClient, String callingPackageName) {
         if (DEBUG_RC) Log.i(TAG, "Register remote control client rcClient="+rcClient);
         int rccId = RemoteControlClient.RCSE_ID_UNREGISTERED;
-        synchronized(mAudioFocusLock) {
-            synchronized(mPRStack) {
-                // store the new display information
-                try {
-                    for (int index = mPRStack.size()-1; index >= 0; index--) {
-                        final PlayerRecord prse = mPRStack.elementAt(index);
-                        if(prse.hasMatchingMediaButtonIntent(mediaIntent)) {
-                            prse.resetControllerInfoForRcc(rcClient, callingPackageName,
-                                    Binder.getCallingUid());
+        synchronized(mPRStack) {
+            // store the new display information
+            try {
+                for (int index = mPRStack.size()-1; index >= 0; index--) {
+                    final PlayerRecord prse = mPRStack.elementAt(index);
+                    if(prse.hasMatchingMediaButtonIntent(mediaIntent)) {
+                        prse.resetControllerInfoForRcc(rcClient, callingPackageName,
+                                Binder.getCallingUid());
 
-                            if (rcClient == null) {
-                                break;
-                            }
-
-                            rccId = prse.getRccId();
-
-                            // there is a new (non-null) client:
-                            //     give the new client the displays (if any)
-                            if (mRcDisplays.size() > 0) {
-                                plugRemoteControlDisplaysIntoClient_syncRcStack(prse.getRcc());
-                            }
+                        if (rcClient == null) {
                             break;
                         }
-                    }//for
-                } catch (ArrayIndexOutOfBoundsException e) {
-                    // not expected to happen, indicates improper concurrent modification
-                    Log.e(TAG, "Wrong index accessing RC stack, lock error? ", e);
-                }
 
-                // if the eventReceiver is at the top of the stack
-                // then check for potential refresh of the remote controls
-                if (isCurrentRcController(mediaIntent)) {
-                    checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-                }
-            }//synchronized(mPRStack)
-        }//synchronized(mAudioFocusLock)
+                        rccId = prse.getRccId();
+
+                        // there is a new (non-null) client:
+                        //     give the new client the displays (if any)
+                        if (mRcDisplays.size() > 0) {
+                            plugRemoteControlDisplaysIntoClient_syncPrs(prse.getRcc());
+                        }
+                        break;
+                    }
+                }//for
+            } catch (ArrayIndexOutOfBoundsException e) {
+                // not expected to happen, indicates improper concurrent modification
+                Log.e(TAG, "Wrong index accessing RC stack, lock error? ", e);
+            }
+
+            // if the eventReceiver is at the top of the stack
+            // then check for potential refresh of the remote controls
+            if (isCurrentRcController(mediaIntent)) {
+                checkUpdateRemoteControlDisplay_syncPrs(RC_INFO_ALL);
+            }
+        }//synchronized(mPRStack)
         return rccId;
     }
 
@@ -1743,29 +1680,27 @@
     protected void unregisterRemoteControlClient(PendingIntent mediaIntent,
             IRemoteControlClient rcClient) {
         if (DEBUG_RC) Log.i(TAG, "Unregister remote control client rcClient="+rcClient);
-        synchronized(mAudioFocusLock) {
-            synchronized(mPRStack) {
-                boolean topRccChange = false;
-                try {
-                    for (int index = mPRStack.size()-1; index >= 0; index--) {
-                        final PlayerRecord prse = mPRStack.elementAt(index);
-                        if ((prse.hasMatchingMediaButtonIntent(mediaIntent))
-                                && rcClient.equals(prse.getRcc())) {
-                            // we found the IRemoteControlClient to unregister
-                            prse.resetControllerInfoForNoRcc();
-                            topRccChange = (index == mPRStack.size()-1);
-                            // there can only be one matching RCC in the RC stack, we're done
-                            break;
-                        }
+        synchronized(mPRStack) {
+            boolean topRccChange = false;
+            try {
+                for (int index = mPRStack.size()-1; index >= 0; index--) {
+                    final PlayerRecord prse = mPRStack.elementAt(index);
+                    if ((prse.hasMatchingMediaButtonIntent(mediaIntent))
+                            && rcClient.equals(prse.getRcc())) {
+                        // we found the IRemoteControlClient to unregister
+                        prse.resetControllerInfoForNoRcc();
+                        topRccChange = (index == mPRStack.size()-1);
+                        // there can only be one matching RCC in the RC stack, we're done
+                        break;
                     }
-                } catch (ArrayIndexOutOfBoundsException e) {
-                    // not expected to happen, indicates improper concurrent modification
-                    Log.e(TAG, "Wrong index accessing RC stack, lock error? ", e);
                 }
-                if (topRccChange) {
-                    // no more RCC for the RCD, check for potential refresh of the remote controls
-                    checkUpdateRemoteControlDisplay_syncAfRcs(RC_INFO_ALL);
-                }
+            } catch (ArrayIndexOutOfBoundsException e) {
+                // not expected to happen, indicates improper concurrent modification
+                Log.e(TAG, "Wrong index accessing RC stack, lock error? ", e);
+            }
+            if (topRccChange) {
+                // no more RCC for the RCD, check for potential refresh of the remote controls
+                checkUpdateRemoteControlDisplay_syncPrs(RC_INFO_ALL);
             }
         }
     }
@@ -1843,7 +1778,7 @@
      * Plug each registered display into the specified client
      * @param rcc, guaranteed non null
      */
-    private void plugRemoteControlDisplaysIntoClient_syncRcStack(IRemoteControlClient rcc) {
+    private void plugRemoteControlDisplaysIntoClient_syncPrs(IRemoteControlClient rcc) {
         final Iterator<DisplayInfoForServer> displayIterator = mRcDisplays.iterator();
         while (displayIterator.hasNext()) {
             final DisplayInfoForServer di = displayIterator.next();
diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java
index 2446c2f..fbf2eab 100644
--- a/media/java/android/media/videoeditor/VideoEditorImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorImpl.java
@@ -47,6 +47,8 @@
 import android.os.SystemProperties;
 import android.os.Environment;
 
+import libcore.io.IoUtils;
+
 /**
  * The VideoEditor implementation {@hide}
  */
@@ -1859,15 +1861,15 @@
                 }
             }
 
+            FileOutputStream stream = null;
             try {
-                FileOutputStream stream = new FileOutputStream(mProjectPath + "/"
-                                                          + THUMBNAIL_FILENAME);
+                stream = new FileOutputStream(mProjectPath + "/" + THUMBNAIL_FILENAME);
                 projectBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                 stream.flush();
-                stream.close();
             } catch (IOException e) {
                 throw new IllegalArgumentException ("Error creating project thumbnail");
             } finally {
+                IoUtils.closeQuietly(stream);
                 projectBitmap.recycle();
             }
         }
diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java
index 15ae238..fce3fd0 100755
--- a/media/java/android/mtp/MtpDatabase.java
+++ b/media/java/android/mtp/MtpDatabase.java
@@ -202,12 +202,17 @@
     public void setServer(MtpServer server) {
         mServer = server;
 
+        // always unregister before registering
+        try {
+            mContext.unregisterReceiver(mBatteryReceiver);
+        } catch (IllegalArgumentException e) {
+            // wasn't previously registered, ignore
+        }
+
         // register for battery notifications when we are connected
         if (server != null) {
             mContext.registerReceiver(mBatteryReceiver,
                     new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-        } else {
-            mContext.unregisterReceiver(mBatteryReceiver);
         }
     }
 
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index fcd425e..716418c 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/media/jni/android_media_ImageReader.cpp
@@ -386,11 +386,12 @@
             dataSize = buffer->stride * buffer->height;
             break;
         case HAL_PIXEL_FORMAT_Y16:
+            bytesPerPixel = 2;
             // Single plane, 16bpp, strides are specified in pixels, not in bytes
             ALOG_ASSERT(idx == 0, "Wrong index: %d", idx);
 
             pData = buffer->data;
-            dataSize = buffer->stride * buffer->height * 2;
+            dataSize = buffer->stride * buffer->height * bytesPerPixel;
             break;
         case HAL_PIXEL_FORMAT_BLOB:
             // Used for JPEG data, height must be 1, width == size, single plane.
@@ -402,9 +403,10 @@
             break;
         case HAL_PIXEL_FORMAT_RAW_SENSOR:
             // Single plane 16bpp bayer data.
+            bytesPerPixel = 2;
             ALOG_ASSERT(idx == 0, "Wrong index: %d", idx);
             pData = buffer->data;
-            dataSize = buffer->width * 2 * buffer->height;
+            dataSize = buffer->stride * buffer->height * bytesPerPixel;
             break;
         case HAL_PIXEL_FORMAT_RGBA_8888:
         case HAL_PIXEL_FORMAT_RGBX_8888:
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index b2fb2df..d04b1f8 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -27,6 +27,8 @@
 #include "jni.h"
 #include "JNIHelp.h"
 
+#include <cutils/compiler.h>
+
 #include <gui/Surface.h>
 
 #include <media/ICrypto.h>
@@ -738,6 +740,10 @@
     } else if (numBytesOfClearDataObj != NULL
             && env->GetArrayLength(numBytesOfClearDataObj) < numSubSamples) {
         err = -ERANGE;
+    // subSamples array may silently overflow if number of samples are too large.  Use
+    // INT32_MAX as maximum allocation size may be less than SIZE_MAX on some platforms
+    } else if ( CC_UNLIKELY(numSubSamples >= INT32_MAX / sizeof(*subSamples)) ) {
+        err = -EINVAL;
     } else {
         jboolean isCopy;
 
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index 052d97d..7c45682 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -100,6 +100,16 @@
     jint kKeyTypeRelease;
 } gKeyTypes;
 
+struct CertificateTypes {
+    jint kCertificateTypeNone;
+    jint kCertificateTypeX509;
+} gCertificateTypes;
+
+struct CertificateFields {
+    jfieldID wrappedPrivateKey;
+    jfieldID certificateData;
+};
+
 struct fields_t {
     jfieldID context;
     jmethodID post_event;
@@ -110,6 +120,11 @@
     SetFields set;
     IteratorFields iterator;
     EntryFields entry;
+    CertificateFields certificate;
+    jclass certificateClassId;
+    jclass hashmapClassId;
+    jclass arraylistClassId;
+    jclass stringClassId;
 };
 
 static fields_t gFields;
@@ -406,8 +421,7 @@
 */
 
 static KeyedVector<String8, String8> HashMapToKeyedVector(JNIEnv *env, jobject &hashMap) {
-    jclass clazz;
-    FIND_CLASS(clazz, "java/lang/String");
+    jclass clazz = gFields.stringClassId;
     KeyedVector<String8, String8> keyedVector;
 
     jobject entrySet = env->CallObjectMethod(hashMap, gFields.hashmap.entrySet);
@@ -450,8 +464,7 @@
 }
 
 static jobject KeyedVectorToHashMap (JNIEnv *env, KeyedVector<String8, String8> const &map) {
-    jclass clazz;
-    FIND_CLASS(clazz, "java/util/HashMap");
+    jclass clazz = gFields.hashmapClassId;
     jobject hashMap = env->NewObject(clazz, gFields.hashmap.init);
     for (size_t i = 0; i < map.size(); ++i) {
         jstring jkey = env->NewStringUTF(map.keyAt(i).string());
@@ -465,8 +478,7 @@
 
 static jobject ListOfVectorsToArrayListOfByteArray(JNIEnv *env,
                                                    List<Vector<uint8_t> > list) {
-    jclass clazz;
-    FIND_CLASS(clazz, "java/util/ArrayList");
+    jclass clazz = gFields.arraylistClassId;
     jobject arrayList = env->NewObject(clazz, gFields.arraylist.init);
     List<Vector<uint8_t> >::iterator iter = list.begin();
     while (iter != list.end()) {
@@ -542,6 +554,11 @@
     GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_RELEASE", "I");
     gKeyTypes.kKeyTypeRelease = env->GetStaticIntField(clazz, field);
 
+    GET_STATIC_FIELD_ID(field, clazz, "CERTIFICATE_TYPE_NONE", "I");
+    gCertificateTypes.kCertificateTypeNone = env->GetStaticIntField(clazz, field);
+    GET_STATIC_FIELD_ID(field, clazz, "CERTIFICATE_TYPE_X509", "I");
+    gCertificateTypes.kCertificateTypeX509 = env->GetStaticIntField(clazz, field);
+
     FIND_CLASS(clazz, "android/media/MediaDrm$KeyRequest");
     GET_FIELD_ID(gFields.keyRequest.data, clazz, "mData", "[B");
     GET_FIELD_ID(gFields.keyRequest.defaultUrl, clazz, "mDefaultUrl", "Ljava/lang/String;");
@@ -550,6 +567,11 @@
     GET_FIELD_ID(gFields.provisionRequest.data, clazz, "mData", "[B");
     GET_FIELD_ID(gFields.provisionRequest.defaultUrl, clazz, "mDefaultUrl", "Ljava/lang/String;");
 
+    FIND_CLASS(clazz, "android/media/MediaDrm$Certificate");
+    GET_FIELD_ID(gFields.certificate.wrappedPrivateKey, clazz, "mWrappedKey", "[B");
+    GET_FIELD_ID(gFields.certificate.certificateData, clazz, "mCertificateData", "[B");
+    gFields.certificateClassId = static_cast<jclass>(env->NewGlobalRef(clazz));
+
     FIND_CLASS(clazz, "java/util/ArrayList");
     GET_METHOD_ID(gFields.arraylist.init, clazz, "<init>", "()V");
     GET_METHOD_ID(gFields.arraylist.add, clazz, "add", "(Ljava/lang/Object;)Z");
@@ -571,6 +593,15 @@
     FIND_CLASS(clazz, "java/util/Map$Entry");
     GET_METHOD_ID(gFields.entry.getKey, clazz, "getKey", "()Ljava/lang/Object;");
     GET_METHOD_ID(gFields.entry.getValue, clazz, "getValue", "()Ljava/lang/Object;");
+
+    FIND_CLASS(clazz, "java/util/HashMap");
+    gFields.hashmapClassId = static_cast<jclass>(env->NewGlobalRef(clazz));
+
+    FIND_CLASS(clazz, "java/lang/String");
+    gFields.stringClassId = static_cast<jclass>(env->NewGlobalRef(clazz));
+
+    FIND_CLASS(clazz, "java/util/ArrayList");
+    gFields.arraylistClassId = static_cast<jclass>(env->NewGlobalRef(clazz));
 }
 
 static void android_media_MediaDrm_native_setup(
@@ -826,8 +857,8 @@
     return KeyedVectorToHashMap(env, infoMap);
 }
 
-static jobject android_media_MediaDrm_getProvisionRequest(
-    JNIEnv *env, jobject thiz) {
+static jobject android_media_MediaDrm_getProvisionRequestNative(
+    JNIEnv *env, jobject thiz, jint jcertType, jstring jcertAuthority) {
     sp<IDrm> drm = GetDrm(env, thiz);
 
     if (drm == NULL) {
@@ -839,7 +870,17 @@
     Vector<uint8_t> request;
     String8 defaultUrl;
 
-    status_t err = drm->getProvisionRequest(request, defaultUrl);
+    String8 certType;
+    if (jcertType == gCertificateTypes.kCertificateTypeX509) {
+        certType = "X.509";
+    } else if (jcertType == gCertificateTypes.kCertificateTypeNone) {
+        certType = "none";
+    } else {
+        certType = "invalid";
+    }
+
+    String8 certAuthority = JStringToString8(env, jcertAuthority);
+    status_t err = drm->getProvisionRequest(certType, certAuthority, request, defaultUrl);
 
     if (throwExceptionAsNecessary(env, err, "Failed to get provision request")) {
         return NULL;
@@ -863,27 +904,43 @@
     return provisionObj;
 }
 
-static void android_media_MediaDrm_provideProvisionResponse(
+static jobject android_media_MediaDrm_provideProvisionResponseNative(
     JNIEnv *env, jobject thiz, jbyteArray jresponse) {
     sp<IDrm> drm = GetDrm(env, thiz);
 
     if (drm == NULL) {
         jniThrowException(env, "java/lang/IllegalStateException",
                           "MediaDrm obj is null");
-        return;
+        return NULL;
     }
 
     if (jresponse == NULL) {
         jniThrowException(env, "java/lang/IllegalArgumentException",
                           "provision response is null");
-        return;
+        return NULL;
     }
 
     Vector<uint8_t> response(JByteArrayToVector(env, jresponse));
+    Vector<uint8_t> certificate, wrappedKey;
 
-    status_t err = drm->provideProvisionResponse(response);
+    status_t err = drm->provideProvisionResponse(response, certificate, wrappedKey);
+
+    // Fill out return obj
+    jclass clazz = gFields.certificateClassId;
+
+    jobject certificateObj = NULL;
+
+    if (clazz && certificate.size() && wrappedKey.size()) {
+        certificateObj = env->AllocObject(clazz);
+        jbyteArray jcertificate = VectorToJByteArray(env, certificate);
+        env->SetObjectField(certificateObj, gFields.certificate.certificateData, jcertificate);
+
+        jbyteArray jwrappedKey = VectorToJByteArray(env, wrappedKey);
+        env->SetObjectField(certificateObj, gFields.certificate.wrappedPrivateKey, jwrappedKey);
+    }
 
     throwExceptionAsNecessary(env, err, "Failed to handle provision response");
+    return certificateObj;
 }
 
 static jobject android_media_MediaDrm_getSecureStops(
@@ -1209,6 +1266,38 @@
 }
 
 
+static jbyteArray android_media_MediaDrm_signRSANative(
+    JNIEnv *env, jobject thiz, jobject jdrm, jbyteArray jsessionId,
+    jstring jalgorithm, jbyteArray jwrappedKey, jbyteArray jmessage) {
+
+    sp<IDrm> drm = GetDrm(env, jdrm);
+
+    if (!CheckSession(env, drm, jsessionId)) {
+        return NULL;
+    }
+
+    if (jalgorithm == NULL || jwrappedKey == NULL || jmessage == NULL) {
+        jniThrowException(env, "java/lang/IllegalArgumentException",
+                          "required argument is null");
+        return NULL;
+    }
+
+    Vector<uint8_t> sessionId(JByteArrayToVector(env, jsessionId));
+    String8 algorithm = JStringToString8(env, jalgorithm);
+    Vector<uint8_t> wrappedKey(JByteArrayToVector(env, jwrappedKey));
+    Vector<uint8_t> message(JByteArrayToVector(env, jmessage));
+    Vector<uint8_t> signature;
+
+    status_t err = drm->signRSA(sessionId, algorithm, message, wrappedKey, signature);
+
+    if (throwExceptionAsNecessary(env, err, "Failed to sign")) {
+        return NULL;
+    }
+
+    return VectorToJByteArray(env, signature);
+}
+
+
 static JNINativeMethod gMethods[] = {
     { "release", "()V", (void *)android_media_MediaDrm_release },
     { "native_init", "()V", (void *)android_media_MediaDrm_native_init },
@@ -1244,11 +1333,11 @@
     { "queryKeyStatus", "([B)Ljava/util/HashMap;",
       (void *)android_media_MediaDrm_queryKeyStatus },
 
-    { "getProvisionRequest", "()Landroid/media/MediaDrm$ProvisionRequest;",
-      (void *)android_media_MediaDrm_getProvisionRequest },
+    { "getProvisionRequestNative", "(ILjava/lang/String;)Landroid/media/MediaDrm$ProvisionRequest;",
+      (void *)android_media_MediaDrm_getProvisionRequestNative },
 
-    { "provideProvisionResponse", "([B)V",
-      (void *)android_media_MediaDrm_provideProvisionResponse },
+    { "provideProvisionResponseNative", "([B)Landroid/media/MediaDrm$Certificate;",
+      (void *)android_media_MediaDrm_provideProvisionResponseNative },
 
     { "getSecureStops", "()Ljava/util/List;",
       (void *)android_media_MediaDrm_getSecureStops },
@@ -1287,6 +1376,9 @@
 
     { "verifyNative", "(Landroid/media/MediaDrm;[B[B[B[B)Z",
       (void *)android_media_MediaDrm_verifyNative },
+
+    { "signRSANative", "(Landroid/media/MediaDrm;[BLjava/lang/String;[B[B)[B",
+      (void *)android_media_MediaDrm_signRSANative },
 };
 
 int register_android_media_Drm(JNIEnv *env) {
diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp
index a78f16d..3dbf77b 100644
--- a/media/jni/android_media_MediaExtractor.cpp
+++ b/media/jni/android_media_MediaExtractor.cpp
@@ -87,7 +87,7 @@
         jbyteArray byteArrayObj = env->NewByteArray(size);
         env->DeleteLocalRef(env->GetObjectClass(mDataSource));
         env->DeleteLocalRef(env->GetObjectClass(byteArrayObj));
-        ssize_t numread = env->CallIntMethod(mDataSource, mReadMethod, offset, byteArrayObj, size);
+        ssize_t numread = env->CallIntMethod(mDataSource, mReadMethod, offset, byteArrayObj, (jint)size);
         env->GetByteArrayRegion(byteArrayObj, 0, size, (jbyte*) buffer);
         env->DeleteLocalRef(byteArrayObj);
         if (env->ExceptionCheck()) {
@@ -632,7 +632,7 @@
     env->CallVoidMethod(
             cryptoInfoObj,
             gFields.cryptoInfoSetID,
-            numSubSamples,
+            (jint)numSubSamples,
             numBytesOfPlainDataObj,
             numBytesOfEncryptedDataObj,
             keyObj,
diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp
index 058012b..c0f6a95 100644
--- a/media/jni/mediaeditor/VideoEditorMain.cpp
+++ b/media/jni/mediaeditor/VideoEditorMain.cpp
@@ -24,7 +24,6 @@
 #include <VideoEditorJava.h>
 #include <VideoEditorOsal.h>
 #include <VideoEditorLogging.h>
-#include <marker.h>
 #include <VideoEditorClasses.h>
 #include <VideoEditorThumbnailMain.h>
 #include <M4OSA_Debug.h>
@@ -438,7 +437,7 @@
                                     M4VS, (M4OSA_Char*)"videoEdito JNI overlayFile");
             if (pContext->mOverlayFileName != NULL) {
                 strncpy (pContext->mOverlayFileName,
-                    (const char*)pContext->pEditSettings->\
+                    (const char*)pContext->pEditSettings->
                     Effects[overlayEffectIndex].xVSS.pFramingFilePath, overlayFileNameLen);
                 //Change the name to png file
                 extPos = strstr(pContext->mOverlayFileName, ".rgb");
@@ -1560,9 +1559,6 @@
     int *pOverlayIndex = M4OSA_NULL;
     M4OSA_Char* pTempChar = M4OSA_NULL;
 
-    // Add a code marker (the condition must always be true).
-    ADD_CODE_MARKER_FUN(NULL != pEnv)
-
     // Validate the settings parameter.
     videoEditJava_checkAndThrowIllegalArgumentException(&needToBeLoaded, pEnv,
                                                 (NULL == settings),
@@ -2196,10 +2192,6 @@
     M4OSA_Context   mContext = M4OSA_NULL;
     jint*           m_dst32 = M4OSA_NULL;
 
-
-    // Add a text marker (the condition must always be true).
-    ADD_TEXT_MARKER_FUN(NULL != env)
-
     const char *pString = env->GetStringUTFChars(path, NULL);
     if (pString == M4OSA_NULL) {
         if (env != NULL) {
@@ -2537,9 +2529,6 @@
 
     VIDEOEDIT_LOG_API(ANDROID_LOG_INFO, "VIDEO_EDITOR", "videoEditor_init()");
 
-    // Add a text marker (the condition must always be true).
-    ADD_TEXT_MARKER_FUN(NULL != pEnv)
-
     // Get the context.
     pContext = (ManualEditContext*)videoEditClasses_getContext(&initialized, pEnv, thiz);
 
@@ -2948,9 +2937,6 @@
 
     VIDEOEDIT_LOG_API(ANDROID_LOG_INFO, "VIDEO_EDITOR", "videoEditor_loadSettings()");
 
-    // Add a code marker (the condition must always be true).
-    ADD_CODE_MARKER_FUN(NULL != pEnv)
-
     // Get the context.
     pContext = (ManualEditContext*)videoEditClasses_getContext(&needToBeLoaded,
                                                                 pEnv, thiz);
@@ -3123,9 +3109,6 @@
 
     VIDEOEDIT_LOG_API(ANDROID_LOG_INFO, "VIDEO_EDITOR", "videoEditor_release()");
 
-    // Add a text marker (the condition must always be true).
-    ADD_TEXT_MARKER_FUN(NULL != pEnv)
-
     // Get the context.
     pContext = (ManualEditContext*)videoEditClasses_getContext(&released, pEnv, thiz);
 
@@ -3633,15 +3616,9 @@
 
     VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR", "JNI_OnLoad()");
 
-    // Add a text marker (the condition must always be true).
-    ADD_TEXT_MARKER_FUN(NULL != pVm)
-
     // Check the JNI version.
     if (pVm->GetEnv(&pEnv, JNI_VERSION_1_4) == JNI_OK)
     {
-        // Add a code marker (the condition must always be true).
-        ADD_CODE_MARKER_FUN(NULL != pEnv)
-
         // Register the manual edit JNI methods.
         if (videoEditor_registerManualEditMethods((JNIEnv*)pEnv) == 0)
         {
diff --git a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
index 2f8e357..ae1a80e 100644
--- a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
+++ b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
@@ -26,7 +26,6 @@
 #include <VideoEditorOsal.h>
 #include <VideoEditorLogging.h>
 #include <VideoEditorOsal.h>
-#include <marker.h>
 
 extern "C" {
 #include <M4OSA_Clock.h>
@@ -107,9 +106,6 @@
             ANDROID_LOG_INFO, "VIDEO_EDITOR_PROPERTIES",
             "videoEditProp_getProperties()");
 
-    // Add a text marker (the condition must always be true).
-    ADD_TEXT_MARKER_FUN(NULL != pEnv)
-
     // Initialize the classes.
     videoEditPropClass_init(&initialized, (JNIEnv*)pEnv);
 
@@ -192,9 +188,6 @@
             // dereferencing of pClipProperties).
             if (gotten)
             {
-                // Add a code marker (the condition must always be true).
-                ADD_CODE_MARKER_FUN(NULL != pClipProperties)
-
                 // Log the API call.
                 VIDEOEDIT_LOG_API(
                         ANDROID_LOG_INFO, "VIDEO_EDITOR_PROPERTIES",
@@ -316,9 +309,6 @@
     videoEditOsal_free(pFile);
     pFile = M4OSA_NULL;
 
-    // Add a text marker (the condition must always be true).
-    ADD_TEXT_MARKER_FUN(NULL != pEnv)
-
     // Return the Properties object.
     return(properties);
 }
diff --git a/media/lib/Android.mk b/media/lib/Android.mk
deleted file mode 100644
index 50799a6..0000000
--- a/media/lib/Android.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Copyright (C) 2013 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)
-
-# the library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE:= com.android.media.remotedisplay
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := \
-            $(call all-subdir-java-files) \
-            $(call all-aidl-files-under, java)
-
-include $(BUILD_JAVA_LIBRARY)
-
-
-# ====  com.android.media.remotedisplay.xml lib def  ========================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := com.android.media.remotedisplay.xml
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE_CLASS := ETC
-
-# This will install the file in /system/etc/permissions
-#
-LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
-
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-
-include $(BUILD_PREBUILT)
diff --git a/media/lib/README.txt b/media/lib/README.txt
deleted file mode 100644
index cade3df..0000000
--- a/media/lib/README.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-This library (com.android.media.remotedisplay.jar) is a shared java library
-containing classes required by unbundled remote display providers.
-
---- Rules of this library ---
-o This library is effectively a PUBLIC API for unbundled remote display providers
-  that may be distributed outside the system image. So it MUST BE API STABLE.
-  You can add but not remove. The rules are the same as for the
-  public platform SDK API.
-o This library can see and instantiate internal platform classes, but it must not
-  expose them in any public method (or by extending them via inheritance). This would
-  break clients of the library because they cannot see the internal platform classes.
-
-This library is distributed in the system image, and loaded as
-a shared library. So you can change the implementation, but not
-the interface. In this way it is like framework.jar.
-
---- Why does this library exists? ---
-
-Unbundled remote display providers (such as Cast) cannot use internal
-platform classes.
-
-This library will eventually be replaced when the media route provider
-infrastructure that is currently defined in the support library is reintegrated
-with the framework in a new API.  That API isn't ready yet so this
-library is a compromise to make new capabilities available to the system
-without exposing the full surface area of the support library media
-route provider protocol.
-
diff --git a/media/lib/remotedisplay/Android.mk b/media/lib/remotedisplay/Android.mk
new file mode 100644
index 0000000..ea1ac2b
--- /dev/null
+++ b/media/lib/remotedisplay/Android.mk
@@ -0,0 +1,46 @@
+#
+# Copyright (C) 2013 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)
+
+# the remotedisplay library
+# ============================================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE:= com.android.media.remotedisplay
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := \
+            $(call all-java-files-under, java) \
+            $(call all-aidl-files-under, java)
+
+include $(BUILD_JAVA_LIBRARY)
+
+
+# ====  com.android.media.remotedisplay.xml lib def  ========================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := com.android.media.remotedisplay.xml
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_CLASS := ETC
+
+# This will install the file in /system/etc/permissions
+#
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
+
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+
+include $(BUILD_PREBUILT)
diff --git a/media/lib/remotedisplay/README.txt b/media/lib/remotedisplay/README.txt
new file mode 100644
index 0000000..5738dbe
--- /dev/null
+++ b/media/lib/remotedisplay/README.txt
@@ -0,0 +1,27 @@
+This library (com.android.media.remotedisplay.jar) is a shared java library
+containing classes required by unbundled remote display providers.
+
+--- Rules of this library ---
+o This library is effectively a PUBLIC API for unbundled remote display providers
+  that may be distributed outside the system image. So it MUST BE API STABLE.
+  You can add but not remove. The rules are the same as for the
+  public platform SDK API.
+o This library can see and instantiate internal platform classes, but it must not
+  expose them in any public method (or by extending them via inheritance). This would
+  break clients of the library because they cannot see the internal platform classes.
+
+This library is distributed in the system image, and loaded as
+a shared library. So you can change the implementation, but not
+the interface. In this way it is like framework.jar.
+
+--- Why does this library exists? ---
+
+Unbundled remote display providers (such as Cast) cannot use internal
+platform classes.
+
+This library will eventually be replaced when the media route provider
+infrastructure that is currently defined in the support library is reintegrated
+with the framework in a new API.  That API isn't ready yet so this
+library is a compromise to make new capabilities available to the system
+without exposing the full surface area of the support library media
+route provider protocol.
diff --git a/media/lib/com.android.media.remotedisplay.xml b/media/lib/remotedisplay/com.android.media.remotedisplay.xml
similarity index 100%
rename from media/lib/com.android.media.remotedisplay.xml
rename to media/lib/remotedisplay/com.android.media.remotedisplay.xml
diff --git a/media/lib/java/com/android/media/remotedisplay/RemoteDisplay.java b/media/lib/remotedisplay/java/com/android/media/remotedisplay/RemoteDisplay.java
similarity index 100%
rename from media/lib/java/com/android/media/remotedisplay/RemoteDisplay.java
rename to media/lib/remotedisplay/java/com/android/media/remotedisplay/RemoteDisplay.java
diff --git a/media/lib/java/com/android/media/remotedisplay/RemoteDisplayProvider.java b/media/lib/remotedisplay/java/com/android/media/remotedisplay/RemoteDisplayProvider.java
similarity index 100%
rename from media/lib/java/com/android/media/remotedisplay/RemoteDisplayProvider.java
rename to media/lib/remotedisplay/java/com/android/media/remotedisplay/RemoteDisplayProvider.java
diff --git a/media/lib/signer/Android.mk b/media/lib/signer/Android.mk
new file mode 100644
index 0000000..4c3772f
--- /dev/null
+++ b/media/lib/signer/Android.mk
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2013 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)
+
+# the mediadrm signer library
+# ============================================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE:= com.android.mediadrm.signer
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := \
+            $(call all-java-files-under, java)
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+# ====  com.android.mediadrm.signer.xml lib def  ========================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := com.android.mediadrm.signer.xml
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_CLASS := ETC
+
+# This will install the file in /system/etc/permissions
+#
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
+
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+
+include $(BUILD_PREBUILT)
diff --git a/media/lib/signer/README.txt b/media/lib/signer/README.txt
new file mode 100644
index 0000000..362ab8e
--- /dev/null
+++ b/media/lib/signer/README.txt
@@ -0,0 +1,28 @@
+This library (com.android.mediadrm.signer.jar) is a shared java library
+containing classes required by unbundled apps running on devices that use
+the certficate provisioning and private key signing capabilities provided
+by the MediaDrm API.
+
+--- Rules of this library ---
+o This library is effectively a PUBLIC API for unbundled CAST receivers
+  that may be distributed outside the system image. So it MUST BE API STABLE.
+  You can add but not remove. The rules are the same as for the
+  public platform SDK API.
+o This library can see and instantiate internal platform classes, but it must not
+  expose them in any public method (or by extending them via inheritance). This would
+  break clients of the library because they cannot see the internal platform classes.
+
+This library is distributed in the system image, and loaded as
+a shared library. So you can change the implementation, but not
+the interface. In this way it is like framework.jar.
+
+--- Why does this library exist? ---
+
+Unbundled apps cannot use internal platform classes.
+
+This library will eventually be replaced when the provisioned certificate-
+based signing infrastructure that is currently defined in the support library
+is reintegrated with the framework in a new API.  That API isn't ready yet so
+this library is a compromise to make new capabilities available to the system
+without exposing the full surface area of the support library.
+
diff --git a/media/lib/signer/com.android.mediadrm.signer.xml b/media/lib/signer/com.android.mediadrm.signer.xml
new file mode 100644
index 0000000..b5b1f09
--- /dev/null
+++ b/media/lib/signer/com.android.mediadrm.signer.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 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.
+-->
+
+<permissions>
+    <library name="com.android.media.drm.signer"
+            file="/system/framework/com.android.media.drm.signer.jar" />
+</permissions>
diff --git a/media/lib/signer/java/com/android/mediadrm/signer/MediaDrmSigner.java b/media/lib/signer/java/com/android/mediadrm/signer/MediaDrmSigner.java
new file mode 100644
index 0000000..0a2897f
--- /dev/null
+++ b/media/lib/signer/java/com/android/mediadrm/signer/MediaDrmSigner.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2013 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.android.mediadrm.signer;
+
+import android.media.MediaDrm;
+import android.media.DeniedByServerException;
+
+/**
+ * Provides certificate request generation, response handling and
+ * signing APIs
+ */
+public final class MediaDrmSigner {
+    private MediaDrmSigner() {}
+
+    /**
+     * Specify X.509 certificate type
+     */
+    public static final int CERTIFICATE_TYPE_X509 = MediaDrm.CERTIFICATE_TYPE_X509;
+
+    /**
+     * Contains the opaque data an app uses to request a certificate from a provisioning
+     * server
+     */
+    public final static class CertificateRequest {
+        private final MediaDrm.CertificateRequest mCertRequest;
+
+        CertificateRequest(MediaDrm.CertificateRequest certRequest) {
+            mCertRequest = certRequest;
+        }
+
+        /**
+         * Get the opaque message data
+         */
+        public byte[] getData() {
+            return mCertRequest.getData();
+        }
+
+        /**
+         * Get the default URL to use when sending the certificate request
+         * message to a server, if known. The app may prefer to use a different
+         * certificate server URL obtained from other sources.
+         */
+        public String getDefaultUrl() {
+            return mCertRequest.getDefaultUrl();
+        }
+    }
+
+    /**
+     * Contains the wrapped private key and public certificate data associated
+     * with a certificate.
+     */
+    public final static class Certificate {
+        private final MediaDrm.Certificate mCertificate;
+
+        Certificate(MediaDrm.Certificate certificate) {
+            mCertificate = certificate;
+        }
+
+        /**
+         * Get the wrapped private key data
+         */
+        public byte[] getWrappedPrivateKey() {
+            return mCertificate.getWrappedPrivateKey();
+        }
+
+        /**
+         * Get the PEM-encoded public certificate chain
+         */
+        public byte[] getContent() {
+            return mCertificate.getContent();
+        }
+    }
+
+    /**
+     * Generate a certificate request, specifying the certificate type
+     * and authority. The response received should be passed to
+     * provideCertificateResponse.
+     *
+     * @param drm the MediaDrm object
+     * @param certType Specifies the certificate type.
+     * @param certAuthority is passed to the certificate server to specify
+     * the chain of authority.
+     */
+    public static CertificateRequest getCertificateRequest(MediaDrm drm, int certType,
+            String certAuthority) {
+        return new CertificateRequest(drm.getCertificateRequest(certType, certAuthority));
+    }
+
+    /**
+     * Process a response from the provisioning server.  The response
+     * is obtained from an HTTP Post to the url provided by getCertificateRequest.
+     *
+     * The public X509 certificate chain and wrapped private key are returned
+     * in the returned Certificate objec.  The certificate chain is in BIO serialized
+     * PEM format.  The wrapped private key should be stored in application private
+     * storage, and used when invoking the signRSA method.
+     *
+     * @param drm the MediaDrm object
+     * @param response the opaque certificate response byte array to provide to the
+     * DRM engine plugin.
+     * @throws android.media.DeniedByServerException if the response indicates that the
+     * server rejected the request
+     */
+    public static Certificate provideCertificateResponse(MediaDrm drm, byte[] response)
+            throws DeniedByServerException {
+        return new Certificate(drm.provideCertificateResponse(response));
+    }
+
+    /**
+     * Sign data using an RSA key
+     *
+     * @param drm the MediaDrm object
+     * @param sessionId a sessionId obtained from openSession on the MediaDrm object
+     * @param algorithm the signing algorithm to use, e.g. "PKCS1-BlockType1"
+     * @param wrappedKey - the wrapped (encrypted) RSA private key obtained
+     * from provideCertificateResponse
+     * @param message the data for which a signature is to be computed
+     */
+    public static byte[] signRSA(MediaDrm drm, byte[] sessionId,
+            String algorithm, byte[] wrappedKey, byte[] message) {
+        return drm.signRSA(sessionId, algorithm, wrappedKey, message);
+    }
+}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
index d157478..89886ef 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
@@ -23,6 +23,7 @@
 import android.hardware.IProCameraCallbacks;
 import android.hardware.IProCameraUser;
 import android.hardware.camera2.CameraMetadata;
+import android.hardware.camera2.CaptureResultExtras;
 import android.hardware.camera2.ICameraDeviceCallbacks;
 import android.hardware.camera2.ICameraDeviceUser;
 import android.hardware.camera2.impl.CameraMetadataNative;
@@ -151,21 +152,50 @@
 
     static class DummyCameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
 
-        @Override
-        public void onCameraError(int errorCode) {
-        }
-
-        @Override
-        public void onCameraIdle() {
-        }
-
-        @Override
-        public void onCaptureStarted(int requestId, long timestamp) {
-        }
-
-        @Override
-        public void onResultReceived(int frameId, CameraMetadataNative result)
+        /*
+         * (non-Javadoc)
+         * @see
+         * android.hardware.camera2.ICameraDeviceCallbacks#onCameraError(int,
+         * android.hardware.camera2.CaptureResultExtras)
+         */
+        public void onCameraError(int errorCode, CaptureResultExtras resultExtras)
                 throws RemoteException {
+            // TODO Auto-generated method stub
+
+        }
+
+        /*
+         * (non-Javadoc)
+         * @see
+         * android.hardware.camera2.ICameraDeviceCallbacks#onCaptureStarted(
+         * android.hardware.camera2.CaptureResultExtras, long)
+         */
+        public void onCaptureStarted(CaptureResultExtras resultExtras, long timestamp)
+                throws RemoteException {
+            // TODO Auto-generated method stub
+
+        }
+
+        /*
+         * (non-Javadoc)
+         * @see
+         * android.hardware.camera2.ICameraDeviceCallbacks#onResultReceived(
+         * android.hardware.camera2.impl.CameraMetadataNative,
+         * android.hardware.camera2.CaptureResultExtras)
+         */
+        public void onResultReceived(CameraMetadataNative result, CaptureResultExtras resultExtras)
+                throws RemoteException {
+            // TODO Auto-generated method stub
+
+        }
+
+        /*
+         * (non-Javadoc)
+         * @see android.hardware.camera2.ICameraDeviceCallbacks#onCameraIdle()
+         */
+        public void onCameraIdle() throws RemoteException {
+            // TODO Auto-generated method stub
+
         }
     }
 
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
index 43ebef4..74ce997 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
@@ -21,6 +21,7 @@
 import android.hardware.camera2.CameraMetadata;
 import android.hardware.camera2.CameraCharacteristics;
 import android.hardware.camera2.CaptureRequest;
+import android.hardware.camera2.CaptureResultExtras;
 import android.hardware.camera2.ICameraDeviceCallbacks;
 import android.hardware.camera2.ICameraDeviceUser;
 import android.hardware.camera2.impl.CameraMetadataNative;
@@ -84,20 +85,50 @@
 
     public class DummyCameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
 
-        @Override
-        public void onCameraError(int errorCode) {
+        /*
+         * (non-Javadoc)
+         * @see
+         * android.hardware.camera2.ICameraDeviceCallbacks#onCameraError(int,
+         * android.hardware.camera2.CaptureResultExtras)
+         */
+        public void onCameraError(int errorCode, CaptureResultExtras resultExtras)
+                throws RemoteException {
+            // TODO Auto-generated method stub
+
         }
 
-        @Override
-        public void onCameraIdle() {
+        /*
+         * (non-Javadoc)
+         * @see android.hardware.camera2.ICameraDeviceCallbacks#onCameraIdle()
+         */
+        public void onCameraIdle() throws RemoteException {
+            // TODO Auto-generated method stub
+
         }
 
-        @Override
-        public void onCaptureStarted(int requestId, long timestamp) {
+        /*
+         * (non-Javadoc)
+         * @see
+         * android.hardware.camera2.ICameraDeviceCallbacks#onCaptureStarted(
+         * android.hardware.camera2.CaptureResultExtras, long)
+         */
+        public void onCaptureStarted(CaptureResultExtras resultExtras, long timestamp)
+                throws RemoteException {
+            // TODO Auto-generated method stub
+
         }
 
-        @Override
-        public void onResultReceived(int frameId, CameraMetadataNative result) {
+        /*
+         * (non-Javadoc)
+         * @see
+         * android.hardware.camera2.ICameraDeviceCallbacks#onResultReceived(
+         * android.hardware.camera2.impl.CameraMetadataNative,
+         * android.hardware.camera2.CaptureResultExtras)
+         */
+        public void onResultReceived(CameraMetadataNative result, CaptureResultExtras resultExtras)
+                throws RemoteException {
+            // TODO Auto-generated method stub
+
         }
     }
 
@@ -139,8 +170,10 @@
     }
 
     private int submitCameraRequest(CaptureRequest request, boolean streaming) throws Exception {
-        int requestId = mCameraUser.submitRequest(request, streaming);
-        assertTrue("Request IDs should be non-negative", requestId >= 0);
+        int requestId = mCameraUser.submitRequest(request, streaming, null);
+        assertTrue(
+                "Request IDs should be non-negative (expected: >= 0, actual: " + requestId + ")",
+                requestId >= 0);
         return requestId;
     }
 
@@ -250,13 +283,13 @@
 
         CaptureRequest.Builder builder = createDefaultBuilder(/* needStream */false);
         CaptureRequest request1 = builder.build();
-        int status = mCameraUser.submitRequest(request1, /* streaming */false);
+        int status = mCameraUser.submitRequest(request1, /* streaming */false, null);
         assertEquals("Expected submitRequest to return BAD_VALUE " +
                 "since we had 0 surface targets set.", CameraBinderTestUtils.BAD_VALUE, status);
 
         builder.addTarget(mSurface);
         CaptureRequest request2 = builder.build();
-        status = mCameraUser.submitRequest(request2, /* streaming */false);
+        status = mCameraUser.submitRequest(request2, /* streaming */false, null);
         assertEquals("Expected submitRequest to return BAD_VALUE since " +
                 "the target surface wasn't registered with createStream.",
                 CameraBinderTestUtils.BAD_VALUE, status);
@@ -290,15 +323,15 @@
         assertNotSame("Request IDs should be unique for multiple requests", requestId1,
                 requestIdStreaming);
 
-        int status = mCameraUser.cancelRequest(-1);
+        int status = mCameraUser.cancelRequest(-1, null);
         assertEquals("Invalid request IDs should not be cancellable",
                 CameraBinderTestUtils.BAD_VALUE, status);
 
-        status = mCameraUser.cancelRequest(requestId1);
+        status = mCameraUser.cancelRequest(requestId1, null);
         assertEquals("Non-streaming request IDs should not be cancellable",
                 CameraBinderTestUtils.BAD_VALUE, status);
 
-        status = mCameraUser.cancelRequest(requestIdStreaming);
+        status = mCameraUser.cancelRequest(requestIdStreaming, null);
         assertEquals("Streaming request IDs should be cancellable", CameraBinderTestUtils.NO_ERROR,
                 status);
 
@@ -337,7 +370,7 @@
             CameraBinderTestUtils.INVALID_OPERATION, status);
 
         // Test good case, waitUntilIdle when there is no active repeating request
-        status = mCameraUser.cancelRequest(requestIdStreaming);
+        status = mCameraUser.cancelRequest(requestIdStreaming, null);
         assertEquals(CameraBinderTestUtils.NO_ERROR, status);
         status = mCameraUser.waitUntilIdle();
         assertEquals(CameraBinderTestUtils.NO_ERROR, status);
@@ -349,16 +382,14 @@
         CaptureRequest request = createDefaultBuilder(/* needStream */true).build();
 
         // Test both single request and streaming request.
-        int requestId1 = submitCameraRequest(request, /* streaming */false);
         verify(mMockCb, timeout(WAIT_FOR_COMPLETE_TIMEOUT_MS).times(1)).onResultReceived(
-                eq(requestId1),
-                argThat(matcher));
+                argThat(matcher),
+                any(CaptureResultExtras.class));
 
-        int streamingId = submitCameraRequest(request, /* streaming */true);
         verify(mMockCb, timeout(WAIT_FOR_COMPLETE_TIMEOUT_MS).atLeast(NUM_CALLBACKS_CHECKED))
                 .onResultReceived(
-                        eq(streamingId),
-                        argThat(matcher));
+                        argThat(matcher),
+                        any(CaptureResultExtras.class));
     }
 
     @SmallTest
@@ -370,13 +401,13 @@
         // Test both single request and streaming request.
         int requestId1 = submitCameraRequest(request, /* streaming */false);
         verify(mMockCb, timeout(WAIT_FOR_COMPLETE_TIMEOUT_MS).times(1)).onCaptureStarted(
-                eq(requestId1),
+                any(CaptureResultExtras.class),
                 anyLong());
 
         int streamingId = submitCameraRequest(request, /* streaming */true);
         verify(mMockCb, timeout(WAIT_FOR_COMPLETE_TIMEOUT_MS).atLeast(NUM_CALLBACKS_CHECKED))
                 .onCaptureStarted(
-                        eq(streamingId),
+                        any(CaptureResultExtras.class),
                         timestamps.capture());
 
         long timestamp = 0; // All timestamps should be larger than 0.
@@ -399,7 +430,7 @@
         SystemClock.sleep(WAIT_FOR_WORK_MS);
 
         // Cancel and make sure we eventually quiesce
-        status = mCameraUser.cancelRequest(streamingId);
+        status = mCameraUser.cancelRequest(streamingId, null);
 
         verify(mMockCb, timeout(WAIT_FOR_IDLE_TIMEOUT_MS).times(1)).onCameraIdle();
 
@@ -420,14 +451,14 @@
         int status;
 
         // Initial flush should work
-        status = mCameraUser.flush();
+        status = mCameraUser.flush(null);
         assertEquals(CameraBinderTestUtils.NO_ERROR, status);
 
         // Then set up a stream
         CaptureRequest request = createDefaultBuilder(/* needStream */true).build();
 
         // Flush should still be a no-op, really
-        status = mCameraUser.flush();
+        status = mCameraUser.flush(null);
         assertEquals(CameraBinderTestUtils.NO_ERROR, status);
 
         // Submit a few capture requests
@@ -438,7 +469,7 @@
         int requestId5 = submitCameraRequest(request, /* streaming */false);
 
         // Then flush and wait for idle
-        status = mCameraUser.flush();
+        status = mCameraUser.flush(null);
         assertEquals(CameraBinderTestUtils.NO_ERROR, status);
 
         verify(mMockCb, timeout(WAIT_FOR_FLUSH_TIMEOUT_MS).times(1)).onCameraIdle();
@@ -450,7 +481,7 @@
         SystemClock.sleep(WAIT_FOR_WORK_MS);
 
         // Then flush and wait for the idle callback
-        status = mCameraUser.flush();
+        status = mCameraUser.flush(null);
         assertEquals(CameraBinderTestUtils.NO_ERROR, status);
 
         verify(mMockCb, timeout(WAIT_FOR_FLUSH_TIMEOUT_MS).times(2)).onCameraIdle();
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java
index 3f17aa9..edfa36a 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java
@@ -309,7 +309,7 @@
                 });
 
         // rational (n) -- in particular rational x 9
-        checkKeyGetAndSetArray("android.sensor.calibrationTransform1", Rational[].class,
+        checkKeyGetAndSetArray("android.sensor.calibrationTransform", Rational[].class,
                 new Rational[] {
                         new Rational(1, 2), new Rational(3, 4), new Rational(5, 6),
                         new Rational(7, 8), new Rational(9, 10), new Rational(10, 11),
@@ -552,29 +552,72 @@
         };
         int availableFormatTag = CameraMetadataNative.getTag("android.scaler.availableFormats");
 
-        // Write
-        mMetadata.set(CameraCharacteristics.SCALER_AVAILABLE_FORMATS, availableFormats);
+        Key<int[]> formatKey = CameraCharacteristics.SCALER_AVAILABLE_FORMATS;
 
-        byte[] availableFormatValues = mMetadata.readValues(availableFormatTag);
+        validateArrayMetadataReadWriteOverride(formatKey, availableFormats,
+                expectedIntValues, availableFormatTag);
 
-        ByteBuffer bf = ByteBuffer.wrap(availableFormatValues).order(ByteOrder.nativeOrder());
+        //
+        // android.scaler.availableStreamConfigurations (int x n x 4 array)
+        //
+        final int OUTPUT = CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT;
+        int[] availableStreamConfigs = new int[] {
+                0x20, 3280, 2464, OUTPUT, // RAW16
+                0x23, 3264, 2448, OUTPUT, // YCbCr_420_888
+                0x23, 3200, 2400, OUTPUT, // YCbCr_420_888
+                0x100, 3264, 2448, OUTPUT, // ImageFormat.JPEG
+                0x100, 3200, 2400, OUTPUT, // ImageFormat.JPEG
+                0x100, 2592, 1944, OUTPUT, // ImageFormat.JPEG
+                0x100, 2048, 1536, OUTPUT, // ImageFormat.JPEG
+                0x100, 1920, 1080, OUTPUT  // ImageFormat.JPEG
+        };
+        int[] expectedAvailableStreamConfigs = new int[] {
+                0x20, 3280, 2464, OUTPUT, // RAW16
+                0x23, 3264, 2448, OUTPUT, // YCbCr_420_888
+                0x23, 3200, 2400, OUTPUT, // YCbCr_420_888
+                0x21, 3264, 2448, OUTPUT, // BLOB
+                0x21, 3200, 2400, OUTPUT, // BLOB
+                0x21, 2592, 1944, OUTPUT, // BLOB
+                0x21, 2048, 1536, OUTPUT, // BLOB
+                0x21, 1920, 1080, OUTPUT  // BLOB
+        };
+        int availableStreamConfigTag =
+                CameraMetadataNative.getTag("android.scaler.availableStreamConfigurations");
 
-        assertEquals(expectedIntValues.length * 4, availableFormatValues.length);
-        for (int i = 0; i < expectedIntValues.length; ++i) {
-            assertEquals(expectedIntValues[i], bf.getInt());
-        }
-        // Read
-        byte[] availableFormatsAsByteArray = new byte[expectedIntValues.length * 4];
-        ByteBuffer availableFormatsByteBuffer =
-                ByteBuffer.wrap(availableFormatsAsByteArray).order(ByteOrder.nativeOrder());
-        for (int value : expectedIntValues) {
-            availableFormatsByteBuffer.putInt(value);
-        }
-        mMetadata.writeValues(availableFormatTag, availableFormatsAsByteArray);
+        Key<int[]> configKey = CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS;
+        validateArrayMetadataReadWriteOverride(configKey, availableStreamConfigs,
+                expectedAvailableStreamConfigs, availableStreamConfigTag);
 
-        int[] resultFormats = mMetadata.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS);
-        assertNotNull("result available formats shouldn't be null", resultFormats);
-        assertArrayEquals(availableFormats, resultFormats);
+        //
+        // android.scaler.availableMinFrameDurations (int x n x 4 array)
+
+        //
+        long[] availableMinDurations = new long[] {
+                0x20, 3280, 2464, 33333336, // RAW16
+                0x23, 3264, 2448, 33333336, // YCbCr_420_888
+                0x23, 3200, 2400, 33333336, // YCbCr_420_888
+                0x100, 3264, 2448, 33333336, // ImageFormat.JPEG
+                0x100, 3200, 2400, 33333336, // ImageFormat.JPEG
+                0x100, 2592, 1944, 33333336, // ImageFormat.JPEG
+                0x100, 2048, 1536, 33333336, // ImageFormat.JPEG
+                0x100, 1920, 1080, 33333336  // ImageFormat.JPEG
+        };
+        long[] expectedAvailableMinDurations = new long[] {
+                0x20, 3280, 2464, 33333336, // RAW16
+                0x23, 3264, 2448, 33333336, // YCbCr_420_888
+                0x23, 3200, 2400, 33333336, // YCbCr_420_888
+                0x21, 3264, 2448, 33333336, // BLOB
+                0x21, 3200, 2400, 33333336, // BLOB
+                0x21, 2592, 1944, 33333336, // BLOB
+                0x21, 2048, 1536, 33333336, // BLOB
+                0x21, 1920, 1080, 33333336  // BLOB
+        };
+        int availableMinDurationsTag =
+                CameraMetadataNative.getTag("android.scaler.availableMinFrameDurations");
+
+        Key<long[]> durationKey = CameraCharacteristics.SCALER_AVAILABLE_MIN_FRAME_DURATIONS;
+        validateArrayMetadataReadWriteOverride(durationKey, availableMinDurations,
+                expectedAvailableMinDurations, availableMinDurationsTag);
 
         //
         // android.statistics.faces (Face x n array)
@@ -639,4 +682,59 @@
         }
 
     }
+
+    /**
+     * Validate metadata array tag read/write override.
+     *
+     * <p>Only support long and int array for now, can be easily extend to support other
+     * primitive arrays.</p>
+     */
+    private <T> void validateArrayMetadataReadWriteOverride(Key<T> key, T writeValues,
+            T readValues, int tag) {
+        Class<T> type = key.getType();
+        if (!type.isArray()) {
+            throw new IllegalArgumentException("This function expects an key with array type");
+        } else if (type != int[].class && type != long[].class) {
+            throw new IllegalArgumentException("This function expects long or int array values");
+        }
+
+        // Write
+        mMetadata.set(key, writeValues);
+
+        byte[] readOutValues = mMetadata.readValues(tag);
+
+        ByteBuffer bf = ByteBuffer.wrap(readOutValues).order(ByteOrder.nativeOrder());
+
+        int readValuesLength = Array.getLength(readValues);
+        int readValuesNumBytes = readValuesLength * 4;
+        if (type == long[].class) {
+            readValuesNumBytes = readValuesLength * 8;
+        }
+
+        assertEquals(readValuesNumBytes, readOutValues.length);
+        for (int i = 0; i < readValuesLength; ++i) {
+            if (type == int[].class) {
+                assertEquals(Array.getInt(readValues, i), bf.getInt());
+            } else if (type == long[].class) {
+                assertEquals(Array.getLong(readValues, i), bf.getLong());
+            }
+        }
+
+        // Read
+        byte[] readOutValuesAsByteArray = new byte[readValuesNumBytes];
+        ByteBuffer readOutValuesByteBuffer =
+                ByteBuffer.wrap(readOutValuesAsByteArray).order(ByteOrder.nativeOrder());
+        for (int i = 0; i < readValuesLength; ++i) {
+            if (type == int[].class) {
+                readOutValuesByteBuffer.putInt(Array.getInt(readValues, i));
+            } else if (type == long[].class) {
+                readOutValuesByteBuffer.putLong(Array.getLong(readValues, i));
+            }
+        }
+        mMetadata.writeValues(tag, readOutValuesAsByteArray);
+
+        T result = mMetadata.get(key);
+        assertNotNull(key.getName() + " result shouldn't be null", result);
+        assertArrayEquals(writeValues, result);
+    }
 }
diff --git a/media/tests/omxjpegdecoder/Android.mk b/media/tests/omxjpegdecoder/Android.mk
index 95ae33b..b0bc5d4 100644
--- a/media/tests/omxjpegdecoder/Android.mk
+++ b/media/tests/omxjpegdecoder/Android.mk
@@ -19,7 +19,6 @@
 LOCAL_SRC_FILES := \
         omx_jpeg_decoder.cpp \
         jpeg_decoder_bench.cpp \
-        SkOmxPixelRef.cpp \
         StreamSource.cpp
 
 LOCAL_SHARED_LIBRARIES := \
diff --git a/media/tests/omxjpegdecoder/SkOmxPixelRef.cpp b/media/tests/omxjpegdecoder/SkOmxPixelRef.cpp
deleted file mode 100644
index a25e854..0000000
--- a/media/tests/omxjpegdecoder/SkOmxPixelRef.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2009 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 <media/stagefright/foundation/ADebug.h>
-#include <SkBitmap.h>
-
-#include "SkOmxPixelRef.h"
-
-using namespace android;
-
-SkOmxPixelRef::SkOmxPixelRef(SkColorTable* ctable, MediaBuffer* buffer,
-        sp<MediaSource> decoder)  {
-    mBuffer = buffer;
-    mDecoder = decoder;
-    mSize = buffer->size();
-    mCTable = ctable;
-    SkSafeRef(mCTable);
-}
-
-SkOmxPixelRef::~SkOmxPixelRef() {
-    mBuffer->release();
-    CHECK_EQ(mDecoder->stop(), (status_t)OK);
-    SkSafeUnref(mCTable);
-}
-
-void* SkOmxPixelRef::onLockPixels(SkColorTable** ct) {
-    *ct = mCTable;
-    return mBuffer->data();
-}
-
-void SkOmxPixelRef::onUnlockPixels() {
-    // nothing to do
-}
diff --git a/media/tests/omxjpegdecoder/SkOmxPixelRef.h b/media/tests/omxjpegdecoder/SkOmxPixelRef.h
deleted file mode 100644
index 374604c..0000000
--- a/media/tests/omxjpegdecoder/SkOmxPixelRef.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2009 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 SKOMXPIXELREF_DEFINED
-#define SKOMXPIXELREF_DEFINED
-
-#include <media/stagefright/MediaBuffer.h>
-#include <media/stagefright/OMXClient.h>
-#include <media/stagefright/OMXCodec.h>
-#include <SkPixelRef.h>
-
-namespace android {
-
-class SkOmxPixelRef : public SkPixelRef {
-public:
-    SkOmxPixelRef(SkColorTable* ctable, MediaBuffer* buffer,
-            sp<MediaSource> decoder);
-    virtual ~SkOmxPixelRef();
-
-     //! Return the allocation size for the pixels
-    size_t getSize() const { return mSize; }
-
-    SK_DECLARE_UNFLATTENABLE_OBJECT()
-protected:
-    // overrides from SkPixelRef
-    virtual void* onLockPixels(SkColorTable**);
-    virtual void onUnlockPixels();
-
-private:
-    MediaBuffer* mBuffer;
-    sp<MediaSource> mDecoder;
-    size_t          mSize;
-    SkColorTable*   mCTable;
-
-    typedef SkPixelRef INHERITED;
-};
-
-} // namespace android
-#endif // SKOMXPIXELREF_DEFINED
diff --git a/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp b/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp
index 53f04bc..3dd988e 100644
--- a/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp
+++ b/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp
@@ -34,7 +34,6 @@
 #include <SkMallocPixelRef.h>
 
 #include "omx_jpeg_decoder.h"
-#include "SkOmxPixelRef.h"
 #include "StreamSource.h"
 
 using namespace android;
@@ -158,10 +157,6 @@
     printf("Duration in decoder->read(): %.1f (msecs). \n",
                 duration / 1E3 );
 
-    /* Mark the code for now, since we attend to copy buffer to SkBitmap.
-    // Install pixelRef to Bitmap.
-    installPixelRef(buffer, decoder, bm);*/
-
     // Copy pixels from buffer to bm.
     // May need to check buffer->rawBytes() == bm->rawBytes().
     CHECK_EQ(buffer->size(), bm->getSize());
@@ -172,17 +167,6 @@
     return true;
 }
 
-void OmxJpegImageDecoder::installPixelRef(MediaBuffer *buffer, sp<MediaSource> decoder,
-        SkBitmap* bm) {
-
-    // set bm's pixelref based on the data in buffer.
-    SkAutoLockPixels alp(*bm);
-    SkPixelRef* pr = new SkOmxPixelRef(NULL, buffer, decoder);
-    bm->setPixelRef(pr)->unref();
-    bm->lockPixels();
-    return;
-}
-
 void OmxJpegImageDecoder::configBitmapSize(SkBitmap* bm, SkBitmap::Config pref,
         int width, int height) {
     bm->setConfig(getColorSpaceConfig(pref), width, height, 0, kOpaque_SkAlphaType);
diff --git a/media/tests/omxjpegdecoder/omx_jpeg_decoder.h b/media/tests/omxjpegdecoder/omx_jpeg_decoder.h
index a313877..e431e72 100644
--- a/media/tests/omxjpegdecoder/omx_jpeg_decoder.h
+++ b/media/tests/omxjpegdecoder/omx_jpeg_decoder.h
@@ -49,8 +49,6 @@
     sp<MediaSource> getDecoder(OMXClient* client, const sp<MediaSource>& source);
     bool decodeSource(sp<MediaSource> decoder, const sp<MediaSource>& source,
             SkBitmap* bm);
-    void installPixelRef(MediaBuffer* buffer, sp<MediaSource> decoder,
-            SkBitmap* bm);
     void configBitmapSize(SkBitmap* bm, SkBitmap::Config pref, int width,
             int height);
     SkBitmap::Config getColorSpaceConfig(SkBitmap::Config pref);
diff --git a/native/android/sensor.cpp b/native/android/sensor.cpp
index 76c6eda..fb4de9e 100644
--- a/native/android/sensor.cpp
+++ b/native/android/sensor.cpp
@@ -153,3 +153,23 @@
 {
     return static_cast<Sensor const*>(sensor)->getMinDelay();
 }
+
+int ASensor_getFifoMaxEventCount(ASensor const* sensor)
+{
+    return static_cast<Sensor const*>(sensor)->getFifoMaxEventCount();
+}
+
+int ASensor_getFifoReservedEventCount(ASensor const* sensor)
+{
+    return static_cast<Sensor const*>(sensor)->getFifoReservedEventCount();
+}
+
+const char* ASensor_getStringType(ASensor const* sensor)
+{
+    return static_cast<Sensor const*>(sensor)->getStringType().string();
+}
+
+const char* ASensor_getRequiredPermission(ASensor const* sensor)
+{
+    return static_cast<Sensor const*>(sensor)->getRequiredPermission().string();
+}
diff --git a/packages/BackupRestoreConfirmation/AndroidManifest.xml b/packages/BackupRestoreConfirmation/AndroidManifest.xml
index 4fb26ae..8141fa7 100644
--- a/packages/BackupRestoreConfirmation/AndroidManifest.xml
+++ b/packages/BackupRestoreConfirmation/AndroidManifest.xml
@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-** Copyright 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.
+/*
+ * Copyright (c) 2014 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.
+ */
 -->
-
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.backupconfirm" >
 
diff --git a/packages/BackupRestoreConfirmation/res/values-sk/strings.xml b/packages/BackupRestoreConfirmation/res/values-sk/strings.xml
index 12f562b..21e21b5 100644
--- a/packages/BackupRestoreConfirmation/res/values-sk/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-sk/strings.xml
@@ -24,7 +24,7 @@
     <string name="restore_confirm_text" msgid="7499866728030461776">"Z pripojeného počítača bolo vyžiadané úplné obnovenie všetkých údajov. Chcete túto akciu povoliť?\n\nAk ste toto obnovenie nevyžiadali vy, túto operáciu nepovoľujte. Táto akcia nahradí všetky údaje v zariadení."</string>
     <string name="allow_restore_button_label" msgid="3081286752277127827">"Obnoviť údaje"</string>
     <string name="deny_restore_button_label" msgid="1724367334453104378">"Neobnoviť"</string>
-    <string name="current_password_text" msgid="8268189555578298067">"Zadajte svoje aktuálne heslo záloh nižšie:"</string>
+    <string name="current_password_text" msgid="8268189555578298067">"Zadajte svoje aktuálne heslo pre zálohu nižšie:"</string>
     <string name="device_encryption_restore_text" msgid="1570864916855208992">"Zadajte svoje heslo na šifrovanie zariadenia nižšie."</string>
     <string name="device_encryption_backup_text" msgid="5866590762672844664">"Zadajte svoje heslo na šifrovanie zariadenia nižšie. Bude tiež použité na šifrovanie archívu zálohy."</string>
     <string name="backup_enc_password_text" msgid="4981585714795233099">"Zadajte heslo, ktoré sa použije pri šifrovaní údajov úplnej zálohy. Ak pole ponecháte prázdne, použije sa vaše aktuálne heslo zálohy:"</string>
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
index f68d1a9..48ef9db 100644
--- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
+++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
@@ -30,6 +30,7 @@
 import android.content.res.ObbInfo;
 import android.content.res.ObbScanner;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Environment;
 import android.os.Environment.UserEnvironment;
 import android.os.FileUtils;
@@ -341,11 +342,13 @@
         // The .apk file
         String codePath = packageURI.getPath();
         File codeFile = new File(codePath);
+        NativeLibraryHelper.ApkHandle handle = new NativeLibraryHelper.ApkHandle(codePath);
+        final int abi = NativeLibraryHelper.findSupportedAbi(handle, Build.SUPPORTED_ABIS);
 
         // Calculate size of container needed to hold base APK.
         final int sizeMb;
         try {
-            sizeMb = calculateContainerSize(codeFile, isForwardLocked);
+            sizeMb = calculateContainerSize(handle, codeFile, abi, isForwardLocked);
         } catch (IOException e) {
             Slog.w(TAG, "Problem when trying to copy " + codeFile.getPath());
             return null;
@@ -408,7 +411,14 @@
 
         final File sharedLibraryDir = new File(newCachePath, LIB_DIR_NAME);
         if (sharedLibraryDir.mkdir()) {
-            int ret = NativeLibraryHelper.copyNativeBinariesIfNeededLI(codeFile, sharedLibraryDir);
+            int ret = PackageManager.INSTALL_SUCCEEDED;
+            if (abi >= 0) {
+                ret = NativeLibraryHelper.copyNativeBinariesIfNeededLI(handle,
+                        sharedLibraryDir, Build.SUPPORTED_ABIS[abi]);
+            } else if (abi != PackageManager.NO_NATIVE_LIBRARIES) {
+                ret = abi;
+            }
+
             if (ret != PackageManager.INSTALL_SUCCEEDED) {
                 Slog.e(TAG, "Could not copy native libraries to " + sharedLibraryDir.getPath());
                 PackageHelper.destroySdDir(newCid);
@@ -822,6 +832,17 @@
         return availSdMb > sizeMb;
     }
 
+    private int calculateContainerSize(File apkFile, boolean forwardLocked) throws IOException {
+        NativeLibraryHelper.ApkHandle handle = new NativeLibraryHelper.ApkHandle(apkFile);
+        final int abi = NativeLibraryHelper.findSupportedAbi(handle, Build.SUPPORTED_ABIS);
+
+        try {
+            return calculateContainerSize(handle, apkFile, abi, forwardLocked);
+        } finally {
+            handle.close();
+        }
+    }
+
     /**
      * Calculate the container size for an APK. Takes into account the
      * 
@@ -829,7 +850,8 @@
      * @return size in megabytes (2^20 bytes)
      * @throws IOException when there is a problem reading the file
      */
-    private int calculateContainerSize(File apkFile, boolean forwardLocked) throws IOException {
+    private int calculateContainerSize(NativeLibraryHelper.ApkHandle apkHandle,
+            File apkFile, int abiIndex, boolean forwardLocked) throws IOException {
         // Calculate size of container needed to hold base APK.
         long sizeBytes = apkFile.length();
         if (sizeBytes == 0 && !apkFile.exists()) {
@@ -838,7 +860,10 @@
 
         // Check all the native files that need to be copied and add that to the
         // container size.
-        sizeBytes += NativeLibraryHelper.sumNativeBinariesLI(apkFile);
+        if (abiIndex >= 0) {
+            sizeBytes += NativeLibraryHelper.sumNativeBinariesLI(apkHandle,
+                    Build.SUPPORTED_ABIS[abiIndex]);
+        }
 
         if (forwardLocked) {
             sizeBytes += PackageHelper.extractPublicFiles(apkFile.getPath(), null);
diff --git a/packages/DocumentsUI/AndroidManifest.xml b/packages/DocumentsUI/AndroidManifest.xml
index 179bcd1..6b77a7c 100644
--- a/packages/DocumentsUI/AndroidManifest.xml
+++ b/packages/DocumentsUI/AndroidManifest.xml
@@ -42,7 +42,7 @@
         <activity
             android:name=".SettingsActivity"
             android:label="@string/menu_settings"
-            android:theme="@android:style/Theme.Holo.Light.DialogWhenLarge"
+            android:theme="@android:style/Theme.DeviceDefault.Light.DialogWhenLarge"
             android:exported="false" />
 
         <provider
diff --git a/packages/DocumentsUI/res/values-it/strings.xml b/packages/DocumentsUI/res/values-it/strings.xml
index baca387..28323b6 100644
--- a/packages/DocumentsUI/res/values-it/strings.xml
+++ b/packages/DocumentsUI/res/values-it/strings.xml
@@ -38,7 +38,7 @@
     <string name="save_error" msgid="6167009778003223664">"Impossibile salvare il documento"</string>
     <string name="create_error" msgid="3735649141335444215">"Impossibile creare la cartella"</string>
     <string name="query_error" msgid="1222448261663503501">"Impossibile chiedere documenti"</string>
-    <string name="root_recent" msgid="4470053704320518133">"Recenti"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Recente"</string>
     <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> liberi"</string>
     <string name="root_type_service" msgid="2178854894416775409">"Servizi di archiviazione"</string>
     <string name="root_type_shortcut" msgid="3318760609471618093">"Scorciatoie"</string>
diff --git a/packages/DocumentsUI/res/values-pl/strings.xml b/packages/DocumentsUI/res/values-pl/strings.xml
index 42cec9c..f4e5582 100644
--- a/packages/DocumentsUI/res/values-pl/strings.xml
+++ b/packages/DocumentsUI/res/values-pl/strings.xml
@@ -44,8 +44,8 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Skróty"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Urządzenia"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Więcej aplikacji"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Pokaż urządzenia zaawansowane"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Pokaż rozmiar pliku"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Wyświetl urządzenia zaawansowane"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Wyświetl rozmiar pliku"</string>
     <string name="pref_device_size" msgid="3542106883278997222">"Wyświetl rozmiar urządzenia"</string>
     <string name="empty" msgid="7858882803708117596">"Brak elementów"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Nie można otworzyć pliku"</string>
diff --git a/packages/DocumentsUI/res/values-sw720dp/styles.xml b/packages/DocumentsUI/res/values-sw720dp/styles.xml
index 19d2ebe..8d31444 100644
--- a/packages/DocumentsUI/res/values-sw720dp/styles.xml
+++ b/packages/DocumentsUI/res/values-sw720dp/styles.xml
@@ -15,11 +15,11 @@
 -->
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
-    <style name="Theme" parent="@android:style/Theme.Holo.Light">
+    <style name="Theme" parent="@android:style/Theme.DeviceDefault.Light">
         <item name="android:actionOverflowButtonStyle">@style/DarkerOverflow</item>
         <item name="android:windowBackground">@*android:drawable/dialog_full_holo_light</item>
         <item name="android:colorBackgroundCacheHint">@null</item>
         <item name="android:windowIsTranslucent">true</item>
-        <item name="android:windowAnimationStyle">@*android:style/Animation.Holo.Dialog</item>
+        <item name="android:windowAnimationStyle">@*android:style/Animation.DeviceDefault.Dialog</item>
     </style>
 </resources>
diff --git a/packages/DocumentsUI/res/values/styles.xml b/packages/DocumentsUI/res/values/styles.xml
index 0c8f712..a416eb4 100644
--- a/packages/DocumentsUI/res/values/styles.xml
+++ b/packages/DocumentsUI/res/values/styles.xml
@@ -29,11 +29,11 @@
 
     <!-- Normally just a redirection, but this is used to make ourselves a
          dialog on large tablets -->
-    <style name="Theme" parent="@android:style/Theme.Holo.Light">
+    <style name="Theme" parent="@android:style/Theme.DeviceDefault.Light">
         <item name="android:actionOverflowButtonStyle">@style/DarkerOverflow</item>
     </style>
     
-    <style name="DarkerOverflow" parent="@android:style/Widget.Holo.Light.ActionButton.Overflow">
+    <style name="DarkerOverflow" parent="@android:style/Widget.DeviceDefault.Light.ActionButton.Overflow">
         <item name="android:src">@drawable/ic_menu_overflow</item>
     </style>
 
diff --git a/packages/FusedLocation/res/values-fr-rCA/strings.xml b/packages/FusedLocation/res/values-fr-rCA/strings.xml
index c7d33af..0d2cccc 100644
--- a/packages/FusedLocation/res/values-fr-rCA/strings.xml
+++ b/packages/FusedLocation/res/values-fr-rCA/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="5379477904423203699">"Tables de fusion"</string>
+    <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
 </resources>
diff --git a/packages/InputDevices/res/raw/keyboard_layout_arabic.kcm b/packages/InputDevices/res/raw/keyboard_layout_arabic.kcm
new file mode 100644
index 0000000..2a95cfe
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_arabic.kcm
@@ -0,0 +1,319 @@
+# Copyright (C) 2013 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.
+
+#
+# Arabic (US-101 keys) keyboard layout.
+#
+
+type OVERLAY
+
+### ROW 1
+
+key GRAVE {
+    label:                              '`'
+    base, capslock:                     '\u0630'
+    shift:                              '\u0651'
+}
+
+key 1 {
+    label:                              '1'
+    base:                               '\u0661'
+    shift:                              '!'
+    capslock:                           '1'
+}
+
+key 2 {
+    label:                              '2'
+    base:                               '\u0662'
+    shift:                              '@'
+    capslock:                           '2'
+}
+
+key 3 {
+    label:                              '3'
+    base:                               '\u0663'
+    shift:                              '#'
+    capslock:                           '3'
+}
+
+key 4 {
+    label:                              '4'
+    base:                               '\u0664'
+    shift:                              '$'
+    capslock:                           '4'
+}
+
+key 5 {
+    label:                              '5'
+    base:                               '\u0665'
+    shift:                              '%'
+    capslock:                           '5'
+}
+
+key 6 {
+    label:                              '6'
+    base:                               '\u0666'
+    shift:                              '^'
+    capslock:                           '6'
+}
+
+key 7 {
+    label:                              '7'
+    base:                               '\u0667'
+    shift:                              '&'
+    capslock:                           '7'
+}
+
+key 8 {
+    label:                              '8'
+    base:                               '\u0668'
+    shift:                              '*'
+    capslock:                           '8'
+}
+
+key 9 {
+    label:                              '9'
+    base:                               '\u0669'
+    shift:                              '('
+    capslock:                           '9'
+}
+
+key 0 {
+    label:                              '0'
+    base:                               '\u0660'
+    shift:                              ')'
+    capslock:                           '0'
+}
+
+key MINUS {
+    label:                              '-'
+    base, capslock:                     '-'
+    shift:                              '_'
+}
+
+key EQUALS {
+    label:                              '='
+    base, capslock:                     '='
+    shift:                              '+'
+}
+
+### ROW 2
+
+key Q {
+    label:                              'Q'
+    base, capslock:                     '\u0636'
+    shift:                              '\u064e'
+}
+
+key W {
+    label:                              'W'
+    base, capslock:                     '\u0635'
+    shift:                              '\u064b'
+}
+
+key E {
+    label:                              'E'
+    base, capslock:                     '\u062b'
+    shift:                              '\u064f'
+}
+
+key R {
+    label:                              'R'
+    base, capslock:                     '\u0642'
+    shift:                              '\u064c'
+}
+
+key T {
+    label:                              'T'
+    base, capslock:                     '\u0641'
+    shift:                              '\ufef9'
+}
+
+key Y {
+    label:                              'Y'
+    base, capslock:                     '\u063a'
+    shift:                              '\u0625'
+}
+
+key U {
+    label:                              'U'
+    base, capslock:                     '\u0639'
+    shift:                              '\u2018'
+}
+
+key I {
+    label:                              'I'
+    base, capslock:                     '\u0647'
+    shift:                              '\u00f7'
+}
+
+key O {
+    label:                              'O'
+    base, capslock:                     '\u062e'
+    shift:                              '\u00d7'
+}
+
+key P {
+    label:                              'P'
+    base, capslock:                     '\u062d'
+    shift:                              '\u061b'
+}
+
+key LEFT_BRACKET {
+    label:                              '['
+    base, capslock:                     '\u062c'
+    shift:                              '<'
+}
+
+key RIGHT_BRACKET {
+    label:                              ']'
+    base, capslock:                     '\u062f'
+    shift:                              '>'
+}
+
+key BACKSLASH {
+    label:                              '\\'
+    base, capslock:                     '\\'
+    shift:                              '|'
+}
+
+### ROW 3
+
+key A {
+    label:                              'A'
+    base, capslock:                     '\u0634'
+    shift:                              '\u0650'
+}
+
+key S {
+    label:                              'S'
+    base, capslock:                     '\u0633'
+    shift:                              '\u064d'
+}
+
+key D {
+    label:                              'D'
+    base, capslock:                     '\u064a'
+    shift:                              ']'
+}
+
+key F {
+    label:                              'F'
+    base, capslock:                     '\u0628'
+    shift:                              '['
+}
+
+key G {
+    label:                              'G'
+    base, capslock:                     '\u0644'
+    shift:                              '\ufef7'
+}
+
+key H {
+    label:                              'H'
+    base, capslock:                     '\u0627'
+    shift:                              '\u0623'
+}
+
+key J {
+    label:                              'J'
+    base, capslock:                     '\u062a'
+    shift:                              '\u0640'
+}
+
+key K {
+    label:                              'K'
+    base, capslock:                     '\u0646'
+    shift:                              '\u060c'
+}
+
+key L {
+    label:                              'L'
+    base, capslock:                     '\u0645'
+    shift:                              '/'
+}
+
+key SEMICOLON {
+    label:                              ';'
+    base, capslock:                     '\u0643'
+    shift:                              ':'
+}
+
+key APOSTROPHE {
+    label:                              '\''
+    base, capslock:                     '\u0637'
+    shift:                              '"'
+}
+
+### ROW 4
+
+key Z {
+    label:                              'Z'
+    base, capslock:                     '\u0626'
+    shift:                              '~'
+}
+
+key X {
+    label:                              'X'
+    base, capslock:                     '\u0621'
+    shift:                              '\u0652'
+}
+
+key C {
+    label:                              'C'
+    base, capslock:                     '\u0624'
+    shift:                              '}'
+}
+
+key V {
+    label:                              'V'
+    base, capslock:                     '\u0631'
+    shift:                              '{'
+}
+
+key B {
+    label:                              'B'
+    base, capslock:                     '\ufefb'
+    shift:                              '\ufef5'
+}
+
+key N {
+    label:                              'N'
+    base, capslock:                     '\u0649'
+    shift:                              '\u0622'
+}
+
+key M {
+    label:                              'M'
+    base, capslock:                     '\u0629'
+    shift:                              '\u2019'
+}
+
+key COMMA {
+    label:                              ','
+    base, capslock:                     '\u0648'
+    shift:                              ','
+}
+
+key PERIOD {
+    label:                              '.'
+    base, capslock:                     '\u0632'
+    shift:                              '.'
+}
+
+key SLASH {
+    label:                              '/'
+    base, capslock:                     '\u0638'
+    shift:                              '\u061f'
+}
diff --git a/packages/InputDevices/res/raw/keyboard_layout_greek.kcm b/packages/InputDevices/res/raw/keyboard_layout_greek.kcm
new file mode 100644
index 0000000..a7684e1
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_greek.kcm
@@ -0,0 +1,338 @@
+# Copyright (C) 2013 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.
+
+#
+# Greek (EU based) keyboard layout.
+#
+
+type OVERLAY
+
+map key 86 PLUS
+
+### ROW 1
+
+key GRAVE {
+    label:                              '`'
+    base, capslock:                     '`'
+    shift:                              '~'
+}
+
+key 1 {
+    label:                              '1'
+    base, capslock:                     '1'
+    shift:                              '!'
+}
+
+key 2 {
+    label:                              '2'
+    base, capslock:                     '2'
+    shift:                              '@'
+    ralt:                               '\u00b2'
+}
+
+key 3 {
+    label:                              '3'
+    base, capslock:                     '3'
+    shift:                              '#'
+    ralt:                               '\u00b3'
+}
+
+key 4 {
+    label:                              '4'
+    base, capslock:                     '4'
+    shift:                              '$'
+    ralt:                               '\u00a3'
+}
+
+key 5 {
+    label:                              '5'
+    base, capslock:                     '5'
+    shift:                              '%'
+    ralt:                               '\u00a7'
+}
+
+key 6 {
+    label:                              '6'
+    base, capslock:                     '6'
+    shift:                              '^'
+    ralt:                               '\u00b6'
+}
+
+key 7 {
+    label:                              '7'
+    base, capslock:                     '7'
+    shift:                              '&'
+}
+
+key 8 {
+    label:                              '8'
+    base, capslock:                     '8'
+    shift:                              '*'
+    ralt:                               '\u00a4'
+}
+
+key 9 {
+    label:                              '9'
+    base, capslock:                     '9'
+    shift:                              '('
+    ralt:                               '\u00a6'
+}
+
+key 0 {
+    label:                              '0'
+    base, capslock:                     '0'
+    shift:                              ')'
+    ralt:                               '\u00b0'
+}
+
+key MINUS {
+    label:                              '-'
+    base, capslock:                     '-'
+    shift:                              '_'
+    ralt:                               '\u00b1'
+}
+
+key EQUALS {
+    label:                              '='
+    base, capslock:                     '='
+    shift:                              '+'
+    ralt:                               '\u00bd'
+}
+
+### ROW 2
+
+key Q {
+    label:                              'Q'
+    base, capslock:                     ';'
+    shift:                              ':'
+}
+
+key W {
+    label:                              'W'
+    base, capslock:                     '\u03c2'
+    shift:                              '\u0385'
+}
+
+key E {
+    label:                              'E'
+    base:                               '\u03b5'
+    shift, capslock:                    '\u0395'
+    ralt:                               '\u20ac'
+}
+
+key R {
+    label:                              'R'
+    base:                               '\u03c1'
+    shift, capslock:                    '\u03a1'
+    ralt:                               '\u00ae'
+}
+
+key T {
+    label:                              'T'
+    base:                               '\u03c4'
+    shift, capslock:                    '\u03a4'
+}
+
+key Y {
+    label:                              'Y'
+    base:                               '\u03c5'
+    shift, capslock:                    '\u03a5'
+    ralt:                               '\u00a5'
+}
+
+key U {
+    label:                              'U'
+    base:                               '\u03b8'
+    shift, capslock:                    '\u0398'
+}
+
+key I {
+    label:                              'I'
+    base:                               '\u03b9'
+    shift, capslock:                    '\u0399'
+}
+
+key O {
+    label:                              'O'
+    base:                               '\u03bf'
+    shift, capslock:                    '\u039f'
+}
+
+key P {
+    label:                              'P'
+    base:                               '\u03c0'
+    shift, capslock:                    '\u03a0'
+}
+
+key LEFT_BRACKET {
+    label:                              '['
+    base, capslock:                     '['
+    shift:                              '{'
+    ralt:                               '\u00ab'
+}
+
+key RIGHT_BRACKET {
+    label:                              ']'
+    base, capslock:                     ']'
+    shift:                              '}'
+    ralt:                               '\u00bb'
+}
+
+### ROW 3
+
+key A {
+    label:                              'A'
+    base:                               '\u03b1'
+    shift, capslock:                    '\u0391'
+}
+
+key S {
+    label:                              'S'
+    base:                               '\u03c3'
+    shift, capslock:                    '\u03a3'
+}
+
+key D {
+    label:                              'D'
+    base:                               '\u03b4'
+    shift, capslock:                    '\u0394'
+}
+
+key F {
+    label:                              'F'
+    base:                               '\u03c6'
+    shift, capslock:                    '\u03a6'
+}
+
+key G {
+    label:                              'G'
+    base:                               '\u03b3'
+    shift, capslock:                    '\u0393'
+}
+
+key H {
+    label:                              'H'
+    base:                               '\u03b7'
+    shift, capslock:                    '\u0397'
+}
+
+key J {
+    label:                              'J'
+    base:                               '\u03be'
+    shift, capslock:                    '\u039e'
+}
+
+key K {
+    label:                              'K'
+    base:                               '\u03ba'
+    shift, capslock:                    '\u039a'
+}
+
+key L {
+    label:                              'L'
+    base:                               '\u03bb'
+    shift, capslock:                    '\u039b'
+}
+
+key SEMICOLON {
+    label:                              ';'
+    base, capslock:                     '\u0301'
+#should be \u0384 (greek tonos)
+    shift:                              '\u0308'
+    ralt:                               '\u0385'
+}
+
+key APOSTROPHE {
+    label:                              '\''
+    base, capslock:                     '\''
+    shift:                              '"'
+}
+
+key BACKSLASH {
+    label:                              '\\'
+    base, capslock:                     '\\'
+    shift:                              '|'
+    ralt:                               '\u00ac'
+}
+
+### ROW 4
+
+key PLUS {
+    label:                              '<'
+    base, capslock:                     '<'
+    shift:                              '>'
+    ralt:                               '\\'
+    shift+ralt:                         '|'
+}
+
+key Z {
+    label:                              'Z'
+    base:                               '\u03b6'
+    shift, capslock:                    '\u0396'
+}
+
+key X {
+    label:                              'X'
+    base:                               '\u03c7'
+    shift, capslock:                    '\u03a7'
+}
+
+key C {
+    label:                              'C'
+    base:                               '\u03c8'
+    shift, capslock:                    '\u03a8'
+    ralt:                               '\u00a9'
+}
+
+key V {
+    label:                              'V'
+    base:                               '\u03c9'
+    shift, capslock:                    '\u03a9'
+}
+
+key B {
+    label:                              'B'
+    base:                               '\u03b2'
+    shift, capslock:                    '\u0392'
+}
+
+key N {
+    label:                              'N'
+    base:                               '\u03bd'
+    shift, capslock:                    '\u039d'
+}
+
+key M {
+    label:                              'M'
+    base:                               '\u03bc'
+    shift, capslock:                    '\u039c'
+}
+
+key COMMA {
+    label:                              ','
+    base, capslock:                     ','
+    shift:                              '<'
+}
+
+key PERIOD {
+    label:                              '.'
+    base, capslock:                     '.'
+    shift:                              '>'
+}
+
+key SLASH {
+    label:                              '/'
+    base, capslock:                     '/'
+    shift:                              '?'
+}
diff --git a/packages/InputDevices/res/raw/keyboard_layout_hebrew.kcm b/packages/InputDevices/res/raw/keyboard_layout_hebrew.kcm
new file mode 100644
index 0000000..cd3a4b9
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_hebrew.kcm
@@ -0,0 +1,341 @@
+# Copyright (C) 2013 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.
+
+#
+# Hebrew (based EU) keyboard layout.
+#
+
+type OVERLAY
+
+map key 86 PLUS
+
+### ROW 1
+
+key GRAVE {
+    label:                              '`'
+    base:                               ';'
+    shift:                              '~'
+    shift+capslock:                     '\u05b0'
+}
+
+key 1 {
+    label:                              '1'
+    base:                               '1'
+    shift:                              '!'
+    shift+capslock:                     '\u05b1'
+}
+
+key 2 {
+    label:                              '2'
+    base:                               '2'
+    shift:                              '@'
+    shift+capslock:                     '\u05b2'
+}
+
+key 3 {
+    label:                              '3'
+    base:                               '3'
+    shift:                              '#'
+    shift+capslock:                     '\u05b3'
+}
+
+key 4 {
+    label:                              '4'
+    base:                               '4'
+    shift:                              '$'
+    ralt:                               '\u20aa'
+    shift+capslock:                     '\u05b4'
+}
+
+key 5 {
+    label:                              '5'
+    base:                               '5'
+    shift:                              '%'
+    shift+capslock:                     '\u05b5'
+}
+
+key 6 {
+    label:                              '6'
+    base:                               '6'
+    shift:                              '^'
+    shift+capslock:                     '\u05b6'
+}
+
+key 7 {
+    label:                              '7'
+    base:                               '7'
+    shift:                              '&'
+    shift+capslock:                     '\u05b7'
+}
+
+key 8 {
+    label:                              '8'
+    base:                               '8'
+    shift:                              '*'
+    shift+capslock:                     '\u05b8'
+}
+
+key 9 {
+    label:                              '9'
+    base:                               '9'
+    shift:                              '('
+    shift+capslock:                     '\u05c2'
+}
+
+key 0 {
+    label:                              '0'
+    base:                               '0'
+    shift:                              ')'
+    shift+capslock:                     '\u05c1'
+}
+
+key MINUS {
+    label:                              '-'
+    base:                               '-'
+    shift:                              '_'
+    ralt:                               '\u05bf'
+    shift+capslock:                     '\u05b9'
+}
+
+key EQUALS {
+    label:                              '='
+    base:                               '='
+    shift:                              '+'
+    shift+capslock:                     '\u05bc'
+}
+
+### ROW 2
+
+key Q {
+    label:                              'Q'
+    base:                               '/'
+    shift, capslock:                    'Q'
+}
+
+key W {
+    label:                              'W'
+    base:                               '\u0027'
+    shift, capslock:                    'W'
+}
+
+key E {
+    label:                              'E'
+    base:                               '\u05e7'
+    shift, capslock:                    'E'
+    ralt:                               '\u20ac'
+}
+
+key R {
+    label:                              'R'
+    base:                               '\u05e8'
+    shift, capslock:                    'R'
+}
+
+key T {
+    label:                              'T'
+    base:                               '\u05d0'
+    shift, capslock:                    'T'
+}
+
+key Y {
+    label:                              'Y'
+    base:                               '\u05d8'
+    shift, capslock:                    'Y'
+}
+
+key U {
+    label:                              'U'
+    base:                               '\u05d5'
+    shift, capslock:                    'U'
+    ralt:                               '\u05f0'
+}
+
+key I {
+    label:                              'I'
+    base:                               '\u05df'
+    shift, capslock:                    'I'
+}
+
+key O {
+    label:                              'O'
+    base:                               '\u05dd'
+    shift, capslock:                    'O'
+}
+
+key P {
+    label:                              'P'
+    base:                               '\u05e4'
+    shift, capslock:                    'P'
+}
+
+key LEFT_BRACKET {
+    label:                              '['
+    base, capslock:                     '['
+    shift:                              '{'
+}
+
+key RIGHT_BRACKET {
+    label:                              ']'
+    base, capslock:                     ']'
+    shift:                              '}'
+}
+
+### ROW 3
+
+key A {
+    label:                              'A'
+    base:                               '\u05e9'
+    shift, capslock:                    'A'
+}
+
+key S {
+    label:                              'S'
+    base:                               '\u05d3'
+    shift, capslock:                    'S'
+}
+
+key D {
+    label:                              'D'
+    base:                               '\u05d2'
+    shift, capslock:                    'D'
+}
+
+key F {
+    label:                              'F'
+    base:                               '\u05db'
+    shift, capslock:                    'F'
+}
+
+key G {
+    label:                              'G'
+    base:                               '\u05e2'
+    shift, capslock:                    'G'
+}
+
+key H {
+    label:                              'H'
+    base:                               '\u05d9'
+    shift, capslock:                    'H'
+    ralt:                               '\u05f2'
+}
+
+key J {
+    label:                              'J'
+    base:                               '\u05d7'
+    shift, capslock:                    'J'
+    ralt:                               '\u05f1'
+}
+
+key K {
+    label:                              'K'
+    base:                               '\u05dc'
+    shift, capslock:                    'K'
+}
+
+key L {
+    label:                              'L'
+    base:                               '\u05da'
+    shift, capslock:                    'L'
+}
+
+key SEMICOLON {
+    label:                              ';'
+    base:                               '\u05e3'
+    shift:                              ':'
+    capslock:                           ';'
+}
+
+key APOSTROPHE {
+    label:                              '\''
+    base:                               ','
+    shift:                              '"'
+    capslock:                           '\''
+}
+
+key BACKSLASH {
+    label:                              '\\'
+    base:                               '\\'
+    shift:                              '|'
+}
+
+### ROW 4
+
+key PLUS {
+    label:                              '\\'
+    base, capslock:                     '\\'
+    shift:                              '|'
+}
+
+key Z {
+    label:                              'Z'
+    base:                               '\u05d6'
+    shift, capslock:                    'Z'
+}
+
+key X {
+    label:                              'X'
+    base:                               '\u05e1'
+    shift, capslock:                    'X'
+}
+
+key C {
+    label:                              'C'
+    base:                               '\u05d1'
+    shift, capslock:                    'C'
+}
+
+key V {
+    label:                              'V'
+    base:                               '\u05d4'
+    shift, capslock:                    'V'
+}
+
+key B {
+    label:                              'B'
+    base:                               '\u05e0'
+    shift, capslock:                    'B'
+}
+
+key N {
+    label:                              'N'
+    base:                               '\u05de'
+    shift, capslock:                    'N'
+}
+
+key M {
+    label:                              'M'
+    base:                               '\u05e6'
+    shift, capslock:                    'M'
+}
+
+key COMMA {
+    label:                              ','
+    base:                               '\u05ea'
+    shift:                              '<'
+    capslock:                           ','
+}
+
+key PERIOD {
+    label:                              '.'
+    base:                               '\u05e5'
+    shift:                              '>'
+    capslock:                           '.'
+}
+
+key SLASH {
+    label:                              '/'
+    base:                               '.'
+    shift:                              '?'
+    capslock:                           '/'
+}
diff --git a/packages/InputDevices/res/raw/keyboard_layout_lithuanian.kcm b/packages/InputDevices/res/raw/keyboard_layout_lithuanian.kcm
new file mode 100644
index 0000000..72ca333
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_lithuanian.kcm
@@ -0,0 +1,338 @@
+# Copyright (C) 2013 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.
+
+#
+# Lithuanian (EU based) keyboard layout.
+#
+
+type OVERLAY
+
+map key 86 PLUS
+
+### ROW 1
+
+key GRAVE {
+    label:                              '`'
+    base:                               '`'
+    shift:                              '~'
+}
+
+key 1 {
+    label:                              '1'
+    base:                               '\u0105'
+    shift, capslock:                    '\u0104'
+    ralt:                               '1'
+    shift+ralt:                         '!'
+}
+
+key 2 {
+    label:                              '2'
+    base:                               '\u010d'
+    shift, capslock:                    '\u010c'
+    ralt:                               '2'
+    shift+ralt:                         '@'
+}
+
+key 3 {
+    label:                              '3'
+    base:                               '\u0119'
+    shift, capslock:                    '\u0118'
+    ralt:                               '3'
+    shift+ralt:                         '#'
+}
+
+key 4 {
+    label:                              '4'
+    base:                               '\u0117'
+    shift, capslock:                    '\u0116'
+    ralt:                               '4'
+    shift+ralt:                         '$'
+}
+
+key 5 {
+    label:                              '5'
+    base:                               '\u012f'
+    shift, capslock:                    '\u012e'
+    ralt:                               '5'
+    shift+ralt:                         '%'
+}
+
+key 6 {
+    label:                              '6'
+    base:                               '\u0161'
+    shift, capslock:                    '\u0160'
+    ralt:                               '6'
+    shift+ralt:                         '\u0302'
+}
+
+key 7 {
+    label:                              '7'
+    base:                               '\u0173'
+    shift, capslock:                    '\u0172'
+    ralt:                               '7'
+    shift+ralt:                         '&'
+}
+
+key 8 {
+    label:                              '8'
+    base:                               '\u016b'
+    shift, capslock:                    '\u016a'
+    ralt:                               '8'
+    shift+ralt:                         '*'
+}
+
+key 9 {
+    label:                              '9'
+    base:                               '9'
+    shift:                              '('
+    ralt:                               '9'
+}
+
+key 0 {
+    label:                              '0'
+    base:                               '0'
+    shift:                              ')'
+    ralt:                               '0'
+}
+
+key MINUS {
+    label:                              '-'
+    base:                               '-'
+    shift:                              '_'
+}
+
+key EQUALS {
+    label:                              '='
+    base:                               '\u017e'
+    shift, capslock:                    '\u017d'
+    ralt:                               '='
+    shift+ralt:                         '+'
+}
+
+### ROW 2
+
+key Q {
+    label:                              'Q'
+    base:                               'q'
+    shift, capslock:                    'Q'
+}
+
+key W {
+    label:                              'W'
+    base:                               'w'
+    shift, capslock:                    'W'
+}
+
+key E {
+    label:                              'E'
+    base:                               'e'
+    shift, capslock:                    'E'
+    ralt:                               '\u20ac'
+}
+
+key R {
+    label:                              'R'
+    base:                               'r'
+    shift, capslock:                    'R'
+}
+
+key T {
+    label:                              'T'
+    base:                               't'
+    shift, capslock:                    'T'
+}
+
+key Y {
+    label:                              'Y'
+    base:                               'y'
+    shift, capslock:                    'Y'
+}
+
+key U {
+    label:                              'U'
+    base:                               'u'
+    shift, capslock:                    'U'
+}
+
+key I {
+    label:                              'I'
+    base:                               'i'
+    shift, capslock:                    'I'
+}
+
+key O {
+    label:                              'O'
+    base:                               'o'
+    shift, capslock:                    'O'
+}
+
+key P {
+    label:                              'P'
+    base:                               'p'
+    shift, capslock:                    'P'
+}
+
+key LEFT_BRACKET {
+    label:                              '['
+    base:                               '['
+    shift:                              '{'
+}
+
+key RIGHT_BRACKET {
+    label:                              ']'
+    base:                               ']'
+    shift:                              '}'
+}
+
+### ROW 3
+
+key A {
+    label:                              'A'
+    base:                               'a'
+    shift, capslock:                    'A'
+}
+
+key S {
+    label:                              'S'
+    base:                               's'
+    shift, capslock:                    'S'
+}
+
+key D {
+    label:                              'D'
+    base:                               'd'
+    shift, capslock:                    'D'
+}
+
+key F {
+    label:                              'F'
+    base:                               'f'
+    shift, capslock:                    'F'
+}
+
+key G {
+    label:                              'G'
+    base:                               'g'
+    shift, capslock:                    'G'
+}
+
+key H {
+    label:                              'H'
+    base:                               'h'
+    shift, capslock:                    'H'
+}
+
+key J {
+    label:                              'J'
+    base:                               'j'
+    shift, capslock:                    'J'
+}
+
+key K {
+    label:                              'K'
+    base:                               'k'
+    shift, capslock:                    'K'
+}
+
+key L {
+    label:                              'L'
+    base:                               'l'
+    shift, capslock:                    'L'
+}
+
+key SEMICOLON {
+    label:                              ';'
+    base:                               ';'
+    shift:                              ':'
+}
+
+key APOSTROPHE {
+    label:                              '\''
+    base:                               '\''
+    shift:                              '"'
+}
+
+key BACKSLASH {
+    label:                              '\\'
+    base:                               '\\'
+    shift:                              '|'
+}
+
+### ROW 4
+
+key PLUS {
+    label:                              '\\'
+    base:                               '\\'
+    shift:                              '|'
+}
+
+key Z {
+    label:                              'Z'
+    base:                               'z'
+    shift, capslock:                    'Z'
+}
+
+key X {
+    label:                              'X'
+    base:                               'x'
+    shift, capslock:                    'X'
+}
+
+key C {
+    label:                              'C'
+    base:                               'c'
+    shift, capslock:                    'C'
+}
+
+key V {
+    label:                              'V'
+    base:                               'v'
+    shift, capslock:                    'V'
+}
+
+key B {
+    label:                              'B'
+    base:                               'b'
+    shift, capslock:                    'B'
+}
+
+key N {
+    label:                              'N'
+    base:                               'n'
+    shift, capslock:                    'N'
+}
+
+key M {
+    label:                              'M'
+    base:                               'm'
+    shift, capslock:                    'M'
+}
+
+key COMMA {
+    label:                              ','
+    base:                               ','
+    shift:                              '<'
+}
+
+key PERIOD {
+    label:                              '.'
+    base:                               '.'
+    shift:                              '>'
+}
+
+key SLASH {
+    label:                              '/'
+    base:                               '/'
+    shift:                              '?'
+}
diff --git a/packages/InputDevices/res/raw/keyboard_layout_spanish_latin.kcm b/packages/InputDevices/res/raw/keyboard_layout_spanish_latin.kcm
new file mode 100644
index 0000000..16eb53f
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_spanish_latin.kcm
@@ -0,0 +1,325 @@
+# Copyright (C) 2013 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.
+
+#
+# Spanish (Latin) (EU based) keyboard layout.
+#
+
+type OVERLAY
+
+map key 86 PLUS
+
+### ROW 1
+
+key GRAVE {
+    label:                              '|'
+    base:                               '|'
+    shift:                              '\u00ba'
+    ralt:                               '\u00ac'
+}
+
+key 1 {
+    label:                              '1'
+    base:                               '1'
+    shift:                              '!'
+}
+
+key 2 {
+    label:                              '2'
+    base:                               '2'
+    shift:                              '"'
+}
+
+key 3 {
+    label:                              '3'
+    base:                               '3'
+    shift:                              '#'
+}
+
+key 4 {
+    label:                              '4'
+    base:                               '4'
+    shift:                              '$'
+
+}
+
+key 5 {
+    label:                              '5'
+    base:                               '5'
+    shift:                              '%'
+}
+
+key 6 {
+    label:                              '6'
+    base:                               '6'
+    shift:                              '&'
+}
+
+key 7 {
+    label:                              '7'
+    base:                               '7'
+    shift:                              '/'
+}
+
+key 8 {
+    label:                              '8'
+    base:                               '8'
+    shift:                              '('
+}
+
+key 9 {
+    label:                              '9'
+    base:                               '9'
+    shift:                              ')'
+}
+
+key 0 {
+    label:                              '0'
+    base:                               '0'
+    shift:                              '='
+}
+
+key MINUS {
+    label:                              '\''
+    base:                               '\''
+    shift:                              '?'
+    ralt:                               '\\'
+}
+
+key EQUALS {
+    label:                              '\u00bf'
+    base:                               '\u00bf'
+    shift:                              '\u00a1'
+}
+
+### ROW 2
+
+key Q {
+    label:                              'Q'
+    base:                               'q'
+    shift, capslock:                    'Q'
+    ralt:                               '@'
+}
+
+key W {
+    label:                              'W'
+    base:                               'w'
+    shift, capslock:                    'W'
+}
+
+key E {
+    label:                              'E'
+    base:                               'e'
+    shift, capslock:                    'E'
+}
+
+key R {
+    label:                              'R'
+    base:                               'r'
+    shift, capslock:                    'R'
+}
+
+key T {
+    label:                              'T'
+    base:                               't'
+    shift, capslock:                    'T'
+}
+
+key Y {
+    label:                              'Y'
+    base:                               'y'
+    shift, capslock:                    'Y'
+}
+
+key U {
+    label:                              'U'
+    base:                               'u'
+    shift, capslock:                    'U'
+}
+
+key I {
+    label:                              'I'
+    base:                               'i'
+    shift, capslock:                    'I'
+}
+
+key O {
+    label:                              'O'
+    base:                               'o'
+    shift, capslock:                    'O'
+}
+
+key P {
+    label:                              'P'
+    base:                               'p'
+    shift, capslock:                    'P'
+}
+
+key LEFT_BRACKET {
+    label:                              '\u00b4'
+    base:                               '\u0301'
+    shift:                              '\u0308'
+    ralt:                               '['
+}
+
+key RIGHT_BRACKET {
+    label:                              '+'
+    base:                               '+'
+    shift:                              '*'
+    ralt:                               '\u0303'
+}
+
+### ROW 3
+
+key A {
+    label:                              'A'
+    base:                               'a'
+    shift, capslock:                    'A'
+}
+
+key S {
+    label:                              'S'
+    base:                               's'
+    shift, capslock:                    'S'
+}
+
+key D {
+    label:                              'D'
+    base:                               'd'
+    shift, capslock:                    'D'
+}
+
+key F {
+    label:                              'F'
+    base:                               'f'
+    shift, capslock:                    'F'
+}
+
+key G {
+    label:                              'G'
+    base:                               'g'
+    shift, capslock:                    'G'
+}
+
+key H {
+    label:                              'H'
+    base:                               'h'
+    shift, capslock:                    'H'
+}
+
+key J {
+    label:                              'J'
+    base:                               'j'
+    shift, capslock:                    'J'
+}
+
+key K {
+    label:                              'K'
+    base:                               'k'
+    shift, capslock:                    'K'
+}
+
+key L {
+    label:                              'L'
+    base:                               'l'
+    shift, capslock:                    'L'
+}
+
+key SEMICOLON {
+    label:                              '\u00d1'
+    base:                               '\u00f1'
+    shift, capslock:                    '\u00d1'
+}
+
+key APOSTROPHE {
+    label:                              '{'
+    base:                               '{'
+    shift:                              '['
+    ralt:                               '\u0302'
+}
+
+key BACKSLASH {
+    label:                              '}'
+    base:                               '}'
+    shift:                              ']'
+    ralt:                               '\u0300'
+}
+
+### ROW 4
+
+key PLUS {
+    label:                              '<'
+    base:                               '<'
+    shift:                              '>'
+}
+
+key Z {
+    label:                              'Z'
+    base:                               'z'
+    shift, capslock:                    'Z'
+}
+
+key X {
+    label:                              'X'
+    base:                               'x'
+    shift, capslock:                    'X'
+}
+
+key C {
+    label:                              'C'
+    base:                               'c'
+    shift, capslock:                    'C'
+}
+
+key V {
+    label:                              'V'
+    base:                               'v'
+    shift, capslock:                    'V'
+}
+
+key B {
+    label:                              'B'
+    base:                               'b'
+    shift, capslock:                    'B'
+}
+
+key N {
+    label:                              'N'
+    base:                               'n'
+    shift, capslock:                    'N'
+}
+
+key M {
+    label:                              'M'
+    base:                               'm'
+    shift, capslock:                    'M'
+}
+
+key COMMA {
+    label:                              ','
+    base:                               ','
+    shift:                              ';'
+}
+
+key PERIOD {
+    label:                              '.'
+    base:                               '.'
+    shift:                              ':'
+}
+
+key SLASH {
+    label:                              '-'
+    base:                               '-'
+    shift:                              '_'
+}
diff --git a/packages/InputDevices/res/values-af/strings.xml b/packages/InputDevices/res/values-af/strings.xml
index 13fcbb4..ddaf706 100644
--- a/packages/InputDevices/res/values-af/strings.xml
+++ b/packages/InputDevices/res/values-af/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloweens"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turks"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Oekraïens"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabies"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grieks"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebreeus"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litaus"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spaans (Latyn)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-am/strings.xml b/packages/InputDevices/res/values-am/strings.xml
index d475772..09b65e0 100644
--- a/packages/InputDevices/res/values-am/strings.xml
+++ b/packages/InputDevices/res/values-am/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"ስሎቫኒያ"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ቱርክኛ"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ዩክሬን"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"አረብኛ"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"ግሪክኛ"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"ዕብራስጥ"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"ሊቱዌኒያኛ"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"ስፓኒሽ (ላቲን)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ar/strings.xml b/packages/InputDevices/res/values-ar/strings.xml
index 903d978..4c5cccc 100644
--- a/packages/InputDevices/res/values-ar/strings.xml
+++ b/packages/InputDevices/res/values-ar/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"السلوفينية"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"التركية"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"الأوكرانية"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"العربية"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"اليونانية"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"العبرية"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"الليتوانية"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"الإسبانية (اللاتينية)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-bg/strings.xml b/packages/InputDevices/res/values-bg/strings.xml
index 0c413a4..cc3eb36 100644
--- a/packages/InputDevices/res/values-bg/strings.xml
+++ b/packages/InputDevices/res/values-bg/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"словенски"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"турски"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"украински"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Арабска клавиатурна подредба"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Гръцка клавиатурна подредба"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Ивритска клавиатурна подредба"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Литовска клавиатурна подредба"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Исп. клав. подредба (Лат. Америка)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ca/strings.xml b/packages/InputDevices/res/values-ca/strings.xml
index 2021b8f..2c8521c 100644
--- a/packages/InputDevices/res/values-ca/strings.xml
+++ b/packages/InputDevices/res/values-ca/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Eslovè"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turc"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraïnès"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Àrab"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grec"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebreu"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituà"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Espanyol (llatí)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-cs/strings.xml b/packages/InputDevices/res/values-cs/strings.xml
index 33b420e..9b65eed 100644
--- a/packages/InputDevices/res/values-cs/strings.xml
+++ b/packages/InputDevices/res/values-cs/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"slovinské"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turecké"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrajinské"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"arabština"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"řečtina"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"hebrejština"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"litevština"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"španělština (Latinská Amerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-da/strings.xml b/packages/InputDevices/res/values-da/strings.xml
index fc07db2..8b423ab 100644
--- a/packages/InputDevices/res/values-da/strings.xml
+++ b/packages/InputDevices/res/values-da/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovensk"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Tyrkisk"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainsk"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabisk"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Græsk"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebræisk"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litauisk"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spansk (latinamerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-de/strings.xml b/packages/InputDevices/res/values-de/strings.xml
index b5c3b50..b5a5870 100644
--- a/packages/InputDevices/res/values-de/strings.xml
+++ b/packages/InputDevices/res/values-de/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slowenisch"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Türkisch"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainisch"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabisch"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Griechisch"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebräisch"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litauisch"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spanisch (Lateinisch)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-el/strings.xml b/packages/InputDevices/res/values-el/strings.xml
index f5d57a0..976f370 100644
--- a/packages/InputDevices/res/values-el/strings.xml
+++ b/packages/InputDevices/res/values-el/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Σλοβενικά"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Τουρκικά"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ουκρανικά"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Αραβικά"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Ελληνικά"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Εβραϊκά"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Λιθουανικά"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Ισπανικά (Λατινικής Αμερικής)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-en-rGB/strings.xml b/packages/InputDevices/res/values-en-rGB/strings.xml
index 2d794a6..50a98b26 100644
--- a/packages/InputDevices/res/values-en-rGB/strings.xml
+++ b/packages/InputDevices/res/values-en-rGB/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenian"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkish"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainian"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabic"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Greek"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebrew"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lithuanian"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spanish (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-en-rIN/strings.xml b/packages/InputDevices/res/values-en-rIN/strings.xml
index 2d794a6..50a98b26 100644
--- a/packages/InputDevices/res/values-en-rIN/strings.xml
+++ b/packages/InputDevices/res/values-en-rIN/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenian"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkish"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainian"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabic"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Greek"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebrew"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lithuanian"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spanish (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-es-rUS/strings.xml b/packages/InputDevices/res/values-es-rUS/strings.xml
index 2d61b80..b842a3b 100644
--- a/packages/InputDevices/res/values-es-rUS/strings.xml
+++ b/packages/InputDevices/res/values-es-rUS/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Árabe"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Griego"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebreo"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituano"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Español (latino)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-es/strings.xml b/packages/InputDevices/res/values-es/strings.xml
index 82ea4d6..5dc85a0 100644
--- a/packages/InputDevices/res/values-es/strings.xml
+++ b/packages/InputDevices/res/values-es/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Árabe"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Griego"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebreo"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituano"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Español (Latinoamérica)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-et-rEE/strings.xml b/packages/InputDevices/res/values-et-rEE/strings.xml
index 5b4fa3b..4ffdb37 100644
--- a/packages/InputDevices/res/values-et-rEE/strings.xml
+++ b/packages/InputDevices/res/values-et-rEE/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloveenia"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Türgi"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraina"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Araabia"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Kreeka"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Heebrea"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Leedu"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Hispaania (Ladina-Ameerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fa/strings.xml b/packages/InputDevices/res/values-fa/strings.xml
index 06c7f3a..fd6f54b 100644
--- a/packages/InputDevices/res/values-fa/strings.xml
+++ b/packages/InputDevices/res/values-fa/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"اسلوونیایی"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ترکی"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"اوکراینی"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"عربی"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"یونانی"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"عبری"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"لیتوانیایی"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"اسپانیایی (لاتین)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fi/strings.xml b/packages/InputDevices/res/values-fi/strings.xml
index 428eb30..b7ec183 100644
--- a/packages/InputDevices/res/values-fi/strings.xml
+++ b/packages/InputDevices/res/values-fi/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"sloveeni"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turkki"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukraina"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"arabia"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"kreikka"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"heprea"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"liettua"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"espanja (Latinalainen Amerikka)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fr-rCA/strings.xml b/packages/InputDevices/res/values-fr-rCA/strings.xml
index c947634..18600ed 100644
--- a/packages/InputDevices/res/values-fr-rCA/strings.xml
+++ b/packages/InputDevices/res/values-fr-rCA/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovène"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turc"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainien"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabe"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grec"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hébreu"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituanien"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Espagnol (latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fr/strings.xml b/packages/InputDevices/res/values-fr/strings.xml
index 4ad4ffa..e3ca49c 100644
--- a/packages/InputDevices/res/values-fr/strings.xml
+++ b/packages/InputDevices/res/values-fr/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovène"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turc"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainien"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabe"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grec"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hébreu"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituanien"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Espagnol (latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hi/strings.xml b/packages/InputDevices/res/values-hi/strings.xml
index 8e1864e..a1a4ef2 100644
--- a/packages/InputDevices/res/values-hi/strings.xml
+++ b/packages/InputDevices/res/values-hi/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"स्लोवेनियाई"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"तुर्की"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"यूक्रेनियाई"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"अरबी"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"ग्रीक"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"हिब्रू"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"लिथुआनियाई"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"स्पेनिश (लैटिन)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hr/strings.xml b/packages/InputDevices/res/values-hr/strings.xml
index 6217bf0..512ffd7 100644
--- a/packages/InputDevices/res/values-hr/strings.xml
+++ b/packages/InputDevices/res/values-hr/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"slovenska"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turska"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrajinska"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"arapski"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"grčki"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"hebrejski"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"litavski"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"španjolski (Latinska Amerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hu/strings.xml b/packages/InputDevices/res/values-hu/strings.xml
index 0cdbfb2..645e597 100644
--- a/packages/InputDevices/res/values-hu/strings.xml
+++ b/packages/InputDevices/res/values-hu/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"szlovén"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"török"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrán"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"arab"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"görög"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"héber"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"litván"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"spanyol (latin-amerikai)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hy-rAM/strings.xml b/packages/InputDevices/res/values-hy-rAM/strings.xml
index bc5bbfc..282dc82 100644
--- a/packages/InputDevices/res/values-hy-rAM/strings.xml
+++ b/packages/InputDevices/res/values-hy-rAM/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Սլովեներեն"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Թուրքերեն"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ուկրաիներեն"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Արաբերեն"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Հունարեն"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Եբրայերեն"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Լիտվերեն"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Իսպաներեն (Լատինական)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-in/strings.xml b/packages/InputDevices/res/values-in/strings.xml
index 11e2dd0a..a7fc330 100644
--- a/packages/InputDevices/res/values-in/strings.xml
+++ b/packages/InputDevices/res/values-in/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenia"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turki"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraina"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arab"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Yunani"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Ibrani"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lithuania"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spanyol (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-it/strings.xml b/packages/InputDevices/res/values-it/strings.xml
index 334318e..e8fe310 100644
--- a/packages/InputDevices/res/values-it/strings.xml
+++ b/packages/InputDevices/res/values-it/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloveno"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraino"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabo"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Greco"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Ebraico"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituano"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spagnolo (America Latina)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-iw/strings.xml b/packages/InputDevices/res/values-iw/strings.xml
index a989391..d2673d9 100644
--- a/packages/InputDevices/res/values-iw/strings.xml
+++ b/packages/InputDevices/res/values-iw/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"סלובנית"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"טורקית"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"אוקראינית"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"ערבית"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"יוונית"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"עברית"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"ליטאית"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"ספרדית (לטינית)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ja/strings.xml b/packages/InputDevices/res/values-ja/strings.xml
index 950b727..86cd30e 100644
--- a/packages/InputDevices/res/values-ja/strings.xml
+++ b/packages/InputDevices/res/values-ja/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"スロベニア語"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"トルコ語"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ウクライナ語"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"アラビア語"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"ギリシャ語"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"ヘブライ語"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"リトアニア語"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"スペイン語(中南米)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ka-rGE/strings.xml b/packages/InputDevices/res/values-ka-rGE/strings.xml
index 6e507aa..14ebee8 100644
--- a/packages/InputDevices/res/values-ka-rGE/strings.xml
+++ b/packages/InputDevices/res/values-ka-rGE/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"სლოვენური"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"თურქული"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"უკრაინული"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"არაბული"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"ბერძნული"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"ებრაული"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"ლიტვური"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"ესპანური (ლათინური)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-km-rKH/strings.xml b/packages/InputDevices/res/values-km-rKH/strings.xml
index 9a8c99b..569f273 100644
--- a/packages/InputDevices/res/values-km-rKH/strings.xml
+++ b/packages/InputDevices/res/values-km-rKH/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"ស្លូវ៉ានី"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ទួរគី"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"អ៊ុយក្រែន"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"អារ៉ាប់"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"ក្រិក"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"អ៊ីស្រាអែល"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"លីទុយអានី"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"អេស្ប៉ាញ (ឡាតាំង​)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ko/strings.xml b/packages/InputDevices/res/values-ko/strings.xml
index 8071586..dbbe6ea 100644
--- a/packages/InputDevices/res/values-ko/strings.xml
+++ b/packages/InputDevices/res/values-ko/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"슬로베니아어"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"터키어"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"우크라이나어"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"아랍어"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"그리스어"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"히브리어"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"리투아니아어"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"스페인어(라틴)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-lo-rLA/strings.xml b/packages/InputDevices/res/values-lo-rLA/strings.xml
index 2c97e11..eaf5026 100644
--- a/packages/InputDevices/res/values-lo-rLA/strings.xml
+++ b/packages/InputDevices/res/values-lo-rLA/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"ສະໂລເວນຽນ"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ເຕີກິສ"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ຢູເຄຣນຽນ"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"ອາຣັບ"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"ກ​ຣີກ"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"ຮີບຣິວ"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"​ລິ​ທົວ​ນຽນ"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"​ສະ​ແປນ​ນິດ (ລາ​ຕິນ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-lt/strings.xml b/packages/InputDevices/res/values-lt/strings.xml
index c0ed159..2fcacde 100644
--- a/packages/InputDevices/res/values-lt/strings.xml
+++ b/packages/InputDevices/res/values-lt/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovėnų k."</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkų k."</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainiečių k."</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabų"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Graikų"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebrajų"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lietuvių"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Ispanų (Lotynų Amerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-lv/strings.xml b/packages/InputDevices/res/values-lv/strings.xml
index 07a8654..921c881 100644
--- a/packages/InputDevices/res/values-lv/strings.xml
+++ b/packages/InputDevices/res/values-lv/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovēņu"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turku"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraiņu"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arābu"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grieķu"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Ivrits"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lietuviešu"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spāņu (latīņu)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-mn-rMN/strings.xml b/packages/InputDevices/res/values-mn-rMN/strings.xml
index ec6cccb..c99339e 100644
--- a/packages/InputDevices/res/values-mn-rMN/strings.xml
+++ b/packages/InputDevices/res/values-mn-rMN/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Словени"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Турк"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Украйн"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Араб"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Грек"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Еврей"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Литви"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Испани (Латин)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ms-rMY/strings.xml b/packages/InputDevices/res/values-ms-rMY/strings.xml
index 486f048..32041d0 100644
--- a/packages/InputDevices/res/values-ms-rMY/strings.xml
+++ b/packages/InputDevices/res/values-ms-rMY/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Bahasa Slovenia"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Bahasa Turki"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Bahasa Ukraine"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Bahasa Arab"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Bahasa Greek"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Bahasa Ibrani"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Bahasa Lithuania"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Bahasa Sepanyol (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-nb/strings.xml b/packages/InputDevices/res/values-nb/strings.xml
index b646061..e880981 100644
--- a/packages/InputDevices/res/values-nb/strings.xml
+++ b/packages/InputDevices/res/values-nb/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovensk"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Tyrkisk"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainsk"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabisk"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Gresk"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebraisk"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litauisk"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spansk (latinsk)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-nl/strings.xml b/packages/InputDevices/res/values-nl/strings.xml
index 56d84c9..92a9fcf 100644
--- a/packages/InputDevices/res/values-nl/strings.xml
+++ b/packages/InputDevices/res/values-nl/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloveens"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turks"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Oekraïens"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabisch"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grieks"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebreeuws"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litouws"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spaans (Latijns-Amerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-pl/strings.xml b/packages/InputDevices/res/values-pl/strings.xml
index 4522215..f84252a 100644
--- a/packages/InputDevices/res/values-pl/strings.xml
+++ b/packages/InputDevices/res/values-pl/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Słoweński"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turecki"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraiński"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"arabski"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"grecki"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"hebrajski"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"litewski"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"hiszpański (Ameryka Łacińska)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-pt-rPT/strings.xml b/packages/InputDevices/res/values-pt-rPT/strings.xml
index 9a639cd..670badd 100644
--- a/packages/InputDevices/res/values-pt-rPT/strings.xml
+++ b/packages/InputDevices/res/values-pt-rPT/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Árabe"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grego"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebraico"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituano"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Espanhol (América Latina)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-pt/strings.xml b/packages/InputDevices/res/values-pt/strings.xml
index 05a0cd0..71274aa 100644
--- a/packages/InputDevices/res/values-pt/strings.xml
+++ b/packages/InputDevices/res/values-pt/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Árabe"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grego"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebraico"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituano"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Espanhol (América Latina)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ro/strings.xml b/packages/InputDevices/res/values-ro/strings.xml
index 895d8f6..151c11d 100644
--- a/packages/InputDevices/res/values-ro/strings.xml
+++ b/packages/InputDevices/res/values-ro/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenă"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turcă"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraineană"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabă"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Greacă"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Ebraică"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lituaniană"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spaniolă (America Latină)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ru/strings.xml b/packages/InputDevices/res/values-ru/strings.xml
index a4cbfd7..585a215 100644
--- a/packages/InputDevices/res/values-ru/strings.xml
+++ b/packages/InputDevices/res/values-ru/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"словенский"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"турецкий"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"украинский"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Арабский"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Греческий"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Иврит"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Литовский"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Испанский (Латинская Америка)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sk/strings.xml b/packages/InputDevices/res/values-sk/strings.xml
index 01ab042..d14c204 100644
--- a/packages/InputDevices/res/values-sk/strings.xml
+++ b/packages/InputDevices/res/values-sk/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"slovinské"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turecké"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrajinské"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabčina"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Gréčtina"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebrejčina"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litovčina"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Španielčina (Latinská Amerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sl/strings.xml b/packages/InputDevices/res/values-sl/strings.xml
index 30ff3c4..b8fc823e 100644
--- a/packages/InputDevices/res/values-sl/strings.xml
+++ b/packages/InputDevices/res/values-sl/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"slovenska"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turška"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrajinska"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"arabščina"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"grščina"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"hebrejščina"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"litovščina"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"španščina (Latinska Amerika)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sr/strings.xml b/packages/InputDevices/res/values-sr/strings.xml
index d23ac00..45e0b4b 100644
--- a/packages/InputDevices/res/values-sr/strings.xml
+++ b/packages/InputDevices/res/values-sr/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"словеначка"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"турска"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"украјинска"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"арапски"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"грчки"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"хебрејски"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"литвански"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"шпански (Латинска Америка)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sv/strings.xml b/packages/InputDevices/res/values-sv/strings.xml
index 25a5ae8..ce20bff 100644
--- a/packages/InputDevices/res/values-sv/strings.xml
+++ b/packages/InputDevices/res/values-sv/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenskt"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkiskt"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainskt"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabiska"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Grekiska"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebreiska"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litauiska"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spanska (latinamerikansk)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sw/strings.xml b/packages/InputDevices/res/values-sw/strings.xml
index 65ab96a1..38bc83a 100644
--- a/packages/InputDevices/res/values-sw/strings.xml
+++ b/packages/InputDevices/res/values-sw/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Kislovenia"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Kituruki"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Kiukrania"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Kiarabu"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Kigiriki"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Kiyahudi"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Kilithuania"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Kihispania (Kilatini)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-th/strings.xml b/packages/InputDevices/res/values-th/strings.xml
index 0cc7d47..8951281 100644
--- a/packages/InputDevices/res/values-th/strings.xml
+++ b/packages/InputDevices/res/values-th/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"สโลวีเนีย"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ตุรกี"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ยูเครน"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"ภาษาอารบิค"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"กรีก"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"ฮิบรู"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"ลิทัวเนีย"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"สเปน (ละติน)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-tl/strings.xml b/packages/InputDevices/res/values-tl/strings.xml
index 08f34d2..c551e20 100644
--- a/packages/InputDevices/res/values-tl/strings.xml
+++ b/packages/InputDevices/res/values-tl/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenian"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkish"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainian"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arabic"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Greek"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Hebrew"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Lithuanian"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Spanish (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-tr/strings.xml b/packages/InputDevices/res/values-tr/strings.xml
index f7c1262..d828e78 100644
--- a/packages/InputDevices/res/values-tr/strings.xml
+++ b/packages/InputDevices/res/values-tr/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovence"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Türkçe"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraynaca"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Arapça"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Yunanca"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"İbranice"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Litvanca"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"İspanyolca (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-uk/strings.xml b/packages/InputDevices/res/values-uk/strings.xml
index ee6ffc7..b4b9923 100644
--- a/packages/InputDevices/res/values-uk/strings.xml
+++ b/packages/InputDevices/res/values-uk/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"словенська"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"турецька"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"українська"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Арабська"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Грецька"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Іврит"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Литовська"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Іспанська (латиниця)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-vi/strings.xml b/packages/InputDevices/res/values-vi/strings.xml
index 7a65e45..18aa989 100644
--- a/packages/InputDevices/res/values-vi/strings.xml
+++ b/packages/InputDevices/res/values-vi/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Tiếng Sloven"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Tiếng Thổ Nhĩ Kỳ"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Tiếng Ukraina"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Tiếng Ả rập"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Tiếng Hy Lạp"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Tiếng Do Thái"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Tiếng Lithuania"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Tiếng Tây Ban Nha (La tinh)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zh-rCN/strings.xml b/packages/InputDevices/res/values-zh-rCN/strings.xml
index 85b1c84..8d76f92 100644
--- a/packages/InputDevices/res/values-zh-rCN/strings.xml
+++ b/packages/InputDevices/res/values-zh-rCN/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"斯洛文尼亚语"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"土耳其语"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"乌克兰语"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"阿拉伯语"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"希腊语"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"希伯来语"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"立陶宛语"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"西班牙语(拉丁美洲)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zh-rHK/strings.xml b/packages/InputDevices/res/values-zh-rHK/strings.xml
index 839c546..031f294 100644
--- a/packages/InputDevices/res/values-zh-rHK/strings.xml
+++ b/packages/InputDevices/res/values-zh-rHK/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"斯洛文尼亞文"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"土耳其文"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"烏克蘭文"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"阿拉伯文"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"希臘文"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"希伯來文"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"立陶宛文"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"西班牙文 (拉丁美洲)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zh-rTW/strings.xml b/packages/InputDevices/res/values-zh-rTW/strings.xml
index ba9f132..76cb6a2 100644
--- a/packages/InputDevices/res/values-zh-rTW/strings.xml
+++ b/packages/InputDevices/res/values-zh-rTW/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"斯洛維尼亞文"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"土耳其文"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"烏克蘭文"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"阿拉伯文"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"希臘文"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"希伯來文"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"立陶宛文"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"西班牙文 (拉丁美洲)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zu/strings.xml b/packages/InputDevices/res/values-zu/strings.xml
index fbf1074..3e4ad67 100644
--- a/packages/InputDevices/res/values-zu/strings.xml
+++ b/packages/InputDevices/res/values-zu/strings.xml
@@ -34,4 +34,9 @@
     <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Isi-Slovenian"</string>
     <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Isi-Turkish"</string>
     <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Isi-Ukrainian"</string>
+    <string name="keyboard_layout_arabic" msgid="5671970465174968712">"Isi-Arabic"</string>
+    <string name="keyboard_layout_greek" msgid="7289253560162386040">"Isi-Greek"</string>
+    <string name="keyboard_layout_hebrew" msgid="7241473985890173812">"Isi-Hebrew"</string>
+    <string name="keyboard_layout_lithuanian" msgid="6943110873053106534">"Isi-Lithuanian"</string>
+    <string name="keyboard_layout_spanish_latin" msgid="5690539836069535697">"Isi-Spanish (Latin)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values/strings.xml b/packages/InputDevices/res/values/strings.xml
index 54c18f1..6239336 100644
--- a/packages/InputDevices/res/values/strings.xml
+++ b/packages/InputDevices/res/values/strings.xml
@@ -98,4 +98,19 @@
 
     <!-- Ukrainian keyboard layout label. [CHAR LIMIT=35] -->
     <string name="keyboard_layout_ukrainian">Ukrainian</string>
+
+    <!-- Arabic keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_arabic">Arabic</string>
+
+    <!-- Greek keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_greek">Greek</string>
+
+    <!-- Hebrew keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_hebrew">Hebrew</string>
+
+    <!-- Lithuanian keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_lithuanian">Lithuanian</string>
+
+    <!-- Spanish (Latin) keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_spanish_latin">Spanish (Latin)</string>
 </resources>
diff --git a/packages/InputDevices/res/xml/keyboard_layouts.xml b/packages/InputDevices/res/xml/keyboard_layouts.xml
index 1f48a36..dc1db0b 100644
--- a/packages/InputDevices/res/xml/keyboard_layouts.xml
+++ b/packages/InputDevices/res/xml/keyboard_layouts.xml
@@ -123,4 +123,24 @@
     <keyboard-layout android:name="keyboard_layout_ukrainian"
             android:label="@string/keyboard_layout_ukrainian"
             android:keyboardLayout="@raw/keyboard_layout_ukrainian" />
+
+    <keyboard-layout android:name="keyboard_layout_arabic"
+            android:label="@string/keyboard_layout_arabic"
+            android:keyboardLayout="@raw/keyboard_layout_arabic" />
+
+    <keyboard-layout android:name="keyboard_layout_greek"
+            android:label="@string/keyboard_layout_greek"
+            android:keyboardLayout="@raw/keyboard_layout_greek" />
+
+    <keyboard-layout android:name="keyboard_layout_hebrew"
+            android:label="@string/keyboard_layout_hebrew"
+            android:keyboardLayout="@raw/keyboard_layout_hebrew" />
+
+    <keyboard-layout android:name="keyboard_layout_lithuanian"
+            android:label="@string/keyboard_layout_lithuanian"
+            android:keyboardLayout="@raw/keyboard_layout_lithuanian" />
+
+    <keyboard-layout android:name="keyboard_layout_spanish_latin"
+            android:label="@string/keyboard_layout_spanish_latin"
+            android:keyboardLayout="@raw/keyboard_layout_spanish_latin" />
 </keyboard-layouts>
diff --git a/packages/Keyguard/Android.mk b/packages/Keyguard/Android.mk
index 5b08674..1be44f9 100644
--- a/packages/Keyguard/Android.mk
+++ b/packages/Keyguard/Android.mk
@@ -19,7 +19,7 @@
 LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-subdir-Iaidl-files) \
                    $(call all-proto-files-under,src)
 
-LOCAL_PACKAGE_NAME := Keyguard
+LOCAL_MODULE := Keyguard
 
 LOCAL_CERTIFICATE := platform
 
@@ -30,6 +30,8 @@
 LOCAL_PROTOC_OPTIMIZE_TYPE := nano
 LOCAL_PROTO_JAVA_OUTPUT_PARAMS := optional_field_style=accessors
 
-include $(BUILD_PACKAGE)
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
-#include $(call all-makefiles-under,$(LOCAL_PATH))
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+#include $(call all-makefiles-under,$(LOCAL_PATH))
\ No newline at end of file
diff --git a/packages/Keyguard/AndroidManifest.xml b/packages/Keyguard/AndroidManifest.xml
index 66d1e75..352317d 100644
--- a/packages/Keyguard/AndroidManifest.xml
+++ b/packages/Keyguard/AndroidManifest.xml
@@ -39,14 +39,12 @@
     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
     <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
     <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
+    <uses-permission android:name="android.permission.TRUST_LISTENER" />
 
     <application android:label="@string/app_name"
         android:process="com.android.systemui"
         android:persistent="true"
         android:supportsRtl="true">
 
-        <service android:name=".KeyguardService"
-            android:exported="true" />
-
     </application>
 </manifest>
diff --git a/packages/Keyguard/res/layout-land/keyguard_host_view.xml b/packages/Keyguard/res/layout-land/keyguard_host_view.xml
index 9f1c1f0..1d596d3 100644
--- a/packages/Keyguard/res/layout-land/keyguard_host_view.xml
+++ b/packages/Keyguard/res/layout-land/keyguard_host_view.xml
@@ -21,7 +21,7 @@
     and the security view. -->
 <com.android.keyguard.KeyguardHostView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_host_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/packages/Keyguard/res/layout-land/keyguard_simple_host_view.xml b/packages/Keyguard/res/layout-land/keyguard_simple_host_view.xml
index ebd0a64..49b4212 100644
--- a/packages/Keyguard/res/layout-land/keyguard_simple_host_view.xml
+++ b/packages/Keyguard/res/layout-land/keyguard_simple_host_view.xml
@@ -21,7 +21,7 @@
     and the security view. -->
 <com.android.keyguard.KeyguardSimpleHostView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_host_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
diff --git a/packages/Keyguard/res/layout-land/keyguard_widget_pager.xml b/packages/Keyguard/res/layout-land/keyguard_widget_pager.xml
index da31065..50c2709 100644
--- a/packages/Keyguard/res/layout-land/keyguard_widget_pager.xml
+++ b/packages/Keyguard/res/layout-land/keyguard_widget_pager.xml
@@ -19,7 +19,7 @@
 
 <!-- This is the selector widget that allows the user to select an action. -->
 <com.android.keyguard.KeyguardWidgetCarousel
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:paddingLeft="25dp"
     android:paddingRight="25dp"
diff --git a/packages/Keyguard/res/layout-port/keyguard_host_view.xml b/packages/Keyguard/res/layout-port/keyguard_host_view.xml
index 136b296..8223db4 100644
--- a/packages/Keyguard/res/layout-port/keyguard_host_view.xml
+++ b/packages/Keyguard/res/layout-port/keyguard_host_view.xml
@@ -21,7 +21,7 @@
     and the security view. -->
 <com.android.keyguard.KeyguardHostView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_host_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/packages/Keyguard/res/layout-port/keyguard_simple_host_view.xml b/packages/Keyguard/res/layout-port/keyguard_simple_host_view.xml
index cba7667..ed600b0 100644
--- a/packages/Keyguard/res/layout-port/keyguard_simple_host_view.xml
+++ b/packages/Keyguard/res/layout-port/keyguard_simple_host_view.xml
@@ -21,7 +21,7 @@
     and the security view. -->
 <com.android.keyguard.KeyguardSimpleHostView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_host_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
diff --git a/packages/Keyguard/res/layout-port/keyguard_widget_pager.xml b/packages/Keyguard/res/layout-port/keyguard_widget_pager.xml
index d0a07ca..6d7d864 100644
--- a/packages/Keyguard/res/layout-port/keyguard_widget_pager.xml
+++ b/packages/Keyguard/res/layout-port/keyguard_widget_pager.xml
@@ -19,7 +19,7 @@
 
 <!-- This is the selector widget that allows the user to select an action. -->
 <com.android.keyguard.KeyguardWidgetPager
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/app_widget_container"
     android:paddingLeft="25dp"
diff --git a/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml b/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml
index 85f6b6d..ba2f3a6 100644
--- a/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml
+++ b/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml
@@ -21,7 +21,7 @@
     and the security view. -->
 <com.android.keyguard.KeyguardHostView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_host_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_account_view.xml b/packages/Keyguard/res/layout/keyguard_account_view.xml
index 766effa..bde2ec6 100644
--- a/packages/Keyguard/res/layout/keyguard_account_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_account_view.xml
@@ -18,7 +18,7 @@
 -->
 <com.android.keyguard.KeyguardAccountView
     xmlns:android="http://schemas.android.com/apk/res/android"
-	xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+	xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_account_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_bouncer.xml b/packages/Keyguard/res/layout/keyguard_bouncer.xml
new file mode 100644
index 0000000..dedf427
--- /dev/null
+++ b/packages/Keyguard/res/layout/keyguard_bouncer.xml
@@ -0,0 +1,31 @@
+<?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:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <View android:id="@+id/bouncer_background"
+        android:background="#aa000000"
+        android:clickable="true"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+    <include layout="@layout/keyguard_simple_host_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+</FrameLayout>
+
diff --git a/packages/Keyguard/res/layout/keyguard_face_unlock_view.xml b/packages/Keyguard/res/layout/keyguard_face_unlock_view.xml
index 94c68a5..8c8ec7a 100644
--- a/packages/Keyguard/res/layout/keyguard_face_unlock_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_face_unlock_view.xml
@@ -20,7 +20,7 @@
 <!-- This is the screen that allows the user to unlock by showing their face.  -->
 <com.android.keyguard.KeyguardFaceUnlockView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_face_unlock_view"
     android:orientation="vertical"
     android:layout_width="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_multi_user_selector.xml b/packages/Keyguard/res/layout/keyguard_multi_user_selector.xml
index c1d5326..83036ab 100644
--- a/packages/Keyguard/res/layout/keyguard_multi_user_selector.xml
+++ b/packages/Keyguard/res/layout/keyguard_multi_user_selector.xml
@@ -17,7 +17,7 @@
 */
 -->
 <com.android.keyguard.KeyguardMultiUserSelectorView
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     xmlns:android="http://schemas.android.com/apk/res/android"
     androidprv:layout_childType="userSwitcher"
     android:id="@+id/keyguard_user_selector"
diff --git a/packages/Keyguard/res/layout/keyguard_password_view.xml b/packages/Keyguard/res/layout/keyguard_password_view.xml
index d8012bf..ed3f0e0 100644
--- a/packages/Keyguard/res/layout/keyguard_password_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_password_view.xml
@@ -18,7 +18,7 @@
 -->
 <com.android.keyguard.KeyguardPasswordView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_password_view"
     android:orientation="vertical"
     android:layout_width="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_pattern_view.xml b/packages/Keyguard/res/layout/keyguard_pattern_view.xml
index 0c9380c..3d7820f 100644
--- a/packages/Keyguard/res/layout/keyguard_pattern_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_pattern_view.xml
@@ -22,7 +22,7 @@
      is the portrait layout.  -->
 <com.android.keyguard.KeyguardPatternView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_pattern_view"
     android:orientation="vertical"
     android:layout_width="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_pin_view.xml b/packages/Keyguard/res/layout/keyguard_pin_view.xml
index 00c6a21..a804c8c 100644
--- a/packages/Keyguard/res/layout/keyguard_pin_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_pin_view.xml
@@ -19,7 +19,7 @@
 
 <com.android.keyguard.KeyguardPINView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_pin_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_presentation.xml b/packages/Keyguard/res/layout/keyguard_presentation.xml
index 7df0b70..ab676aa 100644
--- a/packages/Keyguard/res/layout/keyguard_presentation.xml
+++ b/packages/Keyguard/res/layout/keyguard_presentation.xml
@@ -20,7 +20,7 @@
 <!-- This is a view that shows general status information in Keyguard. -->
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/presentation"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
diff --git a/packages/Keyguard/res/layout/keyguard_selector_view.xml b/packages/Keyguard/res/layout/keyguard_selector_view.xml
index 6cb5e67..d3064ed 100644
--- a/packages/Keyguard/res/layout/keyguard_selector_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_selector_view.xml
@@ -20,7 +20,7 @@
 <!-- This is the selector widget that allows the user to select an action. -->
 <com.android.keyguard.KeyguardSelectorView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_selector_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_sim_pin_view.xml b/packages/Keyguard/res/layout/keyguard_sim_pin_view.xml
index eccac19..e96220e 100644
--- a/packages/Keyguard/res/layout/keyguard_sim_pin_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_sim_pin_view.xml
@@ -19,7 +19,7 @@
 <!-- This is the SIM PIN view that allows the user to enter a SIM PIN to unlock the device. -->
 <com.android.keyguard.KeyguardSimPinView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_sim_pin_view"
     android:orientation="vertical"
     android:layout_width="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_sim_puk_view.xml b/packages/Keyguard/res/layout/keyguard_sim_puk_view.xml
index fe37203..bf15ba0 100644
--- a/packages/Keyguard/res/layout/keyguard_sim_puk_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_sim_puk_view.xml
@@ -20,7 +20,7 @@
     carrier-provided PUK code and entering a new SIM PIN for it. -->
 <com.android.keyguard.KeyguardSimPukView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_sim_puk_view"
     android:orientation="vertical"
     android:layout_width="match_parent"
diff --git a/packages/Keyguard/res/layout/keyguard_status_area.xml b/packages/Keyguard/res/layout/keyguard_status_area.xml
index 98ba512..2730517 100644
--- a/packages/Keyguard/res/layout/keyguard_status_area.xml
+++ b/packages/Keyguard/res/layout/keyguard_status_area.xml
@@ -20,7 +20,7 @@
 <!-- This is a view that shows general status information in Keyguard. -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
diff --git a/packages/Keyguard/res/layout/keyguard_status_view.xml b/packages/Keyguard/res/layout/keyguard_status_view.xml
index a4d298a..3b3a069 100644
--- a/packages/Keyguard/res/layout/keyguard_status_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_status_view.xml
@@ -18,43 +18,38 @@
 -->
 
 <!-- This is a view that shows general status information in Keyguard. -->
-<com.android.keyguard.KeyguardWidgetFrame
+<com.android.keyguard.KeyguardStatusView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/res/com.android.keyguard"
+    xmlns:androidprv="http://schemas.android.com/apk/res-auto"
     android:id="@+id/keyguard_status_view"
+    android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     androidprv:layout_maxWidth="@dimen/keyguard_security_width"
     androidprv:layout_maxHeight="@dimen/keyguard_security_height"
-    android:gravity="center">
-
-    <com.android.keyguard.KeyguardStatusView
-        android:id="@+id/keyguard_status_view_face_palm"
-        android:orientation="vertical"
+    android:gravity="center_horizontal|top"
+    android:layout_marginTop="32dp"
+    android:layout_marginBottom="32dp"
+    android:contentDescription="@string/keyguard_accessibility_status">
+    <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center_horizontal|top"
-        android:contentDescription="@string/keyguard_accessibility_status">
-        <LinearLayout
-            android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal|top"
+        android:orientation="vertical"
+        android:focusable="true">
+        <TextClock
+            android:id="@+id/clock_view"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_horizontal|top"
-            android:orientation="vertical"
-            android:focusable="true">
-            <TextClock
-                android:id="@+id/clock_view"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal|top"
-                android:textColor="@color/clock_white"
-                android:singleLine="true"
-                style="@style/widget_big_thin"
-                android:format12Hour="@string/keyguard_widget_12_hours_format"
-                android:format24Hour="@string/keyguard_widget_24_hours_format"
-                android:baselineAligned="true"
-                android:layout_marginBottom="@dimen/bottom_text_spacing_digital" />
+            android:textColor="@color/clock_white"
+            android:singleLine="true"
+            style="@style/widget_big_thin"
+            android:format12Hour="@string/keyguard_widget_12_hours_format"
+            android:format24Hour="@string/keyguard_widget_24_hours_format"
+            android:baselineAligned="true"
+            android:layout_marginBottom="@dimen/bottom_text_spacing_digital" />
 
-            <include layout="@layout/keyguard_status_area" />
-        </LinearLayout>
-    </com.android.keyguard.KeyguardStatusView>
-</com.android.keyguard.KeyguardWidgetFrame>
+        <include layout="@layout/keyguard_status_area" />
+    </LinearLayout>
+</com.android.keyguard.KeyguardStatusView>
diff --git a/packages/Keyguard/res/values-sk/strings.xml b/packages/Keyguard/res/values-sk/strings.xml
index 89ac293..cdf8ca9 100644
--- a/packages/Keyguard/res/values-sk/strings.xml
+++ b/packages/Keyguard/res/values-sk/strings.xml
@@ -35,7 +35,7 @@
     <string name="keyguard_low_battery" msgid="8143808018719173859">"Pripojte nabíjačku."</string>
     <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Telefón odomknete stlačením tlačidla Menu."</string>
     <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Sieť je zablokovaná"</string>
-    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nie je vložená karta SIM"</string>
+    <string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"Nie je vložená karta SIM."</string>
     <string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"V tablete nie je žiadna karta SIM."</string>
     <string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"V telefóne nie je žiadna karta SIM."</string>
     <string name="keyguard_missing_sim_instructions" msgid="5210891509995942250">"Vložte kartu SIM."</string>
diff --git a/packages/Keyguard/res/values/dimens.xml b/packages/Keyguard/res/values/dimens.xml
index 71e9924..c05f834 100644
--- a/packages/Keyguard/res/values/dimens.xml
+++ b/packages/Keyguard/res/values/dimens.xml
@@ -158,7 +158,7 @@
     <dimen name="bottom_text_spacing_digital">-8dp</dimen>
     <dimen name="label_font_size">14dp</dimen>
     <dimen name="widget_label_font_size">14dp</dimen>
-    <dimen name="widget_big_font_size">80dp</dimen>
+    <dimen name="widget_big_font_size">60dp</dimen>
     <dimen name="big_font_size">120dp</dimen>
 
 </resources>
diff --git a/packages/Keyguard/res/values/strings.xml b/packages/Keyguard/res/values/strings.xml
index 4738049..d20b269 100644
--- a/packages/Keyguard/res/values/strings.xml
+++ b/packages/Keyguard/res/values/strings.xml
@@ -18,6 +18,8 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- App label in the manifest  -->
+    <string name="app_name">Keyguard</string>
     <!-- Instructions telling the user to enter their SIM PIN to unlock the keyguard.
          Displayed in one line in a large font.  -->
     <string name="keyguard_password_enter_pin_code">Type PIN code</string>
diff --git a/packages/Keyguard/res/values/styles.xml b/packages/Keyguard/res/values/styles.xml
index d4f98af..4a034aa 100644
--- a/packages/Keyguard/res/values/styles.xml
+++ b/packages/Keyguard/res/values/styles.xml
@@ -56,8 +56,7 @@
     <!-- Built-in clock widget stuff -->
     <style name="widget_label">
         <item name="android:textStyle">bold</item>
-        <item name="android:textAllCaps">true</item>
-        <item name="android:fontFamily">sans-serif-condensed</item>
+        <item name="android:fontFamily">sans-serif-light</item>
         <item name="android:textSize">@dimen/widget_label_font_size</item>
     </style>
     <style name="big_thin">
@@ -68,7 +67,7 @@
         <item name="android:textSize">@dimen/widget_big_font_size</item>
     </style>
 
-    <style name="Widget.TransportControl.SeekBar" parent="@android:style/Widget.Holo.SeekBar">
+    <style name="Widget.TransportControl.SeekBar" parent="@android:style/Widget.DeviceDefault.Light.SeekBar">
         <item name="android:indeterminateOnly">false</item>
         <item name="android:progressDrawable">@drawable/scrubber_progress_horizontal_holo_light</item>
         <item name="android:indeterminateDrawable">@drawable/scrubber_progress_horizontal_holo_light</item>
diff --git a/packages/Keyguard/src/com/android/keyguard/CameraWidgetFrame.java b/packages/Keyguard/src/com/android/keyguard/CameraWidgetFrame.java
index 74e6f33..2bf74ea 100644
--- a/packages/Keyguard/src/com/android/keyguard/CameraWidgetFrame.java
+++ b/packages/Keyguard/src/com/android/keyguard/CameraWidgetFrame.java
@@ -38,7 +38,7 @@
 
 public class CameraWidgetFrame extends KeyguardWidgetFrame implements View.OnClickListener {
     private static final String TAG = CameraWidgetFrame.class.getSimpleName();
-    private static final boolean DEBUG = KeyguardHostView.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final int WIDGET_ANIMATION_DURATION = 250; // ms
     private static final int WIDGET_WAIT_DURATION = 400; // ms
     private static final int RECOVERY_DELAY = 1000; // ms
@@ -113,12 +113,14 @@
 
     private final KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() {
         private boolean mShowing;
-        void onKeyguardVisibilityChanged(boolean showing) {
+
+        @Override
+        public void onKeyguardVisibilityChanged(boolean showing) {
             if (mShowing == showing)
                 return;
             mShowing = showing;
             CameraWidgetFrame.this.onKeyguardVisibilityChanged(mShowing);
-        };
+        }
     };
 
     private static final class FixedSizeFrameLayout extends FrameLayout {
diff --git a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
index fd56613..4ed37d4 100644
--- a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
+++ b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
@@ -48,10 +48,11 @@
             updateEmergencyCallButton(simState, phoneState);
         }
 
-        void onPhoneStateChanged(int phoneState) {
+        @Override
+        public void onPhoneStateChanged(int phoneState) {
             State simState = KeyguardUpdateMonitor.getInstance(mContext).getSimState();
             updateEmergencyCallButton(simState, phoneState);
-        };
+        }
     };
     private LockPatternUtils mLockPatternUtils;
     private PowerManager mPowerManager;
diff --git a/packages/Keyguard/src/com/android/keyguard/FaceUnlock.java b/packages/Keyguard/src/com/android/keyguard/FaceUnlock.java
index de839c6..2f14003 100644
--- a/packages/Keyguard/src/com/android/keyguard/FaceUnlock.java
+++ b/packages/Keyguard/src/com/android/keyguard/FaceUnlock.java
@@ -37,8 +37,9 @@
 
 public class FaceUnlock implements BiometricSensorUnlock, Handler.Callback {
 
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final String TAG = "FULLockscreen";
+    private static final String FACE_LOCK_PACKAGE = "com.android.facelock";
 
     private final Context mContext;
     private final LockPatternUtils mLockPatternUtils;
@@ -128,7 +129,8 @@
         if (!mBoundToService) {
             Log.d(TAG, "Binding to Face Unlock service for user="
                     + mLockPatternUtils.getCurrentUser());
-            mContext.bindServiceAsUser(new Intent(IFaceLockInterface.class.getName()),
+            mContext.bindServiceAsUser(
+                    new Intent(IFaceLockInterface.class.getName()).setPackage(FACE_LOCK_PACKAGE),
                     mConnection,
                     Context.BIND_AUTO_CREATE,
                     new UserHandle(mLockPatternUtils.getCurrentUser()));
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
index 3950159..4b386b6 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
@@ -231,7 +231,7 @@
     @Override
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {
         if (mCallback != null) {
-            mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS);
+            mCallback.userActivity(KeyguardConstants.DIGIT_PRESS_WAKE_MILLIS);
         }
     }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java b/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java
index 368a97a..25f3383 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java
@@ -43,7 +43,7 @@
 
 public abstract class KeyguardActivityLauncher {
     private static final String TAG = KeyguardActivityLauncher.class.getSimpleName();
-    private static final boolean DEBUG = KeyguardHostView.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final String META_DATA_KEYGUARD_LAYOUT = "com.android.keyguard.layout";
     private static final Intent SECURE_CAMERA_INTENT =
             new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE)
@@ -104,9 +104,10 @@
 
         // Workaround to avoid camera release/acquisition race when resuming face unlock
         // after showing lockscreen camera (bug 11063890).
-        KeyguardUpdateMonitor.getInstance(getContext()).setAlternateUnlockEnabled(false);
+        KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(getContext());
+        updateMonitor.setAlternateUnlockEnabled(false);
 
-        if (lockPatternUtils.isSecure()) {
+        if (mustLaunchSecurely()) {
             // Launch the secure version of the camera
             if (wouldLaunchResolverActivity(SECURE_CAMERA_INTENT)) {
                 // TODO: Show disambiguation dialog instead.
@@ -123,6 +124,13 @@
         }
     }
 
+    private boolean mustLaunchSecurely() {
+        LockPatternUtils lockPatternUtils = getLockPatternUtils();
+        KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(getContext());
+        int currentUser = lockPatternUtils.getCurrentUser();
+        return lockPatternUtils.isSecure() && !updateMonitor.getUserHasTrust(currentUser);
+    }
+
     public void launchWidgetPicker(int appWidgetId) {
         Intent pickIntent = new Intent(AppWidgetManager.ACTION_KEYGUARD_APPWIDGET_PICK);
 
@@ -177,9 +185,9 @@
                 Intent.FLAG_ACTIVITY_NEW_TASK
                 | Intent.FLAG_ACTIVITY_SINGLE_TOP
                 | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        boolean isSecure = lockPatternUtils.isSecure();
-        if (!isSecure || showsWhileLocked) {
-            if (!isSecure) {
+        boolean mustLaunchSecurely = mustLaunchSecurely();
+        if (!mustLaunchSecurely || showsWhileLocked) {
+            if (!mustLaunchSecurely) {
                 dismissKeyguardOnNextActivity();
             }
             try {
@@ -253,7 +261,7 @@
     }
 
     private Intent getCameraIntent() {
-        return getLockPatternUtils().isSecure() ? SECURE_CAMERA_INTENT : INSECURE_CAMERA_INTENT;
+        return mustLaunchSecurely() ? SECURE_CAMERA_INTENT : INSECURE_CAMERA_INTENT;
     }
 
     private boolean wouldLaunchResolverActivity(Intent intent) {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardConstants.java b/packages/Keyguard/src/com/android/keyguard/KeyguardConstants.java
new file mode 100644
index 0000000..bfa95f38
--- /dev/null
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardConstants.java
@@ -0,0 +1,32 @@
+/*
+ * 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.android.keyguard;
+
+/**
+ * Defines constants for the Keyguard.
+ */
+public class KeyguardConstants {
+
+    /**
+     * Turns on debugging information for the whole Keyguard. This is very verbose and should only
+     * be used temporarily for debugging.
+     */
+    public static final boolean DEBUG = false;
+
+    /** Timeout used for key presses. */
+    public static final int DIGIT_PRESS_WAKE_MILLIS = 5000;
+}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardDisplayManager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardDisplayManager.java
index 6bcbd6c..55f965c 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardDisplayManager.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardDisplayManager.java
@@ -30,18 +30,18 @@
 
 public class KeyguardDisplayManager {
     protected static final String TAG = "KeyguardDisplayManager";
-    private static boolean DEBUG = KeyguardViewMediator.DEBUG;
+    private static boolean DEBUG = KeyguardConstants.DEBUG;
     Presentation mPresentation;
     private MediaRouter mMediaRouter;
     private Context mContext;
     private boolean mShowing;
 
-    KeyguardDisplayManager(Context context) {
+    public KeyguardDisplayManager(Context context) {
         mContext = context;
         mMediaRouter = (MediaRouter) mContext.getSystemService(Context.MEDIA_ROUTER_SERVICE);
     }
 
-    void show() {
+    public void show() {
         if (!mShowing) {
             if (DEBUG) Slog.v(TAG, "show");
             mMediaRouter.addCallback(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY,
@@ -51,7 +51,7 @@
         mShowing = true;
     }
 
-    void hide() {
+    public void hide() {
         if (mShowing) {
             if (DEBUG) Slog.v(TAG, "hide");
             mMediaRouter.removeCallback(mMediaRouterCallback);
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
index c2cd32f..900d16e 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
@@ -36,7 +36,7 @@
 public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecurityView {
 
     private static final String TAG = "FULKeyguardFaceUnlockView";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private KeyguardSecurityCallback mKeyguardSecurityCallback;
     private LockPatternUtils mLockPatternUtils;
     private BiometricSensorUnlock mBiometricUnlock;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
index 2e76f19..7cfd684 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
@@ -61,7 +61,7 @@
 
 public class KeyguardHostView extends KeyguardViewBase {
     private static final String TAG = "KeyguardHostView";
-    public static boolean DEBUG = KeyguardViewMediator.DEBUG;
+    public static boolean DEBUG = KeyguardConstants.DEBUG;
     public static boolean DEBUGXPORT = true; // debug music transport control
 
     // Transport control states.
@@ -118,7 +118,7 @@
         void userActivity();
     }
 
-    /*package*/ interface OnDismissAction {
+    public interface OnDismissAction {
         /* returns true if the dismiss should be deferred */
         boolean onDismiss();
     }
@@ -241,7 +241,7 @@
             }
         }
         @Override
-        void onMusicClientIdChanged(
+        public void onMusicClientIdChanged(
                 int clientGeneration, boolean clearing, android.app.PendingIntent intent) {
             // Set transport state to invisible until we know music is playing (below)
             if (DEBUGXPORT && (mClientGeneration != clientGeneration || clearing)) {
@@ -449,7 +449,7 @@
     }
 
     @Override
-    protected void setLockPatternUtils(LockPatternUtils utils) {
+    public void setLockPatternUtils(LockPatternUtils utils) {
         super.setLockPatternUtils(utils);
         getSecurityContainer().updateSecurityViews(mViewStateManager.isBouncing());
     }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardMultiUserAvatar.java b/packages/Keyguard/src/com/android/keyguard/KeyguardMultiUserAvatar.java
index aa2ae0e..3aec55c 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardMultiUserAvatar.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardMultiUserAvatar.java
@@ -37,7 +37,7 @@
 
 class KeyguardMultiUserAvatar extends FrameLayout {
     private static final String TAG = KeyguardMultiUserAvatar.class.getSimpleName();
-    private static final boolean DEBUG = KeyguardHostView.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
 
     private ImageView mUserImage;
     private TextView mUserName;
@@ -123,7 +123,7 @@
         mUserName = (TextView) findViewById(R.id.keyguard_user_name);
 
         mFramed = (KeyguardCircleFramedDrawable)
-                KeyguardViewMediator.getAvatarCache().get(user.id);
+                MultiUserAvatarCache.getInstance().get(user.id);
 
         // If we can't find it or the params don't match, create the drawable again
         if (mFramed == null
@@ -143,7 +143,7 @@
 
             mFramed = new KeyguardCircleFramedDrawable(icon, (int) mIconSize, mFrameColor, mStroke,
                     mFrameShadowColor, mShadowRadius, mHighlightColor);
-            KeyguardViewMediator.getAvatarCache().put(user.id, mFramed);
+            MultiUserAvatarCache.getInstance().put(user.id, mFramed);
         }
 
         mFramed.reset();
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
index 14de6dd..b4308c6 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
@@ -44,7 +44,7 @@
 public class KeyguardPatternView extends LinearLayout implements KeyguardSecurityView {
 
     private static final String TAG = "SecurityPatternView";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
 
     // how long before we clear the wrong pattern
     private static final int PATTERN_CLEAR_TIMEOUT_MS = 2000;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
index 0f62100..8425c48 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -30,7 +30,7 @@
 import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
 
 public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSecurityView {
-    private static final boolean DEBUG = KeyguardViewMediator.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final String TAG = "KeyguardSecurityView";
     private KeyguardSecurityModel mSecurityModel;
     private boolean mEnableFallback; // TODO: This should get the value from KeyguardPatternView
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java
index 9f5768a..da6482a 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java
@@ -23,6 +23,7 @@
 import com.android.internal.widget.LockPatternUtils;
 
 public class KeyguardSecurityModel {
+
     /**
      * The different types of security available for {@link Mode#UnlockScreen}.
      * @see com.android.internal.policy.impl.LockPatternKeyguardView#getUnlockMode()
@@ -82,6 +83,8 @@
         } else if (simState == IccCardConstants.State.PUK_REQUIRED
                 && mLockPatternUtils.isPukUnlockScreenEnable()) {
             mode = SecurityMode.SimPuk;
+        } else if (updateMonitor.getUserHasTrust(mLockPatternUtils.getCurrentUser())) {
+            mode = SecurityMode.None;
         } else {
             final int security = mLockPatternUtils.getKeyguardStoredPasswordQuality();
             switch (security) {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
index 70a0e44..07239d1 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
@@ -38,7 +38,7 @@
  */
 public class KeyguardSecurityViewFlipper extends ViewFlipper implements KeyguardSecurityView {
     private static final String TAG = "KeyguardSecurityViewFlipper";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
 
     private Rect mTempRect = new Rect();
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
index 97aec68..03e7b07 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
@@ -36,7 +36,6 @@
 import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener;
 
 public class KeyguardSelectorView extends LinearLayout implements KeyguardSecurityView {
-    private static final boolean DEBUG = KeyguardHostView.DEBUG;
     private static final String TAG = "SecuritySelectorView";
     private static final String ASSIST_ICON_METADATA_NAME =
         "com.android.systemui.action_assist_icon";
@@ -57,12 +56,10 @@
         public void onTrigger(View v, int target) {
             final int resId = mGlowPadView.getResourceIdForTarget(target);
 
-            switch (resId) {
-                case R.drawable.ic_lockscreen_unlock_phantom:
-                case R.drawable.ic_lockscreen_unlock:
-                    mCallback.userActivity(0);
-                    mCallback.dismiss(false);
-                break;
+            if (resId == R.drawable.ic_lockscreen_unlock_phantom
+                    || resId == R.drawable.ic_lockscreen_unlock) {
+                mCallback.userActivity(0);
+                mCallback.dismiss(false);
             }
         }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardService.java b/packages/Keyguard/src/com/android/keyguard/KeyguardService.java
deleted file mode 100644
index 36b2446..0000000
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardService.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2013 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.android.keyguard;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-import android.app.Service;
-import android.content.Intent;
-import static android.content.pm.PackageManager.PERMISSION_GRANTED;
-
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.Debug;
-import android.os.IBinder;
-import android.util.Log;
-import android.view.MotionEvent;
-
-import com.android.internal.policy.IKeyguardService;
-import com.android.internal.policy.IKeyguardExitCallback;
-import com.android.internal.policy.IKeyguardShowCallback;
-import com.android.internal.widget.LockPatternUtils;
-
-public class KeyguardService extends Service {
-    static final String TAG = "KeyguardService";
-    static final String PERMISSION = android.Manifest.permission.CONTROL_KEYGUARD;
-    private KeyguardViewMediator mKeyguardViewMediator;
-
-    @Override
-    public void onCreate() {
-        if (mKeyguardViewMediator == null) {
-            mKeyguardViewMediator = new KeyguardViewMediator(
-                    KeyguardService.this, new LockPatternUtils(KeyguardService.this));
-        }
-        Log.v(TAG, "onCreate()");
-    }
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return mBinder;
-    }
-
-    @Override
-    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-        // TODO
-    }
-
-    void checkPermission() {
-        if (getBaseContext().checkCallingOrSelfPermission(PERMISSION) != PERMISSION_GRANTED) {
-            Log.w(TAG, "Caller needs permission '" + PERMISSION + "' to call " + Debug.getCaller());
-            throw new SecurityException("Access denied to process: " + Binder.getCallingPid()
-                    + ", must have permission " + PERMISSION);
-        }
-    }
-
-    private final IKeyguardService.Stub mBinder = new IKeyguardService.Stub() {
-        public boolean isShowing() {
-            return mKeyguardViewMediator.isShowing();
-        }
-        public boolean isSecure() {
-            return mKeyguardViewMediator.isSecure();
-        }
-        public boolean isShowingAndNotHidden() {
-            return mKeyguardViewMediator.isShowingAndNotHidden();
-        }
-        public boolean isInputRestricted() {
-            return mKeyguardViewMediator.isInputRestricted();
-        }
-        public void verifyUnlock(IKeyguardExitCallback callback) {
-            mKeyguardViewMediator.verifyUnlock(callback);
-        }
-        public void keyguardDone(boolean authenticated, boolean wakeup) {
-            checkPermission();
-            mKeyguardViewMediator.keyguardDone(authenticated, wakeup);
-        }
-        public void setHidden(boolean isHidden) {
-            checkPermission();
-            mKeyguardViewMediator.setHidden(isHidden);
-        }
-        public void dismiss() {
-            mKeyguardViewMediator.dismiss();
-        }
-        public void onDreamingStarted() {
-            checkPermission();
-            mKeyguardViewMediator.onDreamingStarted();
-        }
-        public void onDreamingStopped() {
-            checkPermission();
-            mKeyguardViewMediator.onDreamingStopped();
-        }
-        public void onScreenTurnedOff(int reason) {
-            checkPermission();
-            mKeyguardViewMediator.onScreenTurnedOff(reason);
-        }
-        public void onScreenTurnedOn(IKeyguardShowCallback callback) {
-            checkPermission();
-            mKeyguardViewMediator.onScreenTurnedOn(callback);
-        }
-        public void setKeyguardEnabled(boolean enabled) {
-            checkPermission();
-            mKeyguardViewMediator.setKeyguardEnabled(enabled);
-        }
-        public boolean isDismissable() {
-            return mKeyguardViewMediator.isDismissable();
-        }
-        public void onSystemReady() {
-            checkPermission();
-            mKeyguardViewMediator.onSystemReady();
-        }
-        public void doKeyguardTimeout(Bundle options) {
-            checkPermission();
-            mKeyguardViewMediator.doKeyguardTimeout(options);
-        }
-        public void setCurrentUser(int userId) {
-            checkPermission();
-            mKeyguardViewMediator.setCurrentUser(userId);
-        }
-        public void showAssistant() {
-            checkPermission();
-            mKeyguardViewMediator.showAssistant();
-        }
-        public void dispatch(MotionEvent event) {
-            checkPermission();
-            mKeyguardViewMediator.dispatch(event);
-        }
-        public void launchCamera() {
-            checkPermission();
-            mKeyguardViewMediator.launchCamera();
-        }
-        public void onBootCompleted() {
-            checkPermission();
-            mKeyguardViewMediator.onBootCompleted();
-        }
-    };
-
-}
-
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
index ae7ac97..d6a4f52 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
@@ -41,7 +41,7 @@
 public class KeyguardSimPinView extends KeyguardAbsKeyInputView
         implements KeyguardSecurityView, OnEditorActionListener, TextWatcher {
     private static final String LOG_TAG = "KeyguardSimPinView";
-    private static final boolean DEBUG = KeyguardViewMediator.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     public static final String TAG = "KeyguardSimPinView";
 
     private ProgressDialog mSimUnlockProgressDialog = null;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
index ca4f811..04cbde1 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
@@ -42,7 +42,7 @@
 public class KeyguardSimPukView extends KeyguardAbsKeyInputView
         implements KeyguardSecurityView, OnEditorActionListener, TextWatcher {
     private static final String LOG_TAG = "KeyguardSimPukView";
-    private static final boolean DEBUG = KeyguardViewMediator.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     public static final String TAG = "KeyguardSimPukView";
 
     private ProgressDialog mSimUnlockProgressDialog = null;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java
index cf983cb..5d5168c 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java
@@ -38,11 +38,6 @@
     }
 
     @Override
-    public void verifyUnlock() {
-        // TODO Auto-generated method stub
-    }
-
-    @Override
     public void cleanUp() {
         // TODO Auto-generated method stub
     }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
index 0bfee38..ae55c4a 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
@@ -33,7 +33,7 @@
 import java.util.Locale;
 
 public class KeyguardStatusView extends GridLayout {
-    private static final boolean DEBUG = KeyguardViewMediator.DEBUG;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final String TAG = "KeyguardStatusView";
 
     private LockPatternUtils mLockPatternUtils;
@@ -50,22 +50,22 @@
         }
 
         @Override
-        void onKeyguardVisibilityChanged(boolean showing) {
+        public void onKeyguardVisibilityChanged(boolean showing) {
             if (showing) {
                 if (DEBUG) Slog.v(TAG, "refresh statusview showing:" + showing);
                 refresh();
             }
-        };
+        }
 
         @Override
         public void onScreenTurnedOn() {
             setEnableMarquee(true);
-        };
+        }
 
         @Override
         public void onScreenTurnedOff(int why) {
             setEnableMarquee(false);
-        };
+        }
     };
 
     public KeyguardStatusView(Context context) {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
index a7cd909..0d472ae 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
@@ -60,7 +60,7 @@
 public class KeyguardTransportControlView extends FrameLayout {
 
     private static final int RESET_TO_METADATA_DELAY = 5000;
-    protected static final boolean DEBUG = false;
+    protected static final boolean DEBUG = KeyguardConstants.DEBUG;
     protected static final String TAG = "TransportControlView";
 
     private static final boolean ANIMATE_TRANSITIONS = true;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 3b712e9..73c2840 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -20,6 +20,7 @@
 import android.app.IUserSwitchObserver;
 import android.app.PendingIntent;
 import android.app.admin.DevicePolicyManager;
+import android.app.trust.TrustManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -51,6 +52,8 @@
 
 import android.telephony.TelephonyManager;
 import android.util.Log;
+import android.util.SparseBooleanArray;
+
 import com.google.android.collect.Lists;
 
 import java.lang.ref.WeakReference;
@@ -66,10 +69,10 @@
  * the device, and {@link #getFailedUnlockAttempts()}, {@link #reportFailedAttempt()}
  * and {@link #clearFailedUnlockAttempts()}.  Maybe we should rename this 'KeyguardContext'...
  */
-public class KeyguardUpdateMonitor {
+public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
 
     private static final String TAG = "KeyguardUpdateMonitor";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final boolean DEBUG_SIM_STATES = DEBUG || false;
     private static final int FAILED_BIOMETRIC_UNLOCK_ATTEMPTS_BEFORE_BACKUP = 3;
     private static final int LOW_BATTERY_THRESHOLD = 20;
@@ -205,6 +208,17 @@
 
     private AudioManager mAudioManager;
 
+    private SparseBooleanArray mUserHasTrust = new SparseBooleanArray();
+
+    @Override
+    public void onTrustChanged(boolean enabled, int userId) {
+        mUserHasTrust.put(userId, enabled);
+    }
+
+    public boolean getUserHasTrust(int userId) {
+        return mUserHasTrust.get(userId);
+    }
+
     static class DisplayClientState {
         public int clientGeneration;
         public boolean clearing;
@@ -581,6 +595,9 @@
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
+
+        TrustManager trustManager = (TrustManager) context.getSystemService(Context.TRUST_SERVICE);
+        trustManager.registerTrustListener(this);
     }
 
     private boolean isDeviceProvisionedInSettingsDb() {
@@ -662,7 +679,7 @@
      * broadcast and hence not handle the event. This method is ultimately called by
      * PhoneWindowManager in this case.
      */
-    protected void dispatchBootCompleted() {
+    public void dispatchBootCompleted() {
         mHandler.sendEmptyMessage(MSG_BOOT_COMPLETED);
     }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index 481d132..862931e 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -20,7 +20,7 @@
 import android.graphics.Bitmap;
 import android.media.AudioManager;
 import android.os.SystemClock;
-import android.util.Log;
+import android.telephony.TelephonyManager;
 import android.view.WindowManagerPolicy;
 
 import com.android.internal.telephony.IccCardConstants;
@@ -28,7 +28,7 @@
 /**
  * Callback for general information relevant to lock screen.
  */
-class KeyguardUpdateMonitorCallback {
+public class KeyguardUpdateMonitorCallback {
 
     private static final long VISIBILITY_CHANGED_COLLAPSE_MS = 1000;
     private long mVisibilityChangedCalled;
@@ -40,12 +40,12 @@
      *
      * @param status current battery status
      */
-    void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
+    public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
 
     /**
      * Called once per minute or when the time changes.
      */
-    void onTimeChanged() { }
+    public void onTimeChanged() { }
 
     /**
      * Called when the carrier PLMN or SPN changes.
@@ -54,14 +54,14 @@
      *   be displayed.
      * @param spn The service provider name.  May be null if it shouldn't be displayed.
      */
-    void onRefreshCarrierInfo(CharSequence plmn, CharSequence spn) { }
+    public void onRefreshCarrierInfo(CharSequence plmn, CharSequence spn) { }
 
     /**
      * Called when the ringer mode changes.
      * @param state the current ringer state, as defined in
      * {@link AudioManager#RINGER_MODE_CHANGED_ACTION}
      */
-    void onRingerModeChanged(int state) { }
+    public void onRingerModeChanged(int state) { }
 
     /**
      * Called when the phone state changes. String will be one of:
@@ -69,15 +69,15 @@
      * {@link TelephonyManager@EXTRA_STATE_RINGING}
      * {@link TelephonyManager#EXTRA_STATE_OFFHOOK
      */
-    void onPhoneStateChanged(int phoneState) { }
+    public void onPhoneStateChanged(int phoneState) { }
 
     /**
      * Called when the visibility of the keyguard changes.
      * @param showing Indicates if the keyguard is now visible.
      */
-    void onKeyguardVisibilityChanged(boolean showing) { }
+    public void onKeyguardVisibilityChanged(boolean showing) { }
 
-    void onKeyguardVisibilityChangedRaw(boolean showing) {
+    public void onKeyguardVisibilityChangedRaw(boolean showing) {
         final long now = SystemClock.elapsedRealtime();
         if (showing == mShowing
                 && (now - mVisibilityChangedCalled) < VISIBILITY_CHANGED_COLLAPSE_MS) return;
@@ -90,44 +90,44 @@
      * Called when visibility of lockscreen clock changes, such as when
      * obscured by a widget.
      */
-    void onClockVisibilityChanged() { }
+    public void onClockVisibilityChanged() { }
 
     /**
      * Called when the device becomes provisioned
      */
-    void onDeviceProvisioned() { }
+    public void onDeviceProvisioned() { }
 
     /**
      * Called when the device policy changes.
      * See {@link DevicePolicyManager#ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED}
      */
-    void onDevicePolicyManagerStateChanged() { }
+    public void onDevicePolicyManagerStateChanged() { }
 
     /**
      * Called when the user change begins.
      */
-    void onUserSwitching(int userId) { }
+    public void onUserSwitching(int userId) { }
 
     /**
      * Called when the user change is complete.
      */
-    void onUserSwitchComplete(int userId) { }
+    public void onUserSwitchComplete(int userId) { }
 
     /**
      * Called when the SIM state changes.
      * @param simState
      */
-    void onSimStateChanged(IccCardConstants.State simState) { }
+    public void onSimStateChanged(IccCardConstants.State simState) { }
 
     /**
      * Called when a user is removed.
      */
-    void onUserRemoved(int userId) { }
+    public void onUserRemoved(int userId) { }
 
     /**
      * Called when the user's info changed.
      */
-    void onUserInfoChanged(int userId) { }
+    public void onUserInfoChanged(int userId) { }
 
     /**
      * Called when boot completed.
@@ -135,12 +135,12 @@
      * Note, this callback will only be received if boot complete occurs after registering with
      * KeyguardUpdateMonitor.
      */
-    void onBootCompleted() { }
+    public void onBootCompleted() { }
 
     /**
      * Called when audio client attaches or detaches from AudioManager.
      */
-    void onMusicClientIdChanged(int clientGeneration, boolean clearing, PendingIntent intent) { }
+    public void onMusicClientIdChanged(int clientGeneration, boolean clearing, PendingIntent intent) { }
 
     /**
      * Called when the audio playback state changes.
@@ -178,4 +178,5 @@
      * Called when the NFC Service has found a tag that is registered for NFC unlock.
      */
     public void onNfcUnlock() { }
+
 }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java
index 78f4506..bc0f364 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java
@@ -60,7 +60,7 @@
 
     private AudioManager mAudioManager;
     private TelephonyManager mTelephonyManager = null;
-    protected KeyguardViewMediator.ViewMediatorCallback mViewMediatorCallback;
+    protected ViewMediatorCallback mViewMediatorCallback;
     protected LockPatternUtils mLockPatternUtils;
     private OnDismissAction mDismissAction;
 
@@ -68,7 +68,7 @@
     // they will be handled here for specific media types such as music, otherwise
     // the audio service will bring up the volume dialog.
     private static final boolean KEYGUARD_MANAGES_VOLUME = true;
-    private static final boolean DEBUG = false;
+    public static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final String TAG = "KeyguardViewBase";
 
     private KeyguardSecurityContainer mSecurityContainer;
@@ -107,7 +107,6 @@
         mSecurityContainer.setSecurityCallback(this);
         mSecurityContainer.showPrimarySecurityScreen(false);
         // mSecurityContainer.updateSecurityViews(false /* not bouncing */);
-        setBackButtonEnabled(false);
     }
 
     /**
@@ -120,15 +119,11 @@
 
     /**
      *  Dismisses the keyguard by going to the next screen or making it gone.
+     *
+     *  @return True if the keyguard is done.
      */
-    public void dismiss() {
-        dismiss(false);
-    }
-
-    private void setBackButtonEnabled(boolean enabled) {
-        setSystemUiVisibility(enabled ?
-                getSystemUiVisibility() & ~View.STATUS_BAR_DISABLE_BACK :
-                getSystemUiVisibility() | View.STATUS_BAR_DISABLE_BACK);
+    public boolean dismiss() {
+        return dismiss(false);
     }
 
     protected void showBouncer(boolean show) {
@@ -141,8 +136,7 @@
 
     public boolean handleBackKey() {
         if (mSecurityContainer.getCurrentSecuritySelection() == SecurityMode.Account) {
-            // go back to primary screen and re-disable back
-            setBackButtonEnabled(false);
+            // go back to primary screen
             mSecurityContainer.showPrimarySecurityScreen(false /*turningOff*/);
             return true;
         }
@@ -205,12 +199,6 @@
 
     @Override
     public void onSecurityModeChanged(SecurityMode securityMode, boolean needsInput) {
-        // Enable or disable the back button based on security mode
-        if (securityMode == SecurityMode.Account && !mLockPatternUtils.isPermanentlyLocked()) {
-            // we're showing account as a backup, provide a way to get back to primary
-            setBackButtonEnabled(true);
-        }
-
         if (mViewMediatorCallback != null) {
             mViewMediatorCallback.setNeedsInput(needsInput);
         }
@@ -231,7 +219,7 @@
     /**
      * Called when the screen turned off.
      */
-    protected void onScreenTurnedOff() {
+    public void onScreenTurnedOff() {
         if (DEBUG) Log.d(TAG, String.format("screen off, instance %s at %s",
                 Integer.toHexString(hashCode()), SystemClock.uptimeMillis()));
         // Once the screen turns off, we no longer consider this to be first boot and we want the
@@ -245,7 +233,7 @@
     /**
      * Called when the screen turned on.
      */
-    protected void onScreenTurnedOn() {
+    public void onScreenTurnedOn() {
         if (DEBUG) Log.d(TAG, "screen on, instance " + Integer.toHexString(hashCode()));
         mSecurityContainer.showPrimarySecurityScreen(false);
         mSecurityContainer.onResume(KeyguardSecurityView.SCREEN_ON);
@@ -433,8 +421,7 @@
         return false;
     }
 
-    public void setViewMediatorCallback(
-            KeyguardViewMediator.ViewMediatorCallback viewMediatorCallback) {
+    public void setViewMediatorCallback(ViewMediatorCallback viewMediatorCallback) {
         mViewMediatorCallback = viewMediatorCallback;
         // Update ViewMediator with the current input method requirements
         mViewMediatorCallback.setNeedsInput(mSecurityContainer.needsInput());
@@ -484,7 +471,7 @@
         mActivityLauncher.launchCamera(getHandler(), null);
     }
 
-    protected void setLockPatternUtils(LockPatternUtils utils) {
+    public void setLockPatternUtils(LockPatternUtils utils) {
         mLockPatternUtils = utils;
         mSecurityContainer.setLockPatternUtils(utils);
     }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
deleted file mode 100644
index 5b35ba88..0000000
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
+++ /dev/null
@@ -1,575 +0,0 @@
-/*
- * Copyright (C) 2007 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.android.keyguard;
-
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-
-import com.android.internal.policy.IKeyguardShowCallback;
-import com.android.internal.widget.LockPatternUtils;
-import com.android.keyguard.analytics.KeyguardAnalytics;
-
-import org.xmlpull.v1.XmlPullParser;
-
-import android.app.ActivityManager;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.ActivityInfo;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.PixelFormat;
-import android.graphics.PorterDuff;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.Parcelable;
-import android.os.RemoteException;
-import android.os.SystemProperties;
-import android.provider.Settings;
-import android.util.Log;
-import android.util.Slog;
-import android.util.SparseArray;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewManager;
-import android.view.WindowManager;
-import android.widget.FrameLayout;
-
-/**
- * Manages creating, showing, hiding and resetting the keyguard.  Calls back
- * via {@link KeyguardViewMediator.ViewMediatorCallback} to poke
- * the wake lock and report that the keyguard is done, which is in turn,
- * reported to this class by the current {@link KeyguardViewBase}.
- */
-public class KeyguardViewManager {
-    private final static boolean DEBUG = KeyguardViewMediator.DEBUG;
-    private static String TAG = "KeyguardViewManager";
-    public final static String IS_SWITCHING_USER = "is_switching_user";
-
-    // Delay dismissing keyguard to allow animations to complete.
-    private static final int HIDE_KEYGUARD_DELAY = 500;
-
-    // Timeout used for keypresses
-    static final int DIGIT_PRESS_WAKE_MILLIS = 5000;
-    private static final boolean ENABLE_SIMPLE_KEYGUARD = false;
-
-    private final Context mContext;
-    private final ViewManager mViewManager;
-    private final KeyguardViewMediator.ViewMediatorCallback mViewMediatorCallback;
-    private final KeyguardAnalytics.Callback mAnalyticsCallback;
-
-    private WindowManager.LayoutParams mWindowLayoutParams;
-    private boolean mNeedsInput = false;
-
-    private ViewManagerHost mKeyguardHost;
-    private KeyguardViewBase mKeyguardView;
-
-    private boolean mScreenOn = false;
-    private LockPatternUtils mLockPatternUtils;
-
-    private KeyguardUpdateMonitorCallback mBackgroundChanger = new KeyguardUpdateMonitorCallback() {
-        @Override
-        public void onSetBackground(Bitmap bmp) {
-            mKeyguardHost.setCustomBackground(bmp != null ?
-                    new BitmapDrawable(mContext.getResources(), bmp) : null);
-            updateShowWallpaper(bmp == null);
-        }
-    };
-
-    public interface ShowListener {
-        void onShown(IBinder windowToken);
-    };
-
-    /**
-     * @param context Used to create views.
-     * @param viewManager Keyguard will be attached to this.
-     * @param callback Used to notify of changes.
-     * @param lockPatternUtils
-     */
-    public KeyguardViewManager(Context context, ViewManager viewManager,
-            KeyguardViewMediator.ViewMediatorCallback callback,
-            LockPatternUtils lockPatternUtils, KeyguardAnalytics.Callback analyticsCallback) {
-        mContext = context;
-        mViewManager = viewManager;
-        mViewMediatorCallback = callback;
-        mLockPatternUtils = lockPatternUtils;
-        mAnalyticsCallback = analyticsCallback;
-    }
-
-    /**
-     * Show the keyguard.  Will handle creating and attaching to the view manager
-     * lazily.
-     */
-    public synchronized void show(Bundle options) {
-        if (DEBUG) Log.d(TAG, "show(); mKeyguardView==" + mKeyguardView);
-        if (mAnalyticsCallback != null) {
-            mAnalyticsCallback.onShow();
-        }
-
-        boolean enableScreenRotation = shouldEnableScreenRotation();
-
-        maybeCreateKeyguardLocked(enableScreenRotation, false, options);
-        maybeEnableScreenRotation(enableScreenRotation);
-
-        // Disable common aspects of the system/status/navigation bars that are not appropriate or
-        // useful on any keyguard screen but can be re-shown by dialogs or SHOW_WHEN_LOCKED
-        // activities. Other disabled bits are handled by the KeyguardViewMediator talking
-        // directly to the status bar service.
-        int visFlags = View.STATUS_BAR_DISABLE_HOME;
-        if (shouldEnableTranslucentDecor()) {
-            mWindowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
-                                       | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
-        }
-        if (DEBUG) Log.v(TAG, "show:setSystemUiVisibility(" + Integer.toHexString(visFlags)+")");
-        mKeyguardHost.setSystemUiVisibility(visFlags);
-
-        mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
-        mKeyguardHost.setVisibility(View.VISIBLE);
-        mKeyguardView.show();
-        mKeyguardView.requestFocus();
-    }
-
-    private boolean shouldEnableScreenRotation() {
-        Resources res = mContext.getResources();
-        return SystemProperties.getBoolean("lockscreen.rot_override",false)
-                || res.getBoolean(R.bool.config_enableLockScreenRotation);
-    }
-
-    private boolean shouldEnableTranslucentDecor() {
-        Resources res = mContext.getResources();
-        return res.getBoolean(R.bool.config_enableLockScreenTranslucentDecor);
-    }
-
-    class ViewManagerHost extends FrameLayout {
-        private static final int BACKGROUND_COLOR = 0x70000000;
-
-        private Drawable mCustomBackground;
-
-        // This is a faster way to draw the background on devices without hardware acceleration
-        private final Drawable mBackgroundDrawable = new Drawable() {
-            @Override
-            public void draw(Canvas canvas) {
-                if (mCustomBackground != null) {
-                    final Rect bounds = mCustomBackground.getBounds();
-                    final int vWidth = getWidth();
-                    final int vHeight = getHeight();
-
-                    final int restore = canvas.save();
-                    canvas.translate(-(bounds.width() - vWidth) / 2,
-                            -(bounds.height() - vHeight) / 2);
-                    mCustomBackground.draw(canvas);
-                    canvas.restoreToCount(restore);
-                } else {
-                    canvas.drawColor(BACKGROUND_COLOR, PorterDuff.Mode.SRC);
-                }
-            }
-
-            @Override
-            public void setAlpha(int alpha) {
-            }
-
-            @Override
-            public void setColorFilter(ColorFilter cf) {
-            }
-
-            @Override
-            public int getOpacity() {
-                return PixelFormat.TRANSLUCENT;
-            }
-        };
-
-        public ViewManagerHost(Context context) {
-            super(context);
-            setBackground(mBackgroundDrawable);
-        }
-
-        public void setCustomBackground(Drawable d) {
-            mCustomBackground = d;
-            if (d != null) {
-                d.setColorFilter(BACKGROUND_COLOR, PorterDuff.Mode.SRC_OVER);
-            }
-            computeCustomBackgroundBounds();
-            invalidate();
-        }
-
-        private void computeCustomBackgroundBounds() {
-            if (mCustomBackground == null) return; // Nothing to do
-            if (!isLaidOut()) return; // We'll do this later
-
-            final int bgWidth = mCustomBackground.getIntrinsicWidth();
-            final int bgHeight = mCustomBackground.getIntrinsicHeight();
-            final int vWidth = getWidth();
-            final int vHeight = getHeight();
-
-            final float bgAspect = (float) bgWidth / bgHeight;
-            final float vAspect = (float) vWidth / vHeight;
-
-            if (bgAspect > vAspect) {
-                mCustomBackground.setBounds(0, 0, (int) (vHeight * bgAspect), vHeight);
-            } else {
-                mCustomBackground.setBounds(0, 0, vWidth, (int) (vWidth / bgAspect));
-            }
-        }
-
-        @Override
-        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
-            super.onSizeChanged(w, h, oldw, oldh);
-            computeCustomBackgroundBounds();
-        }
-
-        @Override
-        protected void onConfigurationChanged(Configuration newConfig) {
-            super.onConfigurationChanged(newConfig);
-            if (mKeyguardHost.getVisibility() == View.VISIBLE) {
-                // only propagate configuration messages if we're currently showing
-                maybeCreateKeyguardLocked(shouldEnableScreenRotation(), true, null);
-            } else {
-                if (DEBUG) Log.v(TAG, "onConfigurationChanged: view not visible");
-            }
-        }
-
-        @Override
-        public boolean dispatchKeyEvent(KeyEvent event) {
-            if (mKeyguardView != null) {
-                // Always process back and menu keys, regardless of focus
-                if (event.getAction() == KeyEvent.ACTION_DOWN) {
-                    int keyCode = event.getKeyCode();
-                    if (keyCode == KeyEvent.KEYCODE_BACK && mKeyguardView.handleBackKey()) {
-                        return true;
-                    } else if (keyCode == KeyEvent.KEYCODE_MENU && mKeyguardView.handleMenuKey()) {
-                        return true;
-                    }
-                }
-                // Always process media keys, regardless of focus
-                if (mKeyguardView.dispatchKeyEvent(event)) {
-                    return true;
-                }
-            }
-            return super.dispatchKeyEvent(event);
-        }
-
-        @Override
-        public boolean dispatchTouchEvent(MotionEvent ev) {
-            boolean result = false;
-            if (mAnalyticsCallback != null) {
-                result = mAnalyticsCallback.onTouchEvent(ev, getWidth(), getHeight()) || result;
-            }
-            return super.dispatchTouchEvent(ev) || result;
-        }
-    }
-
-    SparseArray<Parcelable> mStateContainer = new SparseArray<Parcelable>();
-    private int mCurrentLayout;
-
-    private void maybeCreateKeyguardLocked(boolean enableScreenRotation, boolean force,
-            Bundle options) {
-        if (mKeyguardHost != null) {
-            mKeyguardHost.saveHierarchyState(mStateContainer);
-        }
-
-        if (mKeyguardHost == null) {
-            if (DEBUG) Log.d(TAG, "keyguard host is null, creating it...");
-
-            mKeyguardHost = new ViewManagerHost(mContext);
-
-            int flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
-                    | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
-                    | WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
-                    | WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
-
-            if (!mNeedsInput) {
-                flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-            }
-
-            final int stretch = ViewGroup.LayoutParams.MATCH_PARENT;
-            final int type = WindowManager.LayoutParams.TYPE_KEYGUARD;
-            WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
-                    stretch, stretch, type, flags, PixelFormat.TRANSLUCENT);
-            lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
-            lp.windowAnimations = R.style.Animation_LockScreen;
-            lp.screenOrientation = enableScreenRotation ?
-                    ActivityInfo.SCREEN_ORIENTATION_USER : ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
-
-            if (ActivityManager.isHighEndGfx()) {
-                lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
-                lp.privateFlags |=
-                        WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_HARDWARE_ACCELERATED;
-            }
-            lp.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SET_NEEDS_MENU_KEY;
-            lp.inputFeatures |= WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY;
-            lp.setTitle("Keyguard");
-            mWindowLayoutParams = lp;
-            mViewManager.addView(mKeyguardHost, lp);
-
-            KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mBackgroundChanger);
-        }
-
-        if (force || mKeyguardView == null) {
-            mKeyguardHost.setCustomBackground(null);
-            mKeyguardHost.removeAllViews();
-            int layout = (allowNotificationsOnSecureKeyguard() && ENABLE_SIMPLE_KEYGUARD)
-                    ? R.layout.keyguard_simple_host_view
-                    : R.layout.keyguard_host_view;
-            if (mCurrentLayout != layout) {
-                mStateContainer.clear(); // don't restore to the wrong view hierarchy
-                mCurrentLayout = layout;
-            }
-            mKeyguardView = inflateKeyguardView(options, layout);
-            mKeyguardView.requestFocus();
-        }
-        updateUserActivityTimeoutInWindowLayoutParams();
-        mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
-
-        mKeyguardHost.restoreHierarchyState(mStateContainer);
-    }
-
-    private boolean allowNotificationsOnSecureKeyguard() {
-        ContentResolver cr = mContext.getContentResolver();
-        return Settings.Global.getInt(cr, Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0) == 1;
-    }
-
-    private KeyguardViewBase inflateKeyguardView(Bundle options, int layoutId) {
-        View v = mKeyguardHost.findViewById(R.id.keyguard_host_view);
-        if (v != null) {
-            mKeyguardHost.removeView(v);
-        }
-        final LayoutInflater inflater = LayoutInflater.from(mContext);
-        View view = inflater.inflate(layoutId, mKeyguardHost, true);
-        KeyguardViewBase keyguard = (KeyguardViewBase) view.findViewById(R.id.keyguard_host_view);
-        keyguard.setLockPatternUtils(mLockPatternUtils);
-        keyguard.setViewMediatorCallback(mViewMediatorCallback);
-        keyguard.onUserSwitching(options != null && options.getBoolean(IS_SWITCHING_USER));
-        keyguard.onCreateOptions(options);
-        return keyguard;
-    }
-
-    public void updateUserActivityTimeout() {
-        updateUserActivityTimeoutInWindowLayoutParams();
-        mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
-    }
-
-    private void updateUserActivityTimeoutInWindowLayoutParams() {
-        // Use the user activity timeout requested by the keyguard view, if any.
-        if (mKeyguardView != null) {
-            long timeout = mKeyguardView.getUserActivityTimeout();
-            if (timeout >= 0) {
-                mWindowLayoutParams.userActivityTimeout = timeout;
-                return;
-            }
-        }
-
-        // Otherwise, use the default timeout.
-        mWindowLayoutParams.userActivityTimeout = KeyguardViewMediator.AWAKE_INTERVAL_DEFAULT_MS;
-    }
-
-    private void maybeEnableScreenRotation(boolean enableScreenRotation) {
-        // TODO: move this outside
-        if (enableScreenRotation) {
-            if (DEBUG) Log.d(TAG, "Rotation sensor for lock screen On!");
-            mWindowLayoutParams.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_USER;
-        } else {
-            if (DEBUG) Log.d(TAG, "Rotation sensor for lock screen Off!");
-            mWindowLayoutParams.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
-        }
-        mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
-    }
-
-    void updateShowWallpaper(boolean show) {
-        if (show) {
-            mWindowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
-        } else {
-            mWindowLayoutParams.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
-        }
-        mWindowLayoutParams.format = show ? PixelFormat.TRANSLUCENT : PixelFormat.OPAQUE;
-
-        mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
-    }
-
-    public void setNeedsInput(boolean needsInput) {
-        mNeedsInput = needsInput;
-        if (mWindowLayoutParams != null) {
-            if (needsInput) {
-                mWindowLayoutParams.flags &=
-                    ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-            } else {
-                mWindowLayoutParams.flags |=
-                    WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-            }
-
-            try {
-                mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
-            } catch (java.lang.IllegalArgumentException e) {
-                // TODO: Ensure this method isn't called on views that are changing...
-                Log.w(TAG,"Can't update input method on " + mKeyguardHost + " window not attached");
-            }
-        }
-    }
-
-    /**
-     * Reset the state of the view.
-     */
-    public synchronized void reset(Bundle options) {
-        if (DEBUG) Log.d(TAG, "reset()");
-        // User might have switched, check if we need to go back to keyguard
-        // TODO: It's preferable to stay and show the correct lockscreen or unlock if none
-        maybeCreateKeyguardLocked(shouldEnableScreenRotation(), true, options);
-    }
-
-    public synchronized void onScreenTurnedOff() {
-        if (DEBUG) Log.d(TAG, "onScreenTurnedOff()");
-        mScreenOn = false;
-        if (mKeyguardView != null) {
-            mKeyguardView.onScreenTurnedOff();
-        }
-    }
-
-    public synchronized void onScreenTurnedOn(final IKeyguardShowCallback callback) {
-        if (DEBUG) Log.d(TAG, "onScreenTurnedOn()");
-        mScreenOn = true;
-
-        // If keyguard is not showing, we need to inform PhoneWindowManager with a null
-        // token so it doesn't wait for us to draw...
-        final IBinder token = isShowing() ? mKeyguardHost.getWindowToken() : null;
-
-        if (DEBUG && token == null) Slog.v(TAG, "send wm null token: "
-                + (mKeyguardHost == null ? "host was null" : "not showing"));
-
-        if (mKeyguardView != null) {
-            mKeyguardView.onScreenTurnedOn();
-
-            // Caller should wait for this window to be shown before turning
-            // on the screen.
-            if (callback != null) {
-                if (mKeyguardHost.getVisibility() == View.VISIBLE) {
-                    // Keyguard may be in the process of being shown, but not yet
-                    // updated with the window manager...  give it a chance to do so.
-                    mKeyguardHost.post(new Runnable() {
-                        @Override
-                        public void run() {
-                            try {
-                                callback.onShown(token);
-                            } catch (RemoteException e) {
-                                Slog.w(TAG, "Exception calling onShown():", e);
-                            }
-                        }
-                    });
-                } else {
-                    try {
-                        callback.onShown(token);
-                    } catch (RemoteException e) {
-                        Slog.w(TAG, "Exception calling onShown():", e);
-                    }
-                }
-            }
-        } else if (callback != null) {
-            try {
-                callback.onShown(token);
-            } catch (RemoteException e) {
-                Slog.w(TAG, "Exception calling onShown():", e);
-            }
-        }
-        if (mAnalyticsCallback != null) {
-            mAnalyticsCallback.onScreenOn();
-        }
-    }
-
-    public synchronized void verifyUnlock() {
-        if (DEBUG) Log.d(TAG, "verifyUnlock()");
-        show(null);
-        mKeyguardView.verifyUnlock();
-    }
-
-    /**
-     * Hides the keyguard view
-     */
-    public synchronized void hide() {
-        if (DEBUG) Log.d(TAG, "hide()");
-
-        if (mAnalyticsCallback != null) {
-            mAnalyticsCallback.onHide();
-        }
-
-        if (mKeyguardHost != null) {
-            mKeyguardHost.setVisibility(View.GONE);
-
-            // We really only want to preserve keyguard state for configuration changes. Hence
-            // we should clear state of widgets (e.g. Music) when we hide keyguard so it can
-            // start with a fresh state when we return.
-            mStateContainer.clear();
-
-            // Don't do this right away, so we can let the view continue to animate
-            // as it goes away.
-            if (mKeyguardView != null) {
-                final KeyguardViewBase lastView = mKeyguardView;
-                mKeyguardView = null;
-                mKeyguardHost.postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        synchronized (KeyguardViewManager.this) {
-                            lastView.cleanUp();
-                            // Let go of any large bitmaps.
-                            mKeyguardHost.setCustomBackground(null);
-                            updateShowWallpaper(true);
-                            mKeyguardHost.removeView(lastView);
-                            mViewMediatorCallback.keyguardGone();
-                        }
-                    }
-                }, HIDE_KEYGUARD_DELAY);
-            }
-        }
-    }
-
-    /**
-     * Dismisses the keyguard by going to the next screen or making it gone.
-     */
-    public synchronized void dismiss() {
-        if (mScreenOn) {
-            mKeyguardView.dismiss();
-        }
-    }
-
-    /**
-     * @return Whether the keyguard is showing
-     */
-    public synchronized boolean isShowing() {
-        return (mKeyguardHost != null && mKeyguardHost.getVisibility() == View.VISIBLE);
-    }
-
-    public void showAssistant() {
-        if (mKeyguardView != null) {
-            mKeyguardView.showAssistant();
-        }
-    }
-
-    public void dispatch(MotionEvent event) {
-        if (mKeyguardView != null) {
-            mKeyguardView.onExternalMotionEvent(event);
-        }
-    }
-
-    public void launchCamera() {
-        if (mKeyguardView != null) {
-            mKeyguardView.launchCamera();
-        }
-    }
-}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java
deleted file mode 100644
index 31e806c..0000000
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java
+++ /dev/null
@@ -1,1449 +0,0 @@
-/*
- * Copyright (C) 2007 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.android.keyguard;
-
-import com.android.internal.policy.IKeyguardExitCallback;
-import com.android.internal.policy.IKeyguardShowCallback;
-import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
-import static com.android.keyguard.analytics.KeyguardAnalytics.SessionTypeAdapter;
-
-import android.app.Activity;
-import android.app.ActivityManagerNative;
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.app.SearchManager;
-import android.app.StatusBarManager;
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.media.AudioManager;
-import android.media.SoundPool;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.PowerManager;
-import android.os.RemoteException;
-import android.os.SystemClock;
-import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.EventLog;
-import android.util.Log;
-import android.util.Slog;
-import android.view.MotionEvent;
-import android.view.WindowManager;
-import android.view.WindowManagerPolicy;
-
-import com.android.internal.telephony.IccCardConstants;
-import com.android.internal.widget.LockPatternUtils;
-import com.android.keyguard.analytics.Session;
-import com.android.keyguard.analytics.KeyguardAnalytics;
-
-import java.io.File;
-
-
-/**
- * Mediates requests related to the keyguard.  This includes queries about the
- * state of the keyguard, power management events that effect whether the keyguard
- * should be shown or reset, callbacks to the phone window manager to notify
- * it of when the keyguard is showing, and events from the keyguard view itself
- * stating that the keyguard was succesfully unlocked.
- *
- * Note that the keyguard view is shown when the screen is off (as appropriate)
- * so that once the screen comes on, it will be ready immediately.
- *
- * Example queries about the keyguard:
- * - is {movement, key} one that should wake the keygaurd?
- * - is the keyguard showing?
- * - are input events restricted due to the state of the keyguard?
- *
- * Callbacks to the phone window manager:
- * - the keyguard is showing
- *
- * Example external events that translate to keyguard view changes:
- * - screen turned off -> reset the keyguard, and show it so it will be ready
- *   next time the screen turns on
- * - keyboard is slid open -> if the keyguard is not secure, hide it
- *
- * Events from the keyguard view:
- * - user succesfully unlocked keyguard -> hide keyguard view, and no longer
- *   restrict input events.
- *
- * Note: in addition to normal power managment events that effect the state of
- * whether the keyguard should be showing, external apps and services may request
- * that the keyguard be disabled via {@link #setKeyguardEnabled(boolean)}.  When
- * false, this will override all other conditions for turning on the keyguard.
- *
- * Threading and synchronization:
- * This class is created by the initialization routine of the {@link WindowManagerPolicy},
- * and runs on its thread.  The keyguard UI is created from that thread in the
- * constructor of this class.  The apis may be called from other threads, including the
- * {@link com.android.server.input.InputManagerService}'s and {@link android.view.WindowManager}'s.
- * Therefore, methods on this class are synchronized, and any action that is pointed
- * directly to the keyguard UI is posted to a {@link Handler} to ensure it is taken on the UI
- * thread of the keyguard.
- */
-public class KeyguardViewMediator {
-    private static final int KEYGUARD_DISPLAY_TIMEOUT_DELAY_DEFAULT = 30000;
-    final static boolean DEBUG = false;
-    private static final boolean ENABLE_ANALYTICS = Build.IS_DEBUGGABLE;
-    private final static boolean DBG_WAKE = false;
-
-    private final static String TAG = "KeyguardViewMediator";
-
-    private static final String DELAYED_KEYGUARD_ACTION =
-        "com.android.internal.policy.impl.PhoneWindowManager.DELAYED_KEYGUARD";
-
-    // used for handler messages
-    private static final int SHOW = 2;
-    private static final int HIDE = 3;
-    private static final int RESET = 4;
-    private static final int VERIFY_UNLOCK = 5;
-    private static final int NOTIFY_SCREEN_OFF = 6;
-    private static final int NOTIFY_SCREEN_ON = 7;
-    private static final int KEYGUARD_DONE = 9;
-    private static final int KEYGUARD_DONE_DRAWING = 10;
-    private static final int KEYGUARD_DONE_AUTHENTICATING = 11;
-    private static final int SET_HIDDEN = 12;
-    private static final int KEYGUARD_TIMEOUT = 13;
-    private static final int SHOW_ASSISTANT = 14;
-    private static final int DISPATCH_EVENT = 15;
-    private static final int LAUNCH_CAMERA = 16;
-    private static final int DISMISS = 17;
-
-    /**
-     * The default amount of time we stay awake (used for all key input)
-     */
-    protected static final int AWAKE_INTERVAL_DEFAULT_MS = 10000;
-
-    /**
-     * How long to wait after the screen turns off due to timeout before
-     * turning on the keyguard (i.e, the user has this much time to turn
-     * the screen back on without having to face the keyguard).
-     */
-    private static final int KEYGUARD_LOCK_AFTER_DELAY_DEFAULT = 5000;
-
-    /**
-     * How long we'll wait for the {@link ViewMediatorCallback#keyguardDoneDrawing()}
-     * callback before unblocking a call to {@link #setKeyguardEnabled(boolean)}
-     * that is reenabling the keyguard.
-     */
-    private static final int KEYGUARD_DONE_DRAWING_TIMEOUT_MS = 2000;
-
-    /**
-     * Allow the user to expand the status bar when the keyguard is engaged
-     * (without a pattern or password).
-     */
-    private static final boolean ENABLE_INSECURE_STATUS_BAR_EXPAND = true;
-
-    /**
-     * Allow the user to expand the status bar when a SECURE keyguard is engaged
-     * and {@link Settings.Global#LOCK_SCREEN_SHOW_NOTIFICATIONS} is set
-     * (private notifications will be masked).
-     */
-    private static final boolean ENABLE_SECURE_STATUS_BAR_EXPAND = true;
-
-    /**
-     * Default value of {@link Settings.Global#LOCK_SCREEN_SHOW_NOTIFICATIONS}.
-     */
-    private static final boolean ALLOW_NOTIFICATIONS_DEFAULT = false;
-
-    /**
-     * Secure setting whether analytics are collected on the keyguard.
-     */
-    private static final String KEYGUARD_ANALYTICS_SETTING = "keyguard_analytics";
-
-    /** The stream type that the lock sounds are tied to. */
-    private int mMasterStreamType;
-
-    private Context mContext;
-    private AlarmManager mAlarmManager;
-    private AudioManager mAudioManager;
-    private StatusBarManager mStatusBarManager;
-    private boolean mSwitchingUser;
-
-    private boolean mSystemReady;
-
-    // Whether the next call to playSounds() should be skipped.  Defaults to
-    // true because the first lock (on boot) should be silent.
-    private boolean mSuppressNextLockSound = true;
-
-
-    /** High level access to the power manager for WakeLocks */
-    private PowerManager mPM;
-
-    /** UserManager for querying number of users */
-    private UserManager mUserManager;
-
-    /** SearchManager for determining whether or not search assistant is available */
-    private SearchManager mSearchManager;
-
-    /**
-     * Used to keep the device awake while to ensure the keyguard finishes opening before
-     * we sleep.
-     */
-    private PowerManager.WakeLock mShowKeyguardWakeLock;
-
-    private KeyguardViewManager mKeyguardViewManager;
-
-    private final KeyguardAnalytics mKeyguardAnalytics;
-
-    // these are protected by synchronized (this)
-
-    /**
-     * External apps (like the phone app) can tell us to disable the keygaurd.
-     */
-    private boolean mExternallyEnabled = true;
-
-    /**
-     * Remember if an external call to {@link #setKeyguardEnabled} with value
-     * false caused us to hide the keyguard, so that we need to reshow it once
-     * the keygaurd is reenabled with another call with value true.
-     */
-    private boolean mNeedToReshowWhenReenabled = false;
-
-    // cached value of whether we are showing (need to know this to quickly
-    // answer whether the input should be restricted)
-    private boolean mShowing;
-
-    // true if the keyguard is hidden by another window
-    private boolean mHidden = false;
-
-    /**
-     * Helps remember whether the screen has turned on since the last time
-     * it turned off due to timeout. see {@link #onScreenTurnedOff(int)}
-     */
-    private int mDelayedShowingSequence;
-
-    /**
-     * If the user has disabled the keyguard, then requests to exit, this is
-     * how we'll ultimately let them know whether it was successful.  We use this
-     * var being non-null as an indicator that there is an in progress request.
-     */
-    private IKeyguardExitCallback mExitSecureCallback;
-
-    // the properties of the keyguard
-
-    private KeyguardUpdateMonitor mUpdateMonitor;
-
-    private boolean mScreenOn;
-
-    // last known state of the cellular connection
-    private String mPhoneState = TelephonyManager.EXTRA_STATE_IDLE;
-
-    /**
-     * we send this intent when the keyguard is dismissed.
-     */
-    private static final Intent USER_PRESENT_INTENT = new Intent(Intent.ACTION_USER_PRESENT)
-            .addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
-                    | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
-
-    /**
-     * {@link #setKeyguardEnabled} waits on this condition when it reenables
-     * the keyguard.
-     */
-    private boolean mWaitingUntilKeyguardVisible = false;
-    private LockPatternUtils mLockPatternUtils;
-    private boolean mKeyguardDonePending = false;
-
-    private SoundPool mLockSounds;
-    private int mLockSoundId;
-    private int mUnlockSoundId;
-    private int mLockSoundStreamId;
-
-    /**
-     * Tracks value of {@link Settings.Global#LOCK_SCREEN_SHOW_NOTIFICATIONS}.
-     */
-    private boolean mAllowNotificationsWhenSecure;
-
-    /**
-     * The volume applied to the lock/unlock sounds.
-     */
-    private final float mLockSoundVolume;
-
-    /**
-     * For managing external displays
-     */
-    private KeyguardDisplayManager mKeyguardDisplayManager;
-
-    /**
-     * Cache of avatar drawables, for use by KeyguardMultiUserAvatar.
-     */
-    private static MultiUserAvatarCache sMultiUserAvatarCache = new MultiUserAvatarCache();
-
-    /**
-     * The callback used by the keyguard view to tell the {@link KeyguardViewMediator}
-     * various things.
-     */
-    public interface ViewMediatorCallback {
-        /**
-         * Reports user activity and requests that the screen stay on.
-         */
-        void userActivity();
-
-        /**
-         * Reports user activity and requests that the screen stay on for at least
-         * the specified amount of time.
-         * @param millis The amount of time in millis.  This value is currently ignored.
-         */
-        void userActivity(long millis);
-
-        /**
-         * Report that the keyguard is done.
-         * @param authenticated Whether the user securely got past the keyguard.
-         *   the only reason for this to be false is if the keyguard was instructed
-         *   to appear temporarily to verify the user is supposed to get past the
-         *   keyguard, and the user fails to do so.
-         */
-        void keyguardDone(boolean authenticated);
-
-        /**
-         * Report that the keyguard is done drawing.
-         */
-        void keyguardDoneDrawing();
-
-        /**
-         * Tell ViewMediator that the current view needs IME input
-         * @param needsInput
-         */
-        void setNeedsInput(boolean needsInput);
-
-        /**
-         * Tell view mediator that the keyguard view's desired user activity timeout
-         * has changed and needs to be reapplied to the window.
-         */
-        void onUserActivityTimeoutChanged();
-
-        /**
-         * Report that the keyguard is dismissable, pending the next keyguardDone call.
-         */
-        void keyguardDonePending();
-
-        /**
-         * Report when keyguard is actually gone
-         */
-        void keyguardGone();
-    }
-
-    KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {
-
-        @Override
-        public void onUserSwitching(int userId) {
-            // Note that the mLockPatternUtils user has already been updated from setCurrentUser.
-            // We need to force a reset of the views, since lockNow (called by
-            // ActivityManagerService) will not reconstruct the keyguard if it is already showing.
-            synchronized (KeyguardViewMediator.this) {
-                mSwitchingUser = true;
-                resetStateLocked(null);
-                adjustStatusBarLocked();
-                // When we switch users we want to bring the new user to the biometric unlock even
-                // if the current user has gone to the backup.
-                KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(true);
-            }
-        }
-
-        @Override
-        public void onUserSwitchComplete(int userId) {
-            mSwitchingUser = false;
-        }
-
-        @Override
-        public void onUserRemoved(int userId) {
-            mLockPatternUtils.removeUser(userId);
-            sMultiUserAvatarCache.clear(userId);
-        }
-
-        @Override
-        public void onUserInfoChanged(int userId) {
-            sMultiUserAvatarCache.clear(userId);
-        }
-
-        @Override
-        void onPhoneStateChanged(int phoneState) {
-            synchronized (KeyguardViewMediator.this) {
-                if (TelephonyManager.CALL_STATE_IDLE == phoneState  // call ending
-                        && !mScreenOn                           // screen off
-                        && mExternallyEnabled) {                // not disabled by any app
-
-                    // note: this is a way to gracefully reenable the keyguard when the call
-                    // ends and the screen is off without always reenabling the keyguard
-                    // each time the screen turns off while in call (and having an occasional ugly
-                    // flicker while turning back on the screen and disabling the keyguard again).
-                    if (DEBUG) Log.d(TAG, "screen is off and call ended, let's make sure the "
-                            + "keyguard is showing");
-                    doKeyguardLocked(null);
-                }
-            }
-        };
-
-        @Override
-        public void onClockVisibilityChanged() {
-            adjustStatusBarLocked();
-        }
-
-        @Override
-        public void onDeviceProvisioned() {
-            sendUserPresentBroadcast();
-        }
-
-        @Override
-        public void onSimStateChanged(IccCardConstants.State simState) {
-            if (DEBUG) Log.d(TAG, "onSimStateChanged: " + simState);
-
-            switch (simState) {
-                case NOT_READY:
-                case ABSENT:
-                    // only force lock screen in case of missing sim if user hasn't
-                    // gone through setup wizard
-                    synchronized (this) {
-                        if (!mUpdateMonitor.isDeviceProvisioned()) {
-                            if (!isShowing()) {
-                                if (DEBUG) Log.d(TAG, "ICC_ABSENT isn't showing,"
-                                        + " we need to show the keyguard since the "
-                                        + "device isn't provisioned yet.");
-                                doKeyguardLocked(null);
-                            } else {
-                                resetStateLocked(null);
-                            }
-                        }
-                    }
-                    break;
-                case PIN_REQUIRED:
-                case PUK_REQUIRED:
-                    synchronized (this) {
-                        if (!isShowing()) {
-                            if (DEBUG) Log.d(TAG, "INTENT_VALUE_ICC_LOCKED and keygaurd isn't "
-                                    + "showing; need to show keyguard so user can enter sim pin");
-                            doKeyguardLocked(null);
-                        } else {
-                            resetStateLocked(null);
-                        }
-                    }
-                    break;
-                case PERM_DISABLED:
-                    synchronized (this) {
-                        if (!isShowing()) {
-                            if (DEBUG) Log.d(TAG, "PERM_DISABLED and "
-                                  + "keygaurd isn't showing.");
-                            doKeyguardLocked(null);
-                        } else {
-                            if (DEBUG) Log.d(TAG, "PERM_DISABLED, resetStateLocked to"
-                                  + "show permanently disabled message in lockscreen.");
-                            resetStateLocked(null);
-                        }
-                    }
-                    break;
-                case READY:
-                    synchronized (this) {
-                        if (isShowing()) {
-                            resetStateLocked(null);
-                        }
-                    }
-                    break;
-            }
-        }
-
-    };
-
-    ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() {
-        public void userActivity() {
-            KeyguardViewMediator.this.userActivity();
-        }
-
-        public void userActivity(long holdMs) {
-            KeyguardViewMediator.this.userActivity(holdMs);
-        }
-
-        public void keyguardDone(boolean authenticated) {
-            KeyguardViewMediator.this.keyguardDone(authenticated, true);
-        }
-
-        public void keyguardDoneDrawing() {
-            mHandler.sendEmptyMessage(KEYGUARD_DONE_DRAWING);
-        }
-
-        @Override
-        public void setNeedsInput(boolean needsInput) {
-            mKeyguardViewManager.setNeedsInput(needsInput);
-        }
-
-        @Override
-        public void onUserActivityTimeoutChanged() {
-            mKeyguardViewManager.updateUserActivityTimeout();
-        }
-
-        @Override
-        public void keyguardDonePending() {
-            mKeyguardDonePending = true;
-        }
-
-        @Override
-        public void keyguardGone() {
-            mKeyguardDisplayManager.hide();
-        }
-    };
-
-    private void userActivity() {
-        userActivity(AWAKE_INTERVAL_DEFAULT_MS);
-    }
-
-    public void userActivity(long holdMs) {
-        // We ignore the hold time.  Eventually we should remove it.
-        // Instead, the keyguard window has an explicit user activity timeout set on it.
-        mPM.userActivity(SystemClock.uptimeMillis(), false);
-    }
-
-    /**
-     * Construct a KeyguardViewMediator
-     * @param context
-     * @param lockPatternUtils optional mock interface for LockPatternUtils
-     */
-    public KeyguardViewMediator(Context context, LockPatternUtils lockPatternUtils) {
-        mContext = context;
-        mPM = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShowKeyguardWakeLock = mPM.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "show keyguard");
-        mShowKeyguardWakeLock.setReferenceCounted(false);
-
-        mContext.registerReceiver(mBroadcastReceiver, new IntentFilter(DELAYED_KEYGUARD_ACTION));
-
-        mKeyguardDisplayManager = new KeyguardDisplayManager(context);
-
-        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-
-        mUpdateMonitor = KeyguardUpdateMonitor.getInstance(context);
-
-        mLockPatternUtils = lockPatternUtils != null
-                ? lockPatternUtils : new LockPatternUtils(mContext);
-        mLockPatternUtils.setCurrentUser(UserHandle.USER_OWNER);
-
-        // Assume keyguard is showing (unless it's disabled) until we know for sure...
-        mShowing = (mUpdateMonitor.isDeviceProvisioned() || mLockPatternUtils.isSecure())
-                && !mLockPatternUtils.isLockScreenDisabled();
-
-        WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
-        final ContentResolver cr = mContext.getContentResolver();
-
-        if (ENABLE_ANALYTICS && !LockPatternUtils.isSafeModeEnabled() &&
-                Settings.Secure.getInt(cr, KEYGUARD_ANALYTICS_SETTING, 0) == 1) {
-            mKeyguardAnalytics = new KeyguardAnalytics(context, new SessionTypeAdapter() {
-
-                @Override
-                public int getSessionType() {
-                    return mLockPatternUtils.isSecure() ? Session.TYPE_KEYGUARD_SECURE
-                            : Session.TYPE_KEYGUARD_INSECURE;
-                }
-            }, new File(mContext.getCacheDir(), "keyguard_analytics.bin"));
-        } else {
-            mKeyguardAnalytics = null;
-        }
-        mKeyguardViewManager = new KeyguardViewManager(context, wm, mViewMediatorCallback,
-                mLockPatternUtils,
-                mKeyguardAnalytics != null ? mKeyguardAnalytics.getCallback() : null);
-
-        mScreenOn = mPM.isScreenOn();
-
-        mLockSounds = new SoundPool(1, AudioManager.STREAM_SYSTEM, 0);
-        String soundPath = Settings.Global.getString(cr, Settings.Global.LOCK_SOUND);
-        if (soundPath != null) {
-            mLockSoundId = mLockSounds.load(soundPath, 1);
-        }
-        if (soundPath == null || mLockSoundId == 0) {
-            Log.w(TAG, "failed to load lock sound from " + soundPath);
-        }
-        soundPath = Settings.Global.getString(cr, Settings.Global.UNLOCK_SOUND);
-        if (soundPath != null) {
-            mUnlockSoundId = mLockSounds.load(soundPath, 1);
-        }
-        if (soundPath == null || mUnlockSoundId == 0) {
-            Log.w(TAG, "failed to load unlock sound from " + soundPath);
-        }
-        int lockSoundDefaultAttenuation = context.getResources().getInteger(
-                com.android.internal.R.integer.config_lockSoundVolumeDb);
-        mLockSoundVolume = (float)Math.pow(10, (float)lockSoundDefaultAttenuation/20);
-    }
-
-    /**
-     * Let us know that the system is ready after startup.
-     */
-    public void onSystemReady() {
-        mSearchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
-        synchronized (this) {
-            if (DEBUG) Log.d(TAG, "onSystemReady");
-            mSystemReady = true;
-            mUpdateMonitor.registerCallback(mUpdateCallback);
-
-            // Suppress biometric unlock right after boot until things have settled if it is the
-            // selected security method, otherwise unsuppress it.  It must be unsuppressed if it is
-            // not the selected security method for the following reason:  if the user starts
-            // without a screen lock selected, the biometric unlock would be suppressed the first
-            // time they try to use it.
-            //
-            // Note that the biometric unlock will still not show if it is not the selected method.
-            // Calling setAlternateUnlockEnabled(true) simply says don't suppress it if it is the
-            // selected method.
-            if (mLockPatternUtils.usingBiometricWeak()
-                    && mLockPatternUtils.isBiometricWeakInstalled()) {
-                if (DEBUG) Log.d(TAG, "suppressing biometric unlock during boot");
-                mUpdateMonitor.setAlternateUnlockEnabled(false);
-            } else {
-                mUpdateMonitor.setAlternateUnlockEnabled(true);
-            }
-
-            doKeyguardLocked(null);
-        }
-        // Most services aren't available until the system reaches the ready state, so we
-        // send it here when the device first boots.
-        maybeSendUserPresentBroadcast();
-    }
-
-    /**
-     * Called to let us know the screen was turned off.
-     * @param why either {@link WindowManagerPolicy#OFF_BECAUSE_OF_USER},
-     *   {@link WindowManagerPolicy#OFF_BECAUSE_OF_TIMEOUT} or
-     *   {@link WindowManagerPolicy#OFF_BECAUSE_OF_PROX_SENSOR}.
-     */
-    public void onScreenTurnedOff(int why) {
-        synchronized (this) {
-            mScreenOn = false;
-            if (DEBUG) Log.d(TAG, "onScreenTurnedOff(" + why + ")");
-
-            mKeyguardDonePending = false;
-
-            // Lock immediately based on setting if secure (user has a pin/pattern/password).
-            // This also "locks" the device when not secure to provide easy access to the
-            // camera while preventing unwanted input.
-            final boolean lockImmediately =
-                mLockPatternUtils.getPowerButtonInstantlyLocks() || !mLockPatternUtils.isSecure();
-
-            if (mExitSecureCallback != null) {
-                if (DEBUG) Log.d(TAG, "pending exit secure callback cancelled");
-                try {
-                    mExitSecureCallback.onKeyguardExitResult(false);
-                } catch (RemoteException e) {
-                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
-                }
-                mExitSecureCallback = null;
-                if (!mExternallyEnabled) {
-                    hideLocked();
-                }
-            } else if (mShowing) {
-                notifyScreenOffLocked();
-                resetStateLocked(null);
-            } else if (why == WindowManagerPolicy.OFF_BECAUSE_OF_TIMEOUT
-                   || (why == WindowManagerPolicy.OFF_BECAUSE_OF_USER && !lockImmediately)) {
-                doKeyguardLaterLocked();
-            } else if (why == WindowManagerPolicy.OFF_BECAUSE_OF_PROX_SENSOR) {
-                // Do not enable the keyguard if the prox sensor forced the screen off.
-            } else {
-                doKeyguardLocked(null);
-            }
-            if (ENABLE_ANALYTICS && mKeyguardAnalytics != null) {
-                mKeyguardAnalytics.getCallback().onScreenOff();
-            }
-        }
-        KeyguardUpdateMonitor.getInstance(mContext).dispatchScreenTurndOff(why);
-    }
-
-    private void doKeyguardLaterLocked() {
-        // if the screen turned off because of timeout or the user hit the power button
-        // and we don't need to lock immediately, set an alarm
-        // to enable it a little bit later (i.e, give the user a chance
-        // to turn the screen back on within a certain window without
-        // having to unlock the screen)
-        final ContentResolver cr = mContext.getContentResolver();
-
-        // From DisplaySettings
-        long displayTimeout = Settings.System.getInt(cr, SCREEN_OFF_TIMEOUT,
-                KEYGUARD_DISPLAY_TIMEOUT_DELAY_DEFAULT);
-
-        // From SecuritySettings
-        final long lockAfterTimeout = Settings.Secure.getInt(cr,
-                Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT,
-                KEYGUARD_LOCK_AFTER_DELAY_DEFAULT);
-
-        // From DevicePolicyAdmin
-        final long policyTimeout = mLockPatternUtils.getDevicePolicyManager()
-                .getMaximumTimeToLock(null, mLockPatternUtils.getCurrentUser());
-
-        long timeout;
-        if (policyTimeout > 0) {
-            // policy in effect. Make sure we don't go beyond policy limit.
-            displayTimeout = Math.max(displayTimeout, 0); // ignore negative values
-            timeout = Math.min(policyTimeout - displayTimeout, lockAfterTimeout);
-        } else {
-            timeout = lockAfterTimeout;
-        }
-
-        if (timeout <= 0) {
-            // Lock now
-            mSuppressNextLockSound = true;
-            doKeyguardLocked(null);
-        } else {
-            // Lock in the future
-            long when = SystemClock.elapsedRealtime() + timeout;
-            Intent intent = new Intent(DELAYED_KEYGUARD_ACTION);
-            intent.putExtra("seq", mDelayedShowingSequence);
-            PendingIntent sender = PendingIntent.getBroadcast(mContext,
-                    0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
-            mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, sender);
-            if (DEBUG) Log.d(TAG, "setting alarm to turn off keyguard, seq = "
-                             + mDelayedShowingSequence);
-        }
-    }
-
-    private void cancelDoKeyguardLaterLocked() {
-        mDelayedShowingSequence++;
-    }
-
-    /**
-     * Let's us know the screen was turned on.
-     */
-    public void onScreenTurnedOn(IKeyguardShowCallback callback) {
-        synchronized (this) {
-            mScreenOn = true;
-            cancelDoKeyguardLaterLocked();
-            if (DEBUG) Log.d(TAG, "onScreenTurnedOn, seq = " + mDelayedShowingSequence);
-            if (callback != null) {
-                notifyScreenOnLocked(callback);
-            }
-        }
-        KeyguardUpdateMonitor.getInstance(mContext).dispatchScreenTurnedOn();
-        maybeSendUserPresentBroadcast();
-    }
-
-    private void maybeSendUserPresentBroadcast() {
-        if (mSystemReady && mLockPatternUtils.isLockScreenDisabled()
-                && !mUserManager.isUserSwitcherEnabled()) {
-            // Lock screen is disabled because the user has set the preference to "None".
-            // In this case, send out ACTION_USER_PRESENT here instead of in
-            // handleKeyguardDone()
-            sendUserPresentBroadcast();
-        }
-    }
-
-    /**
-     * A dream started.  We should lock after the usual screen-off lock timeout but only
-     * if there is a secure lock pattern.
-     */
-    public void onDreamingStarted() {
-        synchronized (this) {
-            if (mScreenOn && mLockPatternUtils.isSecure()) {
-                doKeyguardLaterLocked();
-            }
-        }
-    }
-
-    /**
-     * A dream stopped.
-     */
-    public void onDreamingStopped() {
-        synchronized (this) {
-            if (mScreenOn) {
-                cancelDoKeyguardLaterLocked();
-            }
-        }
-    }
-
-    /**
-     * Same semantics as {@link WindowManagerPolicy#enableKeyguard}; provide
-     * a way for external stuff to override normal keyguard behavior.  For instance
-     * the phone app disables the keyguard when it receives incoming calls.
-     */
-    public void setKeyguardEnabled(boolean enabled) {
-        synchronized (this) {
-            if (DEBUG) Log.d(TAG, "setKeyguardEnabled(" + enabled + ")");
-
-            mExternallyEnabled = enabled;
-
-            if (!enabled && mShowing) {
-                if (mExitSecureCallback != null) {
-                    if (DEBUG) Log.d(TAG, "in process of verifyUnlock request, ignoring");
-                    // we're in the process of handling a request to verify the user
-                    // can get past the keyguard. ignore extraneous requests to disable / reenable
-                    return;
-                }
-
-                // hiding keyguard that is showing, remember to reshow later
-                if (DEBUG) Log.d(TAG, "remembering to reshow, hiding keyguard, "
-                        + "disabling status bar expansion");
-                mNeedToReshowWhenReenabled = true;
-                hideLocked();
-            } else if (enabled && mNeedToReshowWhenReenabled) {
-                // reenabled after previously hidden, reshow
-                if (DEBUG) Log.d(TAG, "previously hidden, reshowing, reenabling "
-                        + "status bar expansion");
-                mNeedToReshowWhenReenabled = false;
-
-                if (mExitSecureCallback != null) {
-                    if (DEBUG) Log.d(TAG, "onKeyguardExitResult(false), resetting");
-                    try {
-                        mExitSecureCallback.onKeyguardExitResult(false);
-                    } catch (RemoteException e) {
-                        Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
-                    }
-                    mExitSecureCallback = null;
-                    resetStateLocked(null);
-                } else {
-                    showLocked(null);
-
-                    // block until we know the keygaurd is done drawing (and post a message
-                    // to unblock us after a timeout so we don't risk blocking too long
-                    // and causing an ANR).
-                    mWaitingUntilKeyguardVisible = true;
-                    mHandler.sendEmptyMessageDelayed(KEYGUARD_DONE_DRAWING, KEYGUARD_DONE_DRAWING_TIMEOUT_MS);
-                    if (DEBUG) Log.d(TAG, "waiting until mWaitingUntilKeyguardVisible is false");
-                    while (mWaitingUntilKeyguardVisible) {
-                        try {
-                            wait();
-                        } catch (InterruptedException e) {
-                            Thread.currentThread().interrupt();
-                        }
-                    }
-                    if (DEBUG) Log.d(TAG, "done waiting for mWaitingUntilKeyguardVisible");
-                }
-            }
-        }
-    }
-
-    /**
-     * @see android.app.KeyguardManager#exitKeyguardSecurely
-     */
-    public void verifyUnlock(IKeyguardExitCallback callback) {
-        synchronized (this) {
-            if (DEBUG) Log.d(TAG, "verifyUnlock");
-            if (!mUpdateMonitor.isDeviceProvisioned()) {
-                // don't allow this api when the device isn't provisioned
-                if (DEBUG) Log.d(TAG, "ignoring because device isn't provisioned");
-                try {
-                    callback.onKeyguardExitResult(false);
-                } catch (RemoteException e) {
-                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
-                }
-            } else if (mExternallyEnabled) {
-                // this only applies when the user has externally disabled the
-                // keyguard.  this is unexpected and means the user is not
-                // using the api properly.
-                Log.w(TAG, "verifyUnlock called when not externally disabled");
-                try {
-                    callback.onKeyguardExitResult(false);
-                } catch (RemoteException e) {
-                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
-                }
-            } else if (mExitSecureCallback != null) {
-                // already in progress with someone else
-                try {
-                    callback.onKeyguardExitResult(false);
-                } catch (RemoteException e) {
-                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
-                }
-            } else {
-                mExitSecureCallback = callback;
-                verifyUnlockLocked();
-            }
-        }
-    }
-
-    /**
-     * Is the keyguard currently showing?
-     */
-    public boolean isShowing() {
-        return mShowing;
-    }
-
-    /**
-     * Is the keyguard currently showing and not being force hidden?
-     */
-    public boolean isShowingAndNotHidden() {
-        return mShowing && !mHidden;
-    }
-
-    /**
-     * Notify us when the keyguard is hidden by another window
-     */
-    public void setHidden(boolean isHidden) {
-        if (DEBUG) Log.d(TAG, "setHidden " + isHidden);
-        mUpdateMonitor.sendKeyguardVisibilityChanged(!isHidden);
-        mHandler.removeMessages(SET_HIDDEN);
-        Message msg = mHandler.obtainMessage(SET_HIDDEN, (isHidden ? 1 : 0), 0);
-        mHandler.sendMessage(msg);
-    }
-
-    /**
-     * Handles SET_HIDDEN message sent by setHidden()
-     */
-    private void handleSetHidden(boolean isHidden) {
-        synchronized (KeyguardViewMediator.this) {
-            if (mHidden != isHidden) {
-                mHidden = isHidden;
-                updateActivityLockScreenState();
-                adjustStatusBarLocked();
-            }
-            if (ENABLE_ANALYTICS && mKeyguardAnalytics != null) {
-                mKeyguardAnalytics.getCallback().onSetHidden(isHidden);
-            }
-        }
-    }
-
-    /**
-     * Used by PhoneWindowManager to enable the keyguard due to a user activity timeout.
-     * This must be safe to call from any thread and with any window manager locks held.
-     */
-    public void doKeyguardTimeout(Bundle options) {
-        mHandler.removeMessages(KEYGUARD_TIMEOUT);
-        Message msg = mHandler.obtainMessage(KEYGUARD_TIMEOUT, options);
-        mHandler.sendMessage(msg);
-    }
-
-    /**
-     * Given the state of the keyguard, is the input restricted?
-     * Input is restricted when the keyguard is showing, or when the keyguard
-     * was suppressed by an app that disabled the keyguard or we haven't been provisioned yet.
-     */
-    public boolean isInputRestricted() {
-        return mShowing || mNeedToReshowWhenReenabled || !mUpdateMonitor.isDeviceProvisioned();
-    }
-
-    /**
-     * Enable the keyguard if the settings are appropriate.
-     */
-    private void doKeyguardLocked(Bundle options) {
-        // if another app is disabling us, don't show
-        if (!mExternallyEnabled) {
-            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because externally disabled");
-
-            // note: we *should* set mNeedToReshowWhenReenabled=true here, but that makes
-            // for an occasional ugly flicker in this situation:
-            // 1) receive a call with the screen on (no keyguard) or make a call
-            // 2) screen times out
-            // 3) user hits key to turn screen back on
-            // instead, we reenable the keyguard when we know the screen is off and the call
-            // ends (see the broadcast receiver below)
-            // TODO: clean this up when we have better support at the window manager level
-            // for apps that wish to be on top of the keyguard
-            return;
-        }
-
-        // note whether notification access should be allowed
-        mAllowNotificationsWhenSecure = ENABLE_SECURE_STATUS_BAR_EXPAND
-                && 0 != Settings.Global.getInt(
-                        mContext.getContentResolver(),
-                        Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS,
-                        ALLOW_NOTIFICATIONS_DEFAULT ? 1 : 0);
-
-        // if the keyguard is already showing, don't bother
-        if (mKeyguardViewManager.isShowing()) {
-            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because it is already showing");
-            return;
-        }
-
-        // if the setup wizard hasn't run yet, don't show
-        final boolean requireSim = !SystemProperties.getBoolean("keyguard.no_require_sim",
-                false);
-        final boolean provisioned = mUpdateMonitor.isDeviceProvisioned();
-        final IccCardConstants.State state = mUpdateMonitor.getSimState();
-        final boolean lockedOrMissing = state.isPinLocked()
-                || ((state == IccCardConstants.State.ABSENT
-                || state == IccCardConstants.State.PERM_DISABLED)
-                && requireSim);
-
-        if (!lockedOrMissing && !provisioned) {
-            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because device isn't provisioned"
-                    + " and the sim is not locked or missing");
-            return;
-        }
-
-        if (!mUserManager.isUserSwitcherEnabled()
-                && mLockPatternUtils.isLockScreenDisabled() && !lockedOrMissing) {
-            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because lockscreen is off");
-            return;
-        }
-
-        if (DEBUG) Log.d(TAG, "doKeyguard: showing the lock screen");
-        showLocked(options);
-    }
-
-    /**
-     * Dismiss the keyguard through the security layers.
-     */
-    public void handleDismiss() {
-        if (mShowing && !mHidden) {
-            mKeyguardViewManager.dismiss();
-        }
-    }
-
-    public void dismiss() {
-        mHandler.sendEmptyMessage(DISMISS);
-    }
-
-    /**
-     * Send message to keyguard telling it to reset its state.
-     * @param options options about how to show the keyguard
-     * @see #handleReset()
-     */
-    private void resetStateLocked(Bundle options) {
-        if (DEBUG) Log.e(TAG, "resetStateLocked");
-        Message msg = mHandler.obtainMessage(RESET, options);
-        mHandler.sendMessage(msg);
-    }
-
-    /**
-     * Send message to keyguard telling it to verify unlock
-     * @see #handleVerifyUnlock()
-     */
-    private void verifyUnlockLocked() {
-        if (DEBUG) Log.d(TAG, "verifyUnlockLocked");
-        mHandler.sendEmptyMessage(VERIFY_UNLOCK);
-    }
-
-
-    /**
-     * Send a message to keyguard telling it the screen just turned on.
-     * @see #onScreenTurnedOff(int)
-     * @see #handleNotifyScreenOff
-     */
-    private void notifyScreenOffLocked() {
-        if (DEBUG) Log.d(TAG, "notifyScreenOffLocked");
-        mHandler.sendEmptyMessage(NOTIFY_SCREEN_OFF);
-    }
-
-    /**
-     * Send a message to keyguard telling it the screen just turned on.
-     * @see #onScreenTurnedOn()
-     * @see #handleNotifyScreenOn
-     */
-    private void notifyScreenOnLocked(IKeyguardShowCallback result) {
-        if (DEBUG) Log.d(TAG, "notifyScreenOnLocked");
-        Message msg = mHandler.obtainMessage(NOTIFY_SCREEN_ON, result);
-        mHandler.sendMessage(msg);
-    }
-
-    /**
-     * Send message to keyguard telling it to show itself
-     * @see #handleShow()
-     */
-    private void showLocked(Bundle options) {
-        if (DEBUG) Log.d(TAG, "showLocked");
-        // ensure we stay awake until we are finished displaying the keyguard
-        mShowKeyguardWakeLock.acquire();
-        Message msg = mHandler.obtainMessage(SHOW, options);
-        mHandler.sendMessage(msg);
-    }
-
-    /**
-     * Send message to keyguard telling it to hide itself
-     * @see #handleHide()
-     */
-    private void hideLocked() {
-        if (DEBUG) Log.d(TAG, "hideLocked");
-        Message msg = mHandler.obtainMessage(HIDE);
-        mHandler.sendMessage(msg);
-    }
-
-    public boolean isSecure() {
-        return mLockPatternUtils.isSecure()
-            || KeyguardUpdateMonitor.getInstance(mContext).isSimPinSecure();
-    }
-
-    /**
-     * Update the newUserId. Call while holding WindowManagerService lock.
-     * NOTE: Should only be called by KeyguardViewMediator in response to the user id changing.
-     *
-     * @param newUserId The id of the incoming user.
-     */
-    public void setCurrentUser(int newUserId) {
-        mLockPatternUtils.setCurrentUser(newUserId);
-    }
-
-    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (DELAYED_KEYGUARD_ACTION.equals(intent.getAction())) {
-                final int sequence = intent.getIntExtra("seq", 0);
-                if (DEBUG) Log.d(TAG, "received DELAYED_KEYGUARD_ACTION with seq = "
-                        + sequence + ", mDelayedShowingSequence = " + mDelayedShowingSequence);
-                synchronized (KeyguardViewMediator.this) {
-                    if (mDelayedShowingSequence == sequence) {
-                        // Don't play lockscreen SFX if the screen went off due to timeout.
-                        mSuppressNextLockSound = true;
-                        doKeyguardLocked(null);
-                    }
-                }
-            }
-        }
-    };
-
-    public void keyguardDone(boolean authenticated, boolean wakeup) {
-        if (DEBUG) Log.d(TAG, "keyguardDone(" + authenticated + ")");
-        EventLog.writeEvent(70000, 2);
-        synchronized (this) {
-            mKeyguardDonePending = false;
-        }
-        Message msg = mHandler.obtainMessage(KEYGUARD_DONE, authenticated ? 1 : 0, wakeup ? 1 : 0);
-        mHandler.sendMessage(msg);
-    }
-
-    /**
-     * This handler will be associated with the policy thread, which will also
-     * be the UI thread of the keyguard.  Since the apis of the policy, and therefore
-     * this class, can be called by other threads, any action that directly
-     * interacts with the keyguard ui should be posted to this handler, rather
-     * than called directly.
-     */
-    private Handler mHandler = new Handler(Looper.myLooper(), null, true /*async*/) {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case SHOW:
-                    handleShow((Bundle) msg.obj);
-                    break;
-                case HIDE:
-                    handleHide();
-                    break;
-                case RESET:
-                    handleReset((Bundle) msg.obj);
-                    break;
-                case VERIFY_UNLOCK:
-                    handleVerifyUnlock();
-                    break;
-                case NOTIFY_SCREEN_OFF:
-                    handleNotifyScreenOff();
-                    break;
-                case NOTIFY_SCREEN_ON:
-                    handleNotifyScreenOn((IKeyguardShowCallback) msg.obj);
-                    break;
-                case KEYGUARD_DONE:
-                    handleKeyguardDone(msg.arg1 != 0, msg.arg2 != 0);
-                    break;
-                case KEYGUARD_DONE_DRAWING:
-                    handleKeyguardDoneDrawing();
-                    break;
-                case KEYGUARD_DONE_AUTHENTICATING:
-                    keyguardDone(true, true);
-                    break;
-                case SET_HIDDEN:
-                    handleSetHidden(msg.arg1 != 0);
-                    break;
-                case KEYGUARD_TIMEOUT:
-                    synchronized (KeyguardViewMediator.this) {
-                        doKeyguardLocked((Bundle) msg.obj);
-                    }
-                    break;
-                case SHOW_ASSISTANT:
-                    handleShowAssistant();
-                    break;
-                case DISPATCH_EVENT:
-                    handleDispatchEvent((MotionEvent) msg.obj);
-                    break;
-                case LAUNCH_CAMERA:
-                    handleLaunchCamera();
-                    break;
-                case DISMISS:
-                    handleDismiss();
-                    break;
-            }
-        }
-    };
-
-    /**
-     * @see #keyguardDone
-     * @see #KEYGUARD_DONE
-     */
-    private void handleKeyguardDone(boolean authenticated, boolean wakeup) {
-        if (DEBUG) Log.d(TAG, "handleKeyguardDone");
-
-        if (authenticated) {
-            mUpdateMonitor.clearFailedUnlockAttempts();
-        }
-
-        if (mExitSecureCallback != null) {
-            try {
-                mExitSecureCallback.onKeyguardExitResult(authenticated);
-            } catch (RemoteException e) {
-                Slog.w(TAG, "Failed to call onKeyguardExitResult(" + authenticated + ")", e);
-            }
-
-            mExitSecureCallback = null;
-
-            if (authenticated) {
-                // after succesfully exiting securely, no need to reshow
-                // the keyguard when they've released the lock
-                mExternallyEnabled = true;
-                mNeedToReshowWhenReenabled = false;
-            }
-        }
-
-        handleHide();
-        sendUserPresentBroadcast();
-    }
-
-    protected void handleLaunchCamera() {
-        mKeyguardViewManager.launchCamera();
-    }
-
-    protected void handleDispatchEvent(MotionEvent event) {
-        mKeyguardViewManager.dispatch(event);
-    }
-
-    private void sendUserPresentBroadcast() {
-        final UserHandle currentUser = new UserHandle(mLockPatternUtils.getCurrentUser());
-        mContext.sendBroadcastAsUser(USER_PRESENT_INTENT, currentUser);
-    }
-
-    /**
-     * @see #keyguardDoneDrawing
-     * @see #KEYGUARD_DONE_DRAWING
-     */
-    private void handleKeyguardDoneDrawing() {
-        synchronized(this) {
-            if (DEBUG) Log.d(TAG, "handleKeyguardDoneDrawing");
-            if (mWaitingUntilKeyguardVisible) {
-                if (DEBUG) Log.d(TAG, "handleKeyguardDoneDrawing: notifying mWaitingUntilKeyguardVisible");
-                mWaitingUntilKeyguardVisible = false;
-                notifyAll();
-
-                // there will usually be two of these sent, one as a timeout, and one
-                // as a result of the callback, so remove any remaining messages from
-                // the queue
-                mHandler.removeMessages(KEYGUARD_DONE_DRAWING);
-            }
-        }
-    }
-
-    private void playSounds(boolean locked) {
-        // User feedback for keyguard.
-
-        if (mSuppressNextLockSound) {
-            mSuppressNextLockSound = false;
-            return;
-        }
-
-        final ContentResolver cr = mContext.getContentResolver();
-        if (Settings.System.getInt(cr, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) == 1) {
-            final int whichSound = locked
-                ? mLockSoundId
-                : mUnlockSoundId;
-            mLockSounds.stop(mLockSoundStreamId);
-            // Init mAudioManager
-            if (mAudioManager == null) {
-                mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
-                if (mAudioManager == null) return;
-                mMasterStreamType = mAudioManager.getMasterStreamType();
-            }
-            // If the stream is muted, don't play the sound
-            if (mAudioManager.isStreamMute(mMasterStreamType)) return;
-
-            mLockSoundStreamId = mLockSounds.play(whichSound,
-                    mLockSoundVolume, mLockSoundVolume, 1/*priortiy*/, 0/*loop*/, 1.0f/*rate*/);
-        }
-    }
-
-    private void updateActivityLockScreenState() {
-        try {
-            ActivityManagerNative.getDefault().setLockScreenShown(mShowing && !mHidden);
-        } catch (RemoteException e) {
-        }
-    }
-
-    /**
-     * Handle message sent by {@link #showLocked}.
-     * @see #SHOW
-     */
-    private void handleShow(Bundle options) {
-        synchronized (KeyguardViewMediator.this) {
-            if (!mSystemReady) {
-                if (DEBUG) Log.d(TAG, "ignoring handleShow because system is not ready.");
-                return;
-            } else {
-                if (DEBUG) Log.d(TAG, "handleShow");
-            }
-
-            mKeyguardViewManager.show(options);
-            mShowing = true;
-            mKeyguardDonePending = false;
-            updateActivityLockScreenState();
-            adjustStatusBarLocked();
-            userActivity();
-            try {
-                ActivityManagerNative.getDefault().closeSystemDialogs("lock");
-            } catch (RemoteException e) {
-            }
-
-            // Do this at the end to not slow down display of the keyguard.
-            playSounds(true);
-
-            mShowKeyguardWakeLock.release();
-        }
-        mKeyguardDisplayManager.show();
-    }
-
-    /**
-     * Handle message sent by {@link #hideLocked()}
-     * @see #HIDE
-     */
-    private void handleHide() {
-        synchronized (KeyguardViewMediator.this) {
-            if (DEBUG) Log.d(TAG, "handleHide");
-
-            // only play "unlock" noises if not on a call (since the incall UI
-            // disables the keyguard)
-            if (TelephonyManager.EXTRA_STATE_IDLE.equals(mPhoneState)) {
-                playSounds(false);
-            }
-
-            mKeyguardViewManager.hide();
-            mShowing = false;
-            mKeyguardDonePending = false;
-            updateActivityLockScreenState();
-            adjustStatusBarLocked();
-        }
-    }
-
-    private void adjustStatusBarLocked() {
-        if (mStatusBarManager == null) {
-            mStatusBarManager = (StatusBarManager)
-                    mContext.getSystemService(Context.STATUS_BAR_SERVICE);
-        }
-        if (mStatusBarManager == null) {
-            Log.w(TAG, "Could not get status bar manager");
-        } else {
-            // Disable aspects of the system/status/navigation bars that must not be re-enabled by
-            // windows that appear on top, ever
-            int flags = StatusBarManager.DISABLE_NONE;
-            if (mShowing) {
-                // Permanently disable components not available when keyguard is enabled
-                // (like recents). Temporary enable/disable (e.g. the "back" button) are
-                // done in KeyguardHostView.
-                flags |= StatusBarManager.DISABLE_RECENT;
-                if ((isSecure() && !mAllowNotificationsWhenSecure)
-                        || !ENABLE_INSECURE_STATUS_BAR_EXPAND) {
-                    // showing secure lockscreen; disable expanding.
-                    flags |= StatusBarManager.DISABLE_EXPAND;
-                }
-                if (isSecure()) {
-                    // showing secure lockscreen; disable ticker and switch private notifications
-                    // to show their public versions, if available.
-                    flags |= StatusBarManager.DISABLE_PRIVATE_NOTIFICATIONS;
-                }
-                if (!isAssistantAvailable()) {
-                    flags |= StatusBarManager.DISABLE_SEARCH;
-                }
-            }
-
-            if (DEBUG) {
-                Log.d(TAG, "adjustStatusBarLocked: mShowing=" + mShowing + " mHidden=" + mHidden
-                        + " isSecure=" + isSecure() + " --> flags=0x" + Integer.toHexString(flags));
-            }
-
-            if (!(mContext instanceof Activity)) {
-                mStatusBarManager.disable(flags);
-            }
-        }
-    }
-
-    /**
-     * Handle message sent by {@link #resetStateLocked(Bundle)}
-     * @see #RESET
-     */
-    private void handleReset(Bundle options) {
-        if (options == null) {
-            options = new Bundle();
-        }
-        options.putBoolean(KeyguardViewManager.IS_SWITCHING_USER, mSwitchingUser);
-        synchronized (KeyguardViewMediator.this) {
-            if (DEBUG) Log.d(TAG, "handleReset");
-            mKeyguardViewManager.reset(options);
-        }
-    }
-
-    /**
-     * Handle message sent by {@link #verifyUnlock}
-     * @see #VERIFY_UNLOCK
-     */
-    private void handleVerifyUnlock() {
-        synchronized (KeyguardViewMediator.this) {
-            if (DEBUG) Log.d(TAG, "handleVerifyUnlock");
-            mKeyguardViewManager.verifyUnlock();
-            mShowing = true;
-            updateActivityLockScreenState();
-        }
-    }
-
-    /**
-     * Handle message sent by {@link #notifyScreenOffLocked()}
-     * @see #NOTIFY_SCREEN_OFF
-     */
-    private void handleNotifyScreenOff() {
-        synchronized (KeyguardViewMediator.this) {
-            if (DEBUG) Log.d(TAG, "handleNotifyScreenOff");
-            mKeyguardViewManager.onScreenTurnedOff();
-        }
-    }
-
-    /**
-     * Handle message sent by {@link #notifyScreenOnLocked()}
-     * @see #NOTIFY_SCREEN_ON
-     */
-    private void handleNotifyScreenOn(IKeyguardShowCallback callback) {
-        synchronized (KeyguardViewMediator.this) {
-            if (DEBUG) Log.d(TAG, "handleNotifyScreenOn");
-            mKeyguardViewManager.onScreenTurnedOn(callback);
-        }
-    }
-
-    public boolean isDismissable() {
-        return mKeyguardDonePending || !isSecure();
-    }
-
-    public void showAssistant() {
-        Message msg = mHandler.obtainMessage(SHOW_ASSISTANT);
-        mHandler.sendMessage(msg);
-    }
-
-    public void handleShowAssistant() {
-        mKeyguardViewManager.showAssistant();
-    }
-
-    private boolean isAssistantAvailable() {
-        return mSearchManager != null
-                && mSearchManager.getAssistIntent(mContext, false, UserHandle.USER_CURRENT) != null;
-    }
-
-    public static MultiUserAvatarCache getAvatarCache() {
-        return sMultiUserAvatarCache;
-    }
-
-    public void dispatch(MotionEvent event) {
-        Message msg = mHandler.obtainMessage(DISPATCH_EVENT, event);
-        mHandler.sendMessage(msg);
-    }
-
-    public void launchCamera() {
-        Message msg = mHandler.obtainMessage(LAUNCH_CAMERA);
-        mHandler.sendMessage(msg);
-    }
-
-    public void onBootCompleted() {
-        mUpdateMonitor.dispatchBootCompleted();
-    }
-}
diff --git a/packages/Keyguard/src/com/android/keyguard/MultiUserAvatarCache.java b/packages/Keyguard/src/com/android/keyguard/MultiUserAvatarCache.java
index 9930e72..7128211 100644
--- a/packages/Keyguard/src/com/android/keyguard/MultiUserAvatarCache.java
+++ b/packages/Keyguard/src/com/android/keyguard/MultiUserAvatarCache.java
@@ -22,12 +22,21 @@
 
 public class MultiUserAvatarCache {
 
+    private static MultiUserAvatarCache sInstance;
+
     private final HashMap<Integer, Drawable> mCache;
 
-    public MultiUserAvatarCache() {
+    private MultiUserAvatarCache() {
         mCache = new HashMap<Integer, Drawable>();
     }
 
+    public static MultiUserAvatarCache getInstance() {
+        if (sInstance == null) {
+            sInstance = new MultiUserAvatarCache();
+        }
+        return sInstance;
+    }
+
     public void clear(int userId) {
         mCache.remove(userId);
     }
diff --git a/packages/Keyguard/src/com/android/keyguard/PagedView.java b/packages/Keyguard/src/com/android/keyguard/PagedView.java
index d233ee9..b42a085 100644
--- a/packages/Keyguard/src/com/android/keyguard/PagedView.java
+++ b/packages/Keyguard/src/com/android/keyguard/PagedView.java
@@ -56,7 +56,7 @@
 public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarchyChangeListener {
     private static final int WARP_SNAP_DURATION = 160;
     private static final String TAG = "WidgetPagedView";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final boolean DEBUG_WARP = false;
     protected static final int INVALID_PAGE = -1;
     private static final int WARP_PEEK_ANIMATION_DURATION = 150;
diff --git a/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java b/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java
index 3d515ce..ab9286b 100644
--- a/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java
+++ b/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java
@@ -45,7 +45,7 @@
  */
 public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout {
     private static final String TAG = "SlidingChallengeLayout";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = KeyguardConstants.DEBUG;
 
     // The drag handle is measured in dp above & below the top edge of the
     // challenge view; these parameters change based on whether the challenge
diff --git a/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java b/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java
new file mode 100644
index 0000000..1f23785
--- /dev/null
+++ b/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java
@@ -0,0 +1,71 @@
+/*
+ * 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.android.keyguard;
+
+/**
+ * The callback used by the keyguard view to tell the {@link KeyguardViewMediator}
+ * various things.
+ */
+public interface ViewMediatorCallback {
+    /**
+     * Reports user activity and requests that the screen stay on.
+     */
+    void userActivity();
+
+    /**
+     * Reports user activity and requests that the screen stay on for at least
+     * the specified amount of time.
+     * @param millis The amount of time in millis.  This value is currently ignored.
+     */
+    void userActivity(long millis);
+
+    /**
+     * Report that the keyguard is done.
+     * @param authenticated Whether the user securely got past the keyguard.
+     *   the only reason for this to be false is if the keyguard was instructed
+     *   to appear temporarily to verify the user is supposed to get past the
+     *   keyguard, and the user fails to do so.
+     */
+    void keyguardDone(boolean authenticated);
+
+    /**
+     * Report that the keyguard is done drawing.
+     */
+    void keyguardDoneDrawing();
+
+    /**
+     * Tell ViewMediator that the current view needs IME input
+     * @param needsInput
+     */
+    void setNeedsInput(boolean needsInput);
+
+    /**
+     * Tell view mediator that the keyguard view's desired user activity timeout
+     * has changed and needs to be reapplied to the window.
+     */
+    void onUserActivityTimeoutChanged();
+
+    /**
+     * Report that the keyguard is dismissable, pending the next keyguardDone call.
+     */
+    void keyguardDonePending();
+
+    /**
+     * Report when keyguard is actually gone
+     */
+    void keyguardGone();
+}
diff --git a/packages/Keyguard/src/com/android/keyguard/analytics/KeyguardAnalytics.java b/packages/Keyguard/src/com/android/keyguard/analytics/KeyguardAnalytics.java
index 55750cc..20af2f1 100644
--- a/packages/Keyguard/src/com/android/keyguard/analytics/KeyguardAnalytics.java
+++ b/packages/Keyguard/src/com/android/keyguard/analytics/KeyguardAnalytics.java
@@ -80,7 +80,7 @@
         public void onScreenOn();
         public void onScreenOff();
         public boolean onTouchEvent(MotionEvent ev, int width, int height);
-        public void onSetHidden(boolean hidden);
+        public void onSetOccluded(boolean hidden);
     }
 
     public interface SessionTypeAdapter {
@@ -256,11 +256,11 @@
         }
 
         @Override
-        public void onSetHidden(boolean hidden) {
+        public void onSetOccluded(boolean hidden) {
             synchronized (KeyguardAnalytics.this) {
                 if (hidden != mHidden) {
                     if (DEBUG) {
-                        Log.d(TAG, "onSetHidden(" + hidden + ")");
+                        Log.d(TAG, "onSetOccluded(" + hidden + ")");
                     }
                     mHidden = hidden;
                     if (hidden) {
diff --git a/packages/Keyguard/test/AndroidManifest.xml b/packages/Keyguard/test/AndroidManifest.xml
index b801e4b..1638127 100644
--- a/packages/Keyguard/test/AndroidManifest.xml
+++ b/packages/Keyguard/test/AndroidManifest.xml
@@ -23,7 +23,7 @@
     <application android:label="@string/app_name" android:icon="@drawable/app_icon">
         <activity android:name=".KeyguardTestActivity"
                 android:label="@string/app_name"
-                android:theme="@android:style/Theme.Holo">
+                android:theme="@android:style/Theme.DeviceDefault.Light">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
diff --git a/packages/Keyguard/test/SampleTrustAgent/Android.mk b/packages/Keyguard/test/SampleTrustAgent/Android.mk
new file mode 100644
index 0000000..7551fdf
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/Android.mk
@@ -0,0 +1,33 @@
+# 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_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := SampleTrustAgent
+
+# Remove these to verify permission checks are working correctly
+#LOCAL_CERTIFICATE := platform
+#LOCAL_PRIVILEGED_MODULE := true
+
+LOCAL_MODULE_TAGS := tests
+
+# LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
+
+include $(BUILD_PACKAGE)
diff --git a/packages/Keyguard/test/SampleTrustAgent/AndroidManifest.xml b/packages/Keyguard/test/SampleTrustAgent/AndroidManifest.xml
new file mode 100644
index 0000000..1511911
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/AndroidManifest.xml
@@ -0,0 +1,41 @@
+<?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
+  -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.trustagent.test">
+    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>
+    <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
+    <application android:label="@string/app_name">
+      <service
+          android:name=".SampleTrustAgent"
+          android:label="@string/app_name"
+          android:exported="true">
+        <intent-filter>
+          <action android:name="android.service.trust.TrustAgentService" />
+          <category android:name="android.intent.category.DEFAULT" />
+        </intent-filter>
+        <meta-data android:name="android.service.trust.trustagent"
+                   android:resource="@xml/sample_trust_agent"/>
+      </service>
+
+      <activity
+          android:name=".SampleTrustAgentSettings"
+          android:label="@string/app_name"
+          android:exported="true"
+          android:launchMode="singleInstance" >
+      </activity>
+    </application>
+</manifest>
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/layout/sample_trust_agent_settings.xml b/packages/Keyguard/test/SampleTrustAgent/res/layout/sample_trust_agent_settings.xml
new file mode 100644
index 0000000..01b107b
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/res/layout/sample_trust_agent_settings.xml
@@ -0,0 +1,35 @@
+<?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
+  -->
+
+<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:id="@+id/enable_trust"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="Grant trust for 30 seconds" />
+    <Button android:id="@+id/revoke_trust"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="Revoke trust" />
+    <CheckBox android:id="@+id/report_unlock_attempts"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="Report unlock attempts" />
+</LinearLayout>
\ No newline at end of file
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/values/strings.xml b/packages/Keyguard/test/SampleTrustAgent/res/values/strings.xml
new file mode 100644
index 0000000..0c6b502
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/res/values/strings.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
+  -->
+
+<resources>
+    <string name="app_name">Sample Trust Agent</string>
+</resources>
\ No newline at end of file
diff --git a/packages/Keyguard/test/SampleTrustAgent/res/xml/sample_trust_agent.xml b/packages/Keyguard/test/SampleTrustAgent/res/xml/sample_trust_agent.xml
new file mode 100644
index 0000000..b48e011
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/res/xml/sample_trust_agent.xml
@@ -0,0 +1,18 @@
+<?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
+  -->
+<trust_agent xmlns:android="http://schemas.android.com/apk/res/android"
+        android:settingsActivity=".SampleTrustAgentSettings" />
diff --git a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java
new file mode 100644
index 0000000..25406d6
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java
@@ -0,0 +1,107 @@
+/*
+ * 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.android.trustagent.test;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.service.trust.TrustAgentService;
+import android.support.v4.content.LocalBroadcastManager;
+import android.widget.Toast;
+
+public class SampleTrustAgent extends TrustAgentService {
+
+    LocalBroadcastManager mLocalBroadcastManager;
+
+    private static final String ACTION_ENABLE_TRUST = "action.sample_trust_agent.enable_trust";
+    private static final String ACTION_REVOKE_TRUST = "action.sample_trust_agent.revoke_trust";
+
+    private static final String EXTRA_MESSAGE = "extra.message";
+    private static final String EXTRA_DURATION = "extra.duration";
+    private static final String EXTRA_EXTRA = "extra.extra";
+
+    private static final String PREFERENCE_REPORT_UNLOCK_ATTEMPTS
+            = "preference.report_unlock_attempts";
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(ACTION_ENABLE_TRUST);
+        filter.addAction(ACTION_REVOKE_TRUST);
+        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
+        mLocalBroadcastManager.registerReceiver(mReceiver, filter);
+    }
+
+    @Override
+    protected void onUnlockAttempt(boolean successful) {
+        if (getReportUnlockAttempts(this)) {
+            Toast.makeText(this, "onUnlockAttempt(successful=" + successful + ")",
+                    Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        mLocalBroadcastManager.unregisterReceiver(mReceiver);
+    }
+
+    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            if (ACTION_ENABLE_TRUST.equals(action)) {
+                enableTrust(intent.getStringExtra(EXTRA_MESSAGE),
+                        intent.getLongExtra(EXTRA_DURATION, 0),
+                        false /* initiatedByUser */);
+            } else if (ACTION_REVOKE_TRUST.equals(action)) {
+                revokeTrust();
+            }
+        }
+    };
+
+    public static void sendEnableTrust(Context context,
+            String message, long durationMs, Bundle extra) {
+        Intent intent = new Intent(ACTION_ENABLE_TRUST);
+        intent.putExtra(EXTRA_MESSAGE, message);
+        intent.putExtra(EXTRA_DURATION, durationMs);
+        intent.putExtra(EXTRA_EXTRA, extra);
+        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
+    }
+
+    public static void sendRevokeTrust(Context context) {
+        Intent intent = new Intent(ACTION_REVOKE_TRUST);
+        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
+    }
+
+    public static void setReportUnlockAttempts(Context context, boolean enabled) {
+        SharedPreferences sharedPreferences = PreferenceManager
+                .getDefaultSharedPreferences(context);
+        sharedPreferences.edit().putBoolean(PREFERENCE_REPORT_UNLOCK_ATTEMPTS, enabled).apply();
+    }
+
+    public static boolean getReportUnlockAttempts(Context context) {
+        SharedPreferences sharedPreferences = PreferenceManager
+                .getDefaultSharedPreferences(context);
+        return sharedPreferences.getBoolean(PREFERENCE_REPORT_UNLOCK_ATTEMPTS, false);
+    }
+}
diff --git a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java
new file mode 100644
index 0000000..0a6f675
--- /dev/null
+++ b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java
@@ -0,0 +1,69 @@
+/*
+ * 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.android.trustagent.test;
+
+import android.annotation.Nullable;
+import android.app.Activity;
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+
+public class SampleTrustAgentSettings extends Activity implements View.OnClickListener,
+        CompoundButton.OnCheckedChangeListener {
+
+    private static final int TRUST_DURATION_MS = 30 * 1000;
+
+    private CheckBox mReportUnlockAttempts;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.sample_trust_agent_settings);
+
+        findViewById(R.id.enable_trust).setOnClickListener(this);
+        findViewById(R.id.revoke_trust).setOnClickListener(this);
+
+        mReportUnlockAttempts = (CheckBox) findViewById(R.id.report_unlock_attempts);
+        mReportUnlockAttempts.setOnCheckedChangeListener(this);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mReportUnlockAttempts.setChecked(SampleTrustAgent.getReportUnlockAttempts(this));
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.enable_trust) {
+            SampleTrustAgent.sendEnableTrust(this, "SampleTrustAgent", TRUST_DURATION_MS,
+                    null /* extra */);
+        } else if (id == R.id.revoke_trust) {
+            SampleTrustAgent.sendRevokeTrust(this);
+        }
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        if (buttonView.getId() == R.id.report_unlock_attempts) {
+            SampleTrustAgent.setReportUnlockAttempts(this, isChecked);
+        }
+    }
+}
diff --git a/packages/PrintSpooler/res/layout/select_printer_activity.xml b/packages/PrintSpooler/res/layout/select_printer_activity.xml
index 6fc77df..4488b6a 100644
--- a/packages/PrintSpooler/res/layout/select_printer_activity.xml
+++ b/packages/PrintSpooler/res/layout/select_printer_activity.xml
@@ -61,7 +61,7 @@
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:indeterminate="true"
-                style="@android:style/Widget.Holo.ProgressBar.Horizontal">
+                style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Horizontal">
             </ProgressBar>
 
         </LinearLayout>
diff --git a/packages/PrintSpooler/res/values-da/strings.xml b/packages/PrintSpooler/res/values-da/strings.xml
index 1a871f8..74190b4 100644
--- a/packages/PrintSpooler/res/values-da/strings.xml
+++ b/packages/PrintSpooler/res/values-da/strings.xml
@@ -69,8 +69,8 @@
     <item msgid="2762241247228983754">"Farve"</item>
   </string-array>
   <string-array name="orientation_labels">
-    <item msgid="4061931020926489228">"Stående"</item>
-    <item msgid="3199660090246166812">"Liggende"</item>
+    <item msgid="4061931020926489228">"Portræt"</item>
+    <item msgid="3199660090246166812">"Landskab"</item>
   </string-array>
   <string-array name="page_options_labels">
     <item msgid="7421377442011699994">"Alle"</item>
diff --git a/packages/PrintSpooler/res/values-sl/strings.xml b/packages/PrintSpooler/res/values-sl/strings.xml
index e299508..5d4fe94 100644
--- a/packages/PrintSpooler/res/values-sl/strings.xml
+++ b/packages/PrintSpooler/res/values-sl/strings.xml
@@ -69,7 +69,7 @@
     <item msgid="2762241247228983754">"Barvno"</item>
   </string-array>
   <string-array name="orientation_labels">
-    <item msgid="4061931020926489228">"Pokončno"</item>
+    <item msgid="4061931020926489228">"Navpično"</item>
     <item msgid="3199660090246166812">"Ležeče"</item>
   </string-array>
   <string-array name="page_options_labels">
diff --git a/packages/PrintSpooler/res/values-sw/strings.xml b/packages/PrintSpooler/res/values-sw/strings.xml
index a84e9b3..55c8687 100644
--- a/packages/PrintSpooler/res/values-sw/strings.xml
+++ b/packages/PrintSpooler/res/values-sw/strings.xml
@@ -31,7 +31,7 @@
     <string name="install_for_print_preview" msgid="6366303997385509332">"Sakinisha kitazamaji cha PDF kwa onyesho la kuchungulia"</string>
     <string name="printing_app_crashed" msgid="854477616686566398">"Programu ya kuchapisha imeacha kufanya kazi"</string>
     <string name="page_count_unknown" msgid="6058852665954511124">"Kurasa"</string>
-    <string name="generating_print_job" msgid="3119608742651698916">"Inaleta kazi ya kuchapisha"</string>
+    <string name="generating_print_job" msgid="3119608742651698916">"Inazanzisha kazi ya kuchapisha"</string>
     <string name="save_as_pdf" msgid="5718454119847596853">"Hifadhi kama PDF"</string>
     <string name="all_printers" msgid="5018829726861876202">"Printa zote..."</string>
     <string name="print_dialog" msgid="32628687461331979">"Chapisha mazungumzo"</string>
@@ -63,7 +63,7 @@
     <string name="no_connection_to_printer" msgid="2159246915977282728">"Hakuna muunganisho kwa printa"</string>
     <string name="reason_unknown" msgid="5507940196503246139">"haijulikani"</string>
     <string name="printer_unavailable" msgid="2434170617003315690">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> - haipatikani"</string>
-    <string name="print_error_default_message" msgid="8568506918983980567">"Haikuweza kuleta kazi ya kuchapisha"</string>
+    <string name="print_error_default_message" msgid="8568506918983980567">"Haikuweza kuunda kazi ya kuchapisha"</string>
   <string-array name="color_mode_labels">
     <item msgid="7602948745415174937">"Nyeusi na Nyeupe"</item>
     <item msgid="2762241247228983754">"Rangi"</item>
diff --git a/packages/PrintSpooler/res/values/themes.xml b/packages/PrintSpooler/res/values/themes.xml
index 86f4a37..94ab895 100644
--- a/packages/PrintSpooler/res/values/themes.xml
+++ b/packages/PrintSpooler/res/values/themes.xml
@@ -16,7 +16,7 @@
 
 <resources>
 
-    <style name="PrintJobConfigActivityTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
+    <style name="PrintJobConfigActivityTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item>
         <item name="android:windowIsTranslucent">true</item>
@@ -25,11 +25,11 @@
         <item name="android:windowIsFloating">true</item>
     </style>
 
-    <style name="SelectPrinterActivityTheme" parent="@android:style/Theme.Holo.Light">
+    <style name="SelectPrinterActivityTheme" parent="@android:style/Theme.DeviceDefault.Light">
         <item name="android:actionBarStyle">@style/SelectPrinterActivityActionBarStyle</item>
     </style>
 
-    <style name="SelectPrinterActivityActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
+    <style name="SelectPrinterActivityActionBarStyle" parent="@android:style/Widget.DeviceDefault.Light.ActionBar">
         <item name="android:displayOptions">showTitle</item>
     </style>
 
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 29e8d1d..e1c17cb 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -1,3 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (c) 2014 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.
+ */
+-->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.shell"
         coreApp="true"
@@ -69,6 +87,8 @@
     <uses-permission android:name="android.permission.MANAGE_USERS" />
     <uses-permission android:name="android.permission.BLUETOOTH_STACK" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+    <uses-permission android:name="android.permission.RETRIEVE_WINDOW_TOKEN" />
+    <uses-permission android:name="android.permission.RENDER_STATS" />
 
     <application android:label="@string/app_label">
         <provider
@@ -83,7 +103,7 @@
 
         <activity
             android:name=".BugreportWarningActivity"
-            android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+            android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true"
             android:exported="false" />
diff --git a/packages/Shell/res/values-sk/strings.xml b/packages/Shell/res/values-sk/strings.xml
index 59c3ccf..99f36f9 100644
--- a/packages/Shell/res/values-sk/strings.xml
+++ b/packages/Shell/res/values-sk/strings.xml
@@ -17,8 +17,8 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="3701846017049540910">"Prostredie"</string>
-    <string name="bugreport_finished_title" msgid="2293711546892863898">"Hlásenie o chybách bolo vytvorené"</string>
-    <string name="bugreport_finished_text" msgid="3559904746859400732">"Hlásenie o chybách môžete zdielať klepnutím"</string>
+    <string name="bugreport_finished_title" msgid="2293711546892863898">"Správa o chybách sa zaznamenala"</string>
+    <string name="bugreport_finished_text" msgid="3559904746859400732">"Dotykom môžete zdieľať správu o chybách"</string>
     <string name="bugreport_confirm" msgid="5130698467795669780">"Správy o chybách obsahujú údaje z rôznych súborov denníkov systému vrátane osobných a súkromných informácií. Zdieľajte ich iba s dôveryhodnými aplikáciami a ľuďmi."</string>
     <string name="bugreport_confirm_repeat" msgid="4926842460688645058">"Zobraziť túto správu nabudúce"</string>
 </resources>
diff --git a/packages/SystemUI/Android.mk b/packages/SystemUI/Android.mk
index f8f064a..69c6159 100644
--- a/packages/SystemUI/Android.mk
+++ b/packages/SystemUI/Android.mk
@@ -6,6 +6,7 @@
 LOCAL_SRC_FILES := $(call all-java-files-under, src) \
     src/com/android/systemui/EventLogTags.logtags
 
+LOCAL_STATIC_JAVA_LIBRARIES := Keyguard
 LOCAL_JAVA_LIBRARIES := telephony-common
 
 LOCAL_PACKAGE_NAME := SystemUI
@@ -14,6 +15,11 @@
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 
+LOCAL_RESOURCE_DIR := \
+    frameworks/base/packages/Keyguard/res \
+    $(LOCAL_PATH)/res
+LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard
+
 include $(BUILD_PACKAGE)
 
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index b09cc1d..d371d70 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -1,3 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (c) 2014 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.
+ */
+-->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
         package="com.android.systemui"
@@ -71,11 +89,20 @@
 
     <!-- Keyguard -->
     <uses-permission android:name="android.permission.CONTROL_KEYGUARD" />
+    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
+    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
+    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
+    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
+    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
+    <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
+    <uses-permission android:name="android.permission.TRUST_LISTENER" />
 
     <!-- Wifi Display -->
     <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
 
     <application
+        android:name=".SystemUIApplication"
         android:persistent="true"
         android:allowClearUserData="false"
         android:allowBackup="false"
@@ -83,7 +110,11 @@
         android:label="@string/app_label"
         android:icon="@*android:drawable/platlogo"
         android:process="com.android.systemui"
-        android:supportsRtl="true">
+        android:supportsRtl="true"
+        android:theme="@style/systemui_theme">
+        <!-- Keep theme in sync with SystemUIApplication.onCreate().
+             Setting the theme on the application does not affect views inflated by services.
+             The application theme is set again from onCreate to take effect for those views. -->
 
         <!-- Broadcast receiver that gets the broadcast at boot time and starts
              up everything else.
@@ -157,7 +188,7 @@
         <activity android:name=".usb.UsbConfirmActivity"
             android:exported="true"
             android:permission="android.permission.MANAGE_USB"
-            android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+            android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true">
         </activity>
@@ -166,7 +197,7 @@
         <activity android:name=".usb.UsbPermissionActivity"
             android:exported="true"
             android:permission="android.permission.MANAGE_USB"
-            android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+            android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true">
         </activity>
@@ -175,7 +206,7 @@
         <activity android:name=".usb.UsbResolverActivity"
             android:exported="true"
             android:permission="android.permission.MANAGE_USB"
-            android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+            android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true">
         </activity>
@@ -184,7 +215,7 @@
         <activity android:name=".usb.UsbAccessoryUriActivity"
             android:exported="true"
             android:permission="android.permission.MANAGE_USB"
-            android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+            android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true">
         </activity>
@@ -192,7 +223,7 @@
         <!-- started from UsbDebuggingManager -->
         <activity android:name=".usb.UsbDebuggingActivity"
             android:permission="android.permission.MANAGE_USB"
-            android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+            android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true">
         </activity>
@@ -202,7 +233,7 @@
             android:name=".net.NetworkOverLimitActivity"
             android:exported="true"
             android:permission="android.permission.MANAGE_NETWORK_POLICY"
-            android:theme="@android:style/Theme.Holo.Panel"
+            android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
             android:finishOnCloseSystemDialogs="true"
             android:launchMode="singleTop"
             android:taskAffinity="com.android.systemui.net"
@@ -240,6 +271,10 @@
             </intent-filter>
         </service>
 
+        <service
+            android:name=".keyguard.KeyguardService"
+            android:exported="true" />
+
         <activity android:name=".Somnambulator"
             android:label="@string/start_dreams"
             android:icon="@mipmap/ic_launcher_dreams"
diff --git a/packages/SystemUI/proguard.flags b/packages/SystemUI/proguard.flags
index 48d9722..da37803 100644
--- a/packages/SystemUI/proguard.flags
+++ b/packages/SystemUI/proguard.flags
@@ -6,7 +6,7 @@
   public void setGlowAlpha(float);
   public void setGlowScale(float);
 }
--keep class com.android.systemui.recents.views.TaskIconView {
+-keep class com.android.systemui.recents.views.TaskInfoView {
 	public void setCircularClipRadius(float);
 	public float getCircularClipRadius();
 }
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_off_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_off.png
rename to packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_off_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_on.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_on_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_on.png
rename to packages/SystemUI/res/drawable-hdpi/ic_qs_brightness_auto_on_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldpi/ic_qs_color_space_alpha.png b/packages/SystemUI/res/drawable-ldpi/ic_qs_color_space_alpha.png
deleted file mode 100644
index 46d2a16..0000000
--- a/packages/SystemUI/res/drawable-ldpi/ic_qs_color_space_alpha.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldpi/ic_qs_contrast_alpha.png b/packages/SystemUI/res/drawable-ldpi/ic_qs_contrast_alpha.png
deleted file mode 100644
index 704b4ec..0000000
--- a/packages/SystemUI/res/drawable-ldpi/ic_qs_contrast_alpha.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldpi/ic_qs_inversion_alpha.png b/packages/SystemUI/res/drawable-ldpi/ic_qs_inversion_alpha.png
deleted file mode 100644
index d56efb5..0000000
--- a/packages/SystemUI/res/drawable-ldpi/ic_qs_inversion_alpha.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_off_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_off.png
rename to packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_off_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_on.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_on_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_on.png
rename to packages/SystemUI/res/drawable-mdpi/ic_qs_brightness_auto_on_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_off_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_off.png
rename to packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_off_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_on_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_on.png
rename to packages/SystemUI/res/drawable-xhdpi/ic_qs_brightness_auto_on_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_off.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_off_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_off.png
rename to packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_off_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_on.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_on_alpha.png
similarity index 100%
rename from packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_on.png
rename to packages/SystemUI/res/drawable-xxhdpi/ic_qs_brightness_auto_on_alpha.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/ic_notify_button_bg.xml b/packages/SystemUI/res/drawable/ic_notify_button_bg.xml
index 85f1ea2..3a47261 100644
--- a/packages/SystemUI/res/drawable/ic_notify_button_bg.xml
+++ b/packages/SystemUI/res/drawable/ic_notify_button_bg.xml
@@ -15,6 +15,6 @@
 -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true"  android:drawable="@*android:drawable/list_selector_pressed_holo_dark" />
-    <item                               android:drawable="@*android:drawable/list_selector_disabled_holo_dark" />
+    <item android:state_pressed="true"
+          android:drawable="@*android:drawable/list_selector_pressed_holo_dark" />
 </selector>
diff --git a/packages/SystemUI/res/drawable/ic_qs_brightness_auto_off.xml b/packages/SystemUI/res/drawable/ic_qs_brightness_auto_off.xml
new file mode 100644
index 0000000..b7fe5ab
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_qs_brightness_auto_off.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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_qs_brightness_auto_off_alpha"
+    android:tint="?android:attr/colorControlNormal" />
diff --git a/packages/SystemUI/res/drawable/ic_qs_brightness_auto_on.xml b/packages/SystemUI/res/drawable/ic_qs_brightness_auto_on.xml
new file mode 100644
index 0000000..e17b533
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_qs_brightness_auto_on.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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_qs_brightness_auto_on_alpha"
+    android:tint="?android:attr/colorControlNormal" />
diff --git a/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml b/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml
deleted file mode 100644
index 0947c6f..0000000
--- a/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 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.
-*/
--->
-
-<!-- This is the combined status bar / notification panel window. -->
-<com.android.systemui.statusbar.phone.StatusBarWindowView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
-    android:focusable="true"
-    android:descendantFocusability="afterDescendants"
-    android:fitsSystemWindows="true"
-    >
-
-    <include layout="@layout/status_bar"
-        android:layout_width="match_parent"
-        android:layout_height="@*android:dimen/status_bar_height"
-        />
-
-
-    <com.android.systemui.statusbar.phone.PanelHolder
-        android:id="@+id/panel_holder"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginTop="@*android:dimen/status_bar_height"
-        >
-        <include layout="@layout/status_bar_expanded"
-            android:layout_width="@dimen/notification_panel_width"
-            android:layout_height="wrap_content"
-            android:layout_gravity="start|top"
-            />
-        <include layout="@layout/quick_settings"
-            android:layout_width="@dimen/notification_panel_width"
-            android:layout_height="wrap_content"
-            android:layout_gravity="end|top"
-            />
-    </com.android.systemui.statusbar.phone.PanelHolder>
-</com.android.systemui.statusbar.phone.StatusBarWindowView>
diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml
index 5488a87..a6fb443 100644
--- a/packages/SystemUI/res/layout/navigation_bar.xml
+++ b/packages/SystemUI/res/layout/navigation_bar.xml
@@ -169,6 +169,7 @@
                 android:scaleType="center"
                 android:visibility="gone"
                 android:contentDescription="@string/accessibility_camera_button"
+                systemui:glowBackground="@drawable/ic_sysbar_highlight_land"
                 />
         </FrameLayout>
 
diff --git a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
index a6f4e9b..b7df51d 100644
--- a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
+++ b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
@@ -13,27 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
-<LinearLayout 
-    xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
     style="@style/BrightnessDialogContainer">
 
     <ImageView
         android:id="@+id/brightness_icon"
-	    android:layout_width="wrap_content"
-	    android:layout_height="wrap_content"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
-        android:paddingEnd="10dp"
+        android:layout_marginEnd="8dp"
         android:src="@drawable/ic_qs_brightness_auto_off"
-        />
+        android:contentDescription="@null" />
+
     <com.android.systemui.settings.ToggleSlider
         android:id="@+id/brightness_slider"
         android:layout_width="0dp"
         android:layout_height="40dp"
-        android:layout_weight="1"
-        android:layout_marginEnd="2dp"
         android:layout_gravity="center_vertical"
-        systemui:text="@string/status_bar_settings_auto_brightness_label"
-        />
+        android:layout_weight="1"
+        systemui:text="@string/status_bar_settings_auto_brightness_label" />
+
 </LinearLayout>
diff --git a/packages/SystemUI/res/layout/recents_task_view.xml b/packages/SystemUI/res/layout/recents_task_view.xml
index f6e875c..7f64032 100644
--- a/packages/SystemUI/res/layout/recents_task_view.xml
+++ b/packages/SystemUI/res/layout/recents_task_view.xml
@@ -21,28 +21,55 @@
         android:id="@+id/task_view_thumbnail"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
+    <com.android.systemui.recents.views.TaskInfoView
+    	android:id="@+id/task_view_info_pane"
+    	android:layout_width="match_parent"
+    	android:layout_height="match_parent"
+    	android:visibility="invisible"
+        android:background="#e6444444">
+        <Button
+        	android:id="@+id/task_view_app_info_button"
+        	android:layout_width="match_parent"
+        	android:layout_height="wrap_content"
+        	android:layout_marginStart="20dp"
+        	android:layout_marginEnd="20dp"
+    		android:layout_gravity="top|center_horizontal"
+        	android:text="@string/recents_app_info_button_label" />
+    </com.android.systemui.recents.views.TaskInfoView>
     <com.android.systemui.recents.views.TaskBarView
         android:id="@+id/task_view_bar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="top|center_horizontal"
-        android:background="#88000000">
+        android:background="#e6444444">
         <ImageView
-            android:id="@+id/activity_icon"
-            android:layout_width="@dimen/recents_task_view_icon_size"
-            android:layout_height="@dimen/recents_task_view_icon_size"
-            android:layout_gravity="top|left"
+            android:id="@+id/application_icon"
+            android:layout_width="@dimen/recents_task_view_application_icon_size"
+            android:layout_height="@dimen/recents_task_view_application_icon_size"
+            android:layout_gravity="center_vertical|start"
             android:padding="8dp" />
         <TextView
             android:id="@+id/activity_description"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical|left"
-            android:layout_marginLeft="@dimen/recents_task_view_icon_size"
+            android:layout_marginStart="@dimen/recents_task_view_application_icon_size"
+            android:layout_marginEnd="@dimen/recents_task_view_activity_icon_size"
             android:textSize="24sp"
             android:textColor="#ffffffff"
             android:text="@string/recents_empty_message"
-            android:fontFamily="sans-serif-thin" />
+            android:fontFamily="sans-serif-thin"
+            android:singleLine="true"
+            android:maxLines="2"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
+        <ImageView
+            android:id="@+id/activity_icon"
+            android:layout_width="@dimen/recents_task_view_activity_icon_size"
+            android:layout_height="@dimen/recents_task_view_activity_icon_size"
+            android:layout_gravity="center_vertical|end"
+            android:padding="12dp"
+            android:visibility="invisible" />
     </com.android.systemui.recents.views.TaskBarView>
 </com.android.systemui.recents.views.TaskView>
 
diff --git a/packages/SystemUI/res/layout/status_bar.xml b/packages/SystemUI/res/layout/status_bar.xml
index ea6be1b..1b35537 100644
--- a/packages/SystemUI/res/layout/status_bar.xml
+++ b/packages/SystemUI/res/layout/status_bar.xml
@@ -27,7 +27,6 @@
     android:orientation="vertical"
     android:focusable="true"
     android:descendantFocusability="afterDescendants"
-    android:fitsSystemWindows="true"
     >
 
     <ImageView
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 1693e01..8f4417e 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -24,19 +24,10 @@
     android:id="@+id/notification_panel"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
-    android:background="@drawable/notification_panel_bg"
     android:paddingTop="@dimen/notification_panel_padding_top"
     android:layout_marginStart="@dimen/notification_panel_margin_left"
     >
 
-    <View
-        android:id="@+id/handle"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/close_handle_height"
-        android:background="@drawable/status_bar_close"
-        android:visibility="invisible"
-        />
-
     <include
         layout="@layout/carrier_label"
         android:layout_height="@dimen/carrier_label_height"
@@ -45,6 +36,14 @@
         android:layout_gravity="bottom"
         />
 
+    <ViewStub android:id="@+id/keyguard_flip_stub"
+        android:layout="@layout/status_bar_flip_button"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_gravity="right|top"
+        android:layout_marginTop="@*android:dimen/status_bar_height"
+        android:visibility="gone" />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -58,6 +57,10 @@
             android:layout_height="@dimen/notification_panel_header_height"
             />
 
+        <include
+            layout="@layout/keyguard_status_view"
+            android:visibility="gone" />
+
         <TextView
             android:id="@+id/emergency_calls_only"
             android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network.EmergencyOnly"
@@ -69,6 +72,7 @@
             />
 
         <FrameLayout
+            android:id="@+id/notification_container_parent"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             >
@@ -77,21 +81,12 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 />
-    
-            <ScrollView
-                android:id="@+id/scroll"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:fadingEdge="none"
-                android:overScrollMode="ifContentScrolls"
-                >
-                <com.android.systemui.statusbar.policy.NotificationRowLayout
-                    android:id="@+id/latestItems"
+
+            <com.android.systemui.statusbar.stack.NotificationStackScrollLayout
+                    android:id="@+id/notification_stack_scroller"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    systemui:rowHeight="@dimen/notification_row_min_height"
                     />
-            </ScrollView>
         </FrameLayout>
     </LinearLayout>
 </com.android.systemui.statusbar.phone.NotificationPanelView><!-- end of sliding panel -->
diff --git a/packages/SystemUI/res/layout/status_bar_expanded_header.xml b/packages/SystemUI/res/layout/status_bar_expanded_header.xml
index 9aa7cfd..56523db 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded_header.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded_header.xml
@@ -81,29 +81,10 @@
         android:src="@drawable/ic_notify_clear"
         android:background="@drawable/ic_notify_button_bg"
         android:contentDescription="@string/accessibility_clear_all"
-        />     
+        />
 
-    <FrameLayout android:id="@+id/settings_button_holder"
+    <include layout="@layout/status_bar_flip_button"
         android:layout_width="50dp"
         android:layout_height="50dp"
-        android:layout_marginStart="12dp"
-        >
-        <ImageView android:id="@+id/settings_button"
-            android:layout_width="50dp"
-            android:layout_height="50dp"
-            android:scaleType="center"
-            android:src="@drawable/ic_notify_settings"
-            android:background="@drawable/ic_notify_button_bg"
-            android:contentDescription="@string/accessibility_desc_quick_settings"
-            />
-        <ImageView android:id="@+id/notification_button"
-            android:layout_width="50dp"
-            android:layout_height="50dp"
-            android:scaleType="center"
-            android:src="@drawable/ic_notifications"
-            android:background="@drawable/ic_notify_button_bg"
-            android:visibility="gone"
-            android:contentDescription="@string/accessibility_notifications_button"
-            />
-    </FrameLayout>
+        android:layout_marginStart="12dp" />
 </LinearLayout>
diff --git a/packages/SystemUI/res/layout/status_bar_flip_button.xml b/packages/SystemUI/res/layout/status_bar_flip_button.xml
new file mode 100644
index 0000000..db672ea
--- /dev/null
+++ b/packages/SystemUI/res/layout/status_bar_flip_button.xml
@@ -0,0 +1,37 @@
+<?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/settings_button_holder"
+        android:layout_width="50dp"
+        android:layout_height="50dp">
+    <ImageView android:id="@+id/settings_button"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:scaleType="center"
+        android:src="@drawable/ic_notify_settings"
+        android:background="@drawable/ic_notify_button_bg"
+        android:contentDescription="@string/accessibility_desc_quick_settings" />
+    <ImageView android:id="@+id/notification_button"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:scaleType="center"
+        android:src="@drawable/ic_notifications"
+        android:background="@drawable/ic_notify_button_bg"
+        android:visibility="gone"
+        android:contentDescription="@string/accessibility_notifications_button" />
+</FrameLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/status_bar_notification_keyguard_overflow.xml b/packages/SystemUI/res/layout/status_bar_notification_keyguard_overflow.xml
new file mode 100644
index 0000000..5d2f330
--- /dev/null
+++ b/packages/SystemUI/res/layout/status_bar_notification_keyguard_overflow.xml
@@ -0,0 +1,52 @@
+<!--
+  ~ 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
+  -->
+
+<!-- Extends FrameLayout -->
+<com.android.systemui.statusbar.NotificationOverflowContainer
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    >
+    <com.android.systemui.statusbar.LatestItemView
+        android:id="@+id/container"
+        android:layout_width="match_parent"
+        android:layout_height="40dp"
+        android:layout_marginTop="@dimen/notification_divider_height"
+        android:focusable="true"
+        android:clickable="true"
+        android:background="@*android:drawable/notification_quantum_bg_dim"
+        >
+        <TextView
+            android:id="@+id/more_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:gravity="center_horizontal"
+            android:textColor="@color/keyguard_overflow_content_color"
+            android:textAllCaps="true"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            />
+        <com.android.systemui.statusbar.NotificationOverflowIconsView
+            android:id="@+id/overflow_icons_view"
+            android:layout_gravity="end|center_vertical"
+            android:gravity="end"
+            android:paddingLeft="8dp"
+            android:paddingRight="8dp"
+            android:layout_width="120dp"
+            android:layout_height="wrap_content"
+            />
+    </com.android.systemui.statusbar.LatestItemView>
+</com.android.systemui.statusbar.NotificationOverflowContainer>
diff --git a/packages/SystemUI/res/layout/status_bar_notification_row.xml b/packages/SystemUI/res/layout/status_bar_notification_row.xml
index e74e568..d61d8b9 100644
--- a/packages/SystemUI/res/layout/status_bar_notification_row.xml
+++ b/packages/SystemUI/res/layout/status_bar_notification_row.xml
@@ -32,6 +32,7 @@
         android:layout_marginTop="@dimen/notification_divider_height"
         android:focusable="true"
         android:clickable="true"
+        android:background="@*android:drawable/notification_quantum_bg"
         >
 
         <com.android.internal.widget.SizeAdaptiveLayout android:id="@+id/expanded"
diff --git a/packages/SystemUI/res/layout/status_bar_toggle_slider.xml b/packages/SystemUI/res/layout/status_bar_toggle_slider.xml
index 834cc2c..e6d7c93 100644
--- a/packages/SystemUI/res/layout/status_bar_toggle_slider.xml
+++ b/packages/SystemUI/res/layout/status_bar_toggle_slider.xml
@@ -29,7 +29,7 @@
         android:layout_alignParentBottom="true"
         android:button="@null"
         />
-    <SeekBar
+    <com.android.systemui.settings.ToggleSeekBar
         android:id="@+id/slider"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index 2b56618..9176d24 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -20,32 +20,29 @@
 <!-- This is the combined status bar / notification panel window. -->
 <com.android.systemui.statusbar.phone.StatusBarWindowView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
     android:focusable="true"
-    android:descendantFocusability="afterDescendants"
-    android:fitsSystemWindows="true"
-    android:background="@android:color/transparent"
-    >
+    android:descendantFocusability="afterDescendants">
 
     <include layout="@layout/status_bar"
         android:layout_width="match_parent"
-        android:layout_height="@*android:dimen/status_bar_height"
-        />
+        android:layout_height="@*android:dimen/status_bar_height" />
 
     <com.android.systemui.statusbar.phone.PanelHolder
         android:id="@+id/panel_holder"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        >
+        android:layout_marginTop="@dimen/panel_holder_padding_top"
+        android:layout_marginBottom="@*android:dimen/navigation_bar_height">
         <include layout="@layout/status_bar_expanded"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            />
+            android:layout_width="@dimen/notification_panel_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="start|top" />
         <ViewStub android:id="@+id/quick_settings_stub"
             android:layout="@layout/quick_settings"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            />
+            android:layout_width="@dimen/notification_panel_width"
+            android:layout_height="match_parent" />
     </com.android.systemui.statusbar.phone.PanelHolder>
 
 </com.android.systemui.statusbar.phone.StatusBarWindowView>
diff --git a/packages/SystemUI/res/layout/user_switcher_host.xml b/packages/SystemUI/res/layout/user_switcher_host.xml
new file mode 100644
index 0000000..bc56cf6
--- /dev/null
+++ b/packages/SystemUI/res/layout/user_switcher_host.xml
@@ -0,0 +1,36 @@
+<?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 -->
+<com.android.systemui.settings.UserSwitcherHostView
+        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:background="#dd000000">
+    <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@*android:dimen/volume_panel_top"
+            android:background="@*android:drawable/dialog_full_holo_dark">
+        <ListView android:id="@android:id/list"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:listitem="@layout/user_switcher_item"/>
+    </FrameLayout>
+</com.android.systemui.settings.UserSwitcherHostView>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/user_switcher_item.xml b/packages/SystemUI/res/layout/user_switcher_item.xml
new file mode 100644
index 0000000..43a85e7
--- /dev/null
+++ b/packages/SystemUI/res/layout/user_switcher_item.xml
@@ -0,0 +1,40 @@
+<?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
+  -->
+
+<LinearLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        android:layout_width="match_parent"
+        android:layout_height="64dp"
+        android:orientation="horizontal"
+        tools:context=".settings.UserSwitcherDialog">
+    <ImageView
+            android:layout_width="64dp"
+            android:layout_height="match_parent"
+            android:id="@+id/user_picture"
+            tools:src="@drawable/dessert_zombiegingerbread"/>
+    <TextView
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:id="@+id/user_name"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:padding="8dp"
+            android:gravity="center_vertical"
+            tools:text="Hiroshi Lockheimer"
+            />
+</LinearLayout>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index d7457f0..2e116d0 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -20,7 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="7164937344850004466">"የስርዓት UI"</string>
-    <string name="status_bar_clear_all_button" msgid="7774721344716731603">"አጥራ"</string>
+    <string name="status_bar_clear_all_button" msgid="7774721344716731603">"አጽዳ"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"ከዝርዝር አስወግድ"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"የትግበራ መረጃ"</string>
     <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"ምንም የቅርብ ጊዜ ትግበራዎች የሉም"</string>
@@ -136,7 +136,7 @@
     <string name="accessibility_battery_level" msgid="7451474187113371965">"የባትሪ <xliff:g id="NUMBER">%d</xliff:g> መቶኛ።"</string>
     <string name="accessibility_settings_button" msgid="799583911231893380">"የስርዓት ቅንብሮች"</string>
     <string name="accessibility_notifications_button" msgid="4498000369779421892">"ማሳወቂያዎች"</string>
-    <string name="accessibility_remove_notification" msgid="3603099514902182350">"ማሳወቂያ አጥራ"</string>
+    <string name="accessibility_remove_notification" msgid="3603099514902182350">"ማሳወቂያ አጽዳ"</string>
     <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS ነቅቷል።"</string>
     <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS በማግኘት ላይ።"</string>
     <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter ነቅቷል።"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 7671ef1..289d6c6 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -188,8 +188,8 @@
     <string name="quick_settings_rotation_locked_portrait_label" msgid="1553131290066230775">"Bloccato in verticale"</string>
     <string name="quick_settings_rotation_locked_landscape_label" msgid="7216265671276086593">"Bloccato in orizzontale"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Metodo di immissione"</string>
-    <string name="quick_settings_location_label" msgid="5011327048748762257">"Geolocalizzazione"</string>
-    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Posizione non attiva"</string>
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Geolocalizz."</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Geolocalizz. non attiva"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositivo multimediale"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Solo chiamate di emergenza"</string>
diff --git a/packages/SystemUI/res/values-sw600dp/config.xml b/packages/SystemUI/res/values-sw600dp/config.xml
index b77f1e0..440ead6 100644
--- a/packages/SystemUI/res/values-sw600dp/config.xml
+++ b/packages/SystemUI/res/values-sw600dp/config.xml
@@ -30,5 +30,5 @@
     <integer name="quick_settings_user_time_settings_tile_span">1</integer>
 
     <!-- Enable the "flip settings" panel -->
-    <bool name="config_hasFlipSettingsPanel">false</bool>
+    <bool name="config_hasFlipSettingsPanel">true</bool>
 </resources>
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 45f6af3..b4fafec 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -24,8 +24,8 @@
     <dimen name="notification_panel_margin_left">16dp</dimen>
 
     <!-- Gravity for the notification & quick settings panels -->
-    <!-- 0x800033 = start|top ; 0x800035 = end|top -->
-    <integer name="notification_panel_layout_gravity">0x800033</integer>
+    <!-- 0x31 = top|center_horizontal ; 0x800035 = end|top -->
+    <integer name="notification_panel_layout_gravity">0x31</integer>
     <integer name="settings_panel_layout_gravity">0x800035</integer>
 
     <!-- Diameter of outer shape drawable shown in navbar search-->
@@ -41,9 +41,8 @@
     <dimen name="status_bar_recents_thumbnail_width">200dp</dimen>
     <dimen name="status_bar_recents_thumbnail_height">177dp</dimen>
 
-    <!-- On tablet-sized devices, we allocate the rightmost third(ish) of the draggable status bar
-         to quick settings. -->
-    <item type="dimen" name="settings_panel_dragzone_fraction">35%</item>
+    <!-- On tablets, panels drop from the statusbar instead of overlapping it. -->
+    <dimen name="panel_holder_padding_top">@*android:dimen/status_bar_height</dimen>
 
     <!-- Minimum fraction of the screen that should be taken up by the notification panel. -->
     <item type="dimen" name="notification_panel_min_height_frac">40%</item>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index a59dc75..59e8360 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -31,7 +31,8 @@
     <drawable name="notification_item_background_legacy_color">#ffaaaaaa</drawable>
     <drawable name="heads_up_notification_bg_pressed">#ff33B5E5</drawable>
     <drawable name="notification_header_bg">#FF000000</drawable>
-    <color name="notification_panel_scrim_color">#B0000000</color>
+    <color name="notification_panel_scrim_color">#A0000000</color>
+    <color name="notification_panel_scrim_color_keyguard">#80000000</color>
     <color name="batterymeter_frame_color">#66FFFFFF</color><!-- 40% white -->
     <color name="batterymeter_charge_color">#FFFFFFFF</color>
     <color name="batterymeter_bolt_color">#FFFFFFFF</color>
@@ -39,12 +40,13 @@
     <color name="status_bar_clock_color">#FFFFFFFF</color>
     <drawable name="notification_item_background_color">#ff111111</drawable>
     <drawable name="notification_item_background_color_pressed">#ff454545</drawable>
-    <color name="notification_icon_legacy_bg_color">#ff4285F4</color>
-    <color name="notification_action_legacy_color_filter">#ff555555</color>
 
     <!-- Tint color for inactive Quick Settings icons. -->
     <color name="ic_qs_off">#ff404040</color>
 
     <!-- Tint color for active Quick Settings icons. -->
     <color name="ic_qs_on">#ffffffff</color>
+
+    <!-- Tint color for the content on the notification overflow card. -->
+    <color name="keyguard_overflow_content_color">#ff666666</color>
 </resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 1dd9300..73e3e05 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -56,10 +56,10 @@
     <!-- Amount of time to hold off before showing the search panel when the user presses home -->
     <integer name="config_show_search_delay">200</integer>
 
-    <!-- Vibration duration for MultiWaveView used in SearchPanelView -->
+    <!-- Vibration duration for GlowPadView used in SearchPanelView -->
     <integer translatable="false" name="config_vibration_duration">0</integer>
 
-    <!-- Vibration duration for MultiWaveView used in SearchPanelView -->
+    <!-- Vibration duration for GlowPadView used in SearchPanelView -->
     <integer translatable="false" name="config_search_panel_view_vibration_duration">20</integer>
 
     <!-- The length of the vibration when the notification pops open. -->
@@ -107,5 +107,20 @@
 
     <!-- milliseconds before the heads up notification accepts touches. -->
     <integer name="heads_up_sensitivity_delay">700</integer>
+
+    <!-- The min animation duration for animating views that are currently visible. -->
+    <integer name="recents_filter_animate_current_views_min_duration">175</integer>
+    <!-- The min animation duration for animating views that are newly visible. -->
+    <integer name="recents_filter_animate_new_views_min_duration">125</integer>
+    <!-- The min animation duration for animating views that are newly visible. -->
+    <integer name="recents_animate_task_bar_enter_duration">200</integer>
+    <!-- The animation duration for animating in the info pane. -->
+    <integer name="recents_animate_task_view_info_pane_duration">150</integer>
+    <!-- The minimum alpha for the dim applied to cards that go deeper into the stack. -->
+    <integer name="recents_max_task_stack_view_dim">96</integer>
+
+    <!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
+     card. -->
+    <integer name="keyguard_max_notification_count">4</integer>
 </resources>
 
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index e67e8cf..e7959ab 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -83,7 +83,7 @@
     <dimen name="notification_mid_height">128dp</dimen>
 
     <!-- Height of a small notification in the status bar plus glow, padding, etc -->
-    <dimen name="notification_row_min_height">70dp</dimen>
+    <dimen name="notification_row_min_height">68dp</dimen>
 
     <!-- Height of a large notification in the status bar plus glow, padding, etc -->
     <dimen name="notification_row_max_height">260dp</dimen>
@@ -98,7 +98,7 @@
     <dimen name="status_bar_icon_padding">0dp</dimen>
 
     <!-- half the distance between notifications in the panel -->
-    <dimen name="notification_divider_height">3dp</dimen>
+    <dimen name="notification_divider_height">2dp</dimen>
 
     <!-- Notification drawer tuning parameters (phone UI) -->
     <!-- Initial velocity of the shade when expanding on its own -->
@@ -167,6 +167,9 @@
     <!-- Extra space above the clock in the panel -->
     <dimen name="notification_panel_header_padding_top">0dp</dimen>
 
+    <!-- Extra space above the panel holder -->
+    <dimen name="panel_holder_padding_top">0dp</dimen>
+
     <!-- Layout parameters for the notification panel -->
     <dimen name="notification_panel_margin_bottom">0dp</dimen>
     <dimen name="notification_panel_margin_left">0dp</dimen>
@@ -230,9 +233,40 @@
     <!-- Default distance from each snap target that GlowPadView considers a "hit" -->
     <dimen name="glowpadview_inner_radius">15dip</dimen>
 
-    <!-- The size of the icon in the recents task view. -->
-    <dimen name="recents_task_view_icon_size">60dp</dimen>
+    <!-- The size of the application icon in the recents task view. -->
+    <dimen name="recents_task_view_application_icon_size">60dp</dimen>
 
-    <!-- Width of the zen mode interstitial dialog.  Defaults to MATCH_PARENT. -->
-    <dimen name="zen_mode_dialog_width">-1px</dimen>
+    <!-- The size of the activity icon in the recents task view. -->
+    <dimen name="recents_task_view_activity_icon_size">60dp</dimen>
+
+    <!-- The radius of the rounded corners on a task view. -->
+    <dimen name="recents_task_view_rounded_corners_radius">2dp</dimen>
+
+    <!-- The amount of space a user has to scroll to dismiss any info panes. -->
+    <dimen name="recents_task_stack_scroll_dismiss_info_pane_distance">50dp</dimen>
+
+    <!-- Used to calculate the translation animation duration, the expected amount of movement 
+         in dps over one second of time. -->
+    <dimen name="recents_animation_movement_in_dps_per_second">800dp</dimen>
+
+    <!-- Space below the notification stack -->
+    <dimen name="notification_stack_margin_bottom">0dp</dimen>
+
+    <!-- Space reserved for the cards behind the top card in the top stack -->
+    <dimen name="top_stack_peek_amount">24dp</dimen>
+
+    <!-- Space reserved for the cards behind the top card in the bottom stack -->
+    <dimen name="bottom_stack_peek_amount">18dp</dimen>
+
+    <!-- The side padding of the notifications-->
+    <dimen name="notification_side_padding">8dp</dimen>
+
+    <!-- Z distance between notifications if they are in the stack -->
+    <dimen name="z_distance_between_notifications">2dp</dimen>
+
+    <!-- Width of the zen mode interstitial dialog. -->
+    <dimen name="zen_mode_dialog_width">320dp</dimen>
+
+    <!-- Camera affordance drag distance -->
+    <dimen name="camera_drag_distance">100dp</dimen>
 </resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index ce05639..73e5e19 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -509,6 +509,8 @@
 
     <!-- Recents: The empty recents string. [CHAR LIMIT=NONE] -->
     <string name="recents_empty_message">RECENTS</string>
+    <!-- Recents: The info panel app info button string. [CHAR LIMIT=NONE] -->
+    <string name="recents_app_info_button_label">Application Info</string>
 
 
     <!-- Glyph to be overlaid atop the battery when the level is extremely low. Do not translate. -->
@@ -526,4 +528,17 @@
     <string name="description_direction_up">Slide up for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
     <!-- Description of the left direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] -->
     <string name="description_direction_left">"Slide left for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
+
+    <!-- Zen mode: Summary notification content title. [CHAR LIMIT=NONE] -->
+    <plurals name="zen_mode_notification_title">
+        <item quantity="one">Notification hidden</item>
+        <item quantity="other">%d notifications hidden</item>
+    </plurals>
+    <!-- Zen mode: Summary notification content text. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_notification_text">Touch to show</string>
+
+    <!-- Text for overflow card on Keyguard when there is not enough space for all notifications on Keyguard. [CHAR LIMIT=12] -->
+    <plurals name="keyguard_more_overflow_text">
+        <item quantity="other">%d more</item>
+    </plurals>
 </resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 14af020..8ab646d 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -16,12 +16,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <style name="RecentsStyle" parent="@android:style/Theme.Holo.Wallpaper.NoTitleBar">
+    <style name="RecentsStyle" parent="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar">
         <item name="android:windowAnimationStyle">@style/Animation.RecentsActivity</item>
     </style>
 
     <!-- Alternate Recents theme -->
-    <style name="RecentsTheme" parent="@android:style/Theme.Holo.Wallpaper.NoTitleBar">
+    <style name="RecentsTheme" parent="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar">
         <item name="android:windowTranslucentStatus">true</item>
         <item name="android:windowTranslucentNavigation">true</item>
         <item name="android:windowAnimationStyle">@style/Animation.RecentsActivity</item>
@@ -137,10 +137,9 @@
     <style name="BaseBrightnessDialogContainer">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_marginLeft">8dp</item>
-        <item name="android:layout_marginRight">8dp</item>
         <item name="android:padding">16dp</item>
     </style>
+
     <style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer" />
 
     <style name="Animation" />
@@ -169,5 +168,7 @@
         <!-- Note: must be dp to fit in status bar -->
         <item name="android:textSize">14dp</item>
     </style>
-    
+
+    <style name="systemui_theme" parent="@android:style/Theme.DeviceDefault" />
+
 </resources>
diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
index 48a6522..1832d37 100644
--- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
@@ -34,6 +34,8 @@
 import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 
+import com.android.systemui.statusbar.policy.ScrollAdapter;
+
 public class ExpandHelper implements Gefingerpoken, OnClickListener {
     public interface Callback {
         View getChildAtRawPosition(float x, float y);
@@ -108,7 +110,7 @@
 
     private int mGravity;
 
-    private View mScrollView;
+    private ScrollAdapter mScrollAdapter;
 
     private OnScaleGestureListener mScaleGestureListener
             = new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@@ -301,8 +303,8 @@
         mGravity = gravity;
     }
 
-    public void setScrollView(View scrollView) {
-        mScrollView = scrollView;
+    public void setScrollAdapter(ScrollAdapter adapter) {
+        mScrollAdapter = adapter;
     }
 
     private float calculateGlow(float target, float actual) {
@@ -384,7 +386,7 @@
                 }
                 return true;
             }
-            if (mScrollView != null && mScrollView.getScrollY() > 0) {
+            if (mScrollAdapter != null && !mScrollAdapter.isScrolledToTop()) {
                 return false;
             }
             // Now look for other gestures
@@ -407,7 +409,8 @@
             }
 
             case MotionEvent.ACTION_DOWN:
-                mWatchingForPull = isInside(mScrollView, x, y);
+                mWatchingForPull = mScrollAdapter != null &&
+                        isInside(mScrollAdapter.getHostView(), x, y);
                 mLastMotionY = y;
                 break;
 
diff --git a/packages/SystemUI/src/com/android/systemui/ImageUtils.java b/packages/SystemUI/src/com/android/systemui/ImageUtils.java
deleted file mode 100644
index 540ba20..0000000
--- a/packages/SystemUI/src/com/android/systemui/ImageUtils.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.android.systemui;
-
-import android.graphics.Bitmap;
-
-/**
- * Utility class for image analysis and processing.
- */
-public class ImageUtils {
-
-    // Amount (max is 255) that two channels can differ before the color is no longer "gray".
-    private static final int TOLERANCE = 20;
-
-    // Alpha amount for which values below are considered transparent.
-    private static final int ALPHA_TOLERANCE = 50;
-
-    private int[] mTempBuffer;
-
-    /**
-     * Checks whether a bitmap is grayscale. Grayscale here means "very close to a perfect
-     * gray".
-     */
-    public boolean isGrayscale(Bitmap bitmap) {
-        final int height = bitmap.getHeight();
-        final int width = bitmap.getWidth();
-        int size = height*width;
-
-        ensureBufferSize(size);
-        bitmap.getPixels(mTempBuffer, 0, width, 0, 0, width, height);
-        for (int i = 0; i < size; i++) {
-            if (!isGrayscale(mTempBuffer[i])) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Makes sure that {@code mTempBuffer} has at least length {@code size}.
-     */
-    private void ensureBufferSize(int size) {
-        if (mTempBuffer == null || mTempBuffer.length < size) {
-            mTempBuffer = new int[size];
-        }
-    }
-
-    /**
-     * Classifies a color as grayscale or not. Grayscale here means "very close to a perfect
-     * gray"; if all three channels are approximately equal, this will return true.
-     *
-     * Note that really transparent colors are always grayscale.
-     */
-    public boolean isGrayscale(int color) {
-        int alpha = 0xFF & (color >> 24);
-        if (alpha < ALPHA_TOLERANCE) {
-            return true;
-        }
-
-        int r = 0xFF & (color >> 16);
-        int g = 0xFF & (color >> 8);
-        int b = 0xFF & color;
-
-        return Math.abs(r - g) < TOLERANCE
-                && Math.abs(r - b) < TOLERANCE
-                && Math.abs(g - b) < TOLERANCE;
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
new file mode 100644
index 0000000..0f55683
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
@@ -0,0 +1,111 @@
+/*
+ * 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.android.systemui;
+
+import android.app.Application;
+import android.content.res.Configuration;
+import android.util.Log;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Application class for SystemUI.
+ */
+public class SystemUIApplication extends Application {
+
+    private static final String TAG = "SystemUIService";
+    private static final boolean DEBUG = false;
+
+    /**
+     * The classes of the stuff to start.
+     */
+    private final Class<?>[] SERVICES = new Class[] {
+            com.android.systemui.keyguard.KeyguardViewMediator.class,
+            com.android.systemui.recent.Recents.class,
+            com.android.systemui.statusbar.SystemBars.class,
+            com.android.systemui.usb.StorageNotification.class,
+            com.android.systemui.power.PowerUI.class,
+            com.android.systemui.media.RingtonePlayer.class,
+            com.android.systemui.settings.SettingsUI.class,
+    };
+
+    /**
+     * Hold a reference on the stuff we start.
+     */
+    private final SystemUI[] mServices = new SystemUI[SERVICES.length];
+    private boolean mServicesStarted;
+    private final Map<Class<?>, Object> mComponents = new HashMap<Class<?>, Object>();
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        // Set the application theme that is inherited by all services. Note that setting the
+        // application theme in the manifest does only work for activities. Keep this in sync with
+        // the theme set there.
+        setTheme(R.style.systemui_theme);
+    }
+
+    /**
+     * Makes sure that all the SystemUI services are running. If they are already running, this is a
+     * no-op. This is needed to conditinally start all the services, as we only need to have it in
+     * the main process.
+     *
+     * <p>This method must only be called from the main thread.</p>
+     */
+    public void startServicesIfNeeded() {
+        if (mServicesStarted) {
+            return;
+        }
+        final int N = SERVICES.length;
+        for (int i=0; i<N; i++) {
+            Class<?> cl = SERVICES[i];
+            if (DEBUG) Log.d(TAG, "loading: " + cl);
+            try {
+                mServices[i] = (SystemUI)cl.newInstance();
+            } catch (IllegalAccessException ex) {
+                throw new RuntimeException(ex);
+            } catch (InstantiationException ex) {
+                throw new RuntimeException(ex);
+            }
+            mServices[i].mContext = this;
+            mServices[i].mComponents = mComponents;
+            if (DEBUG) Log.d(TAG, "running: " + mServices[i]);
+            mServices[i].start();
+        }
+        mServicesStarted = true;
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (mServicesStarted) {
+            int len = mServices.length;
+            for (int i = 0; i < len; i++) {
+                mServices[i].onConfigurationChanged(newConfig);
+            }
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public <T> T getComponent(Class<T> interfaceType) {
+        return (T) mComponents.get(interfaceType);
+    }
+
+    public SystemUI[] getServices() {
+        return mServices;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIService.java b/packages/SystemUI/src/com/android/systemui/SystemUIService.java
index ca5f7d1..05e5f6b 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIService.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIService.java
@@ -18,80 +18,35 @@
 
 import android.app.Service;
 import android.content.Intent;
-import android.content.res.Configuration;
 import android.os.IBinder;
-import android.util.Log;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
-import java.util.HashMap;
 
 public class SystemUIService extends Service {
-    private static final String TAG = "SystemUIService";
-
-    /**
-     * The classes of the stuff to start.
-     */
-    private final Class<?>[] SERVICES = new Class[] {
-            com.android.systemui.recent.Recents.class,
-            com.android.systemui.statusbar.SystemBars.class,
-            com.android.systemui.usb.StorageNotification.class,
-            com.android.systemui.power.PowerUI.class,
-            com.android.systemui.media.RingtonePlayer.class,
-            com.android.systemui.settings.SettingsUI.class,
-        };
-
-    /**
-     * Hold a reference on the stuff we start.
-     */
-    private final SystemUI[] mServices = new SystemUI[SERVICES.length];
 
     @Override
     public void onCreate() {
-        HashMap<Class<?>, Object> components = new HashMap<Class<?>, Object>();
-        final int N = SERVICES.length;
-        for (int i=0; i<N; i++) {
-            Class<?> cl = SERVICES[i];
-            Log.d(TAG, "loading: " + cl);
-            try {
-                mServices[i] = (SystemUI)cl.newInstance();
-            } catch (IllegalAccessException ex) {
-                throw new RuntimeException(ex);
-            } catch (InstantiationException ex) {
-                throw new RuntimeException(ex);
-            }
-            mServices[i].mContext = this;
-            mServices[i].mComponents = components;
-            Log.d(TAG, "running: " + mServices[i]);
-            mServices[i].start();
-        }
+        super.onCreate();
+        ((SystemUIApplication) getApplication()).startServicesIfNeeded();
     }
 
     @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        for (SystemUI ui: mServices) {
-            ui.onConfigurationChanged(newConfig);
-        }
-    }
-
-    /**
-     * Nobody binds to us.
-     */
-    @Override
     public IBinder onBind(Intent intent) {
         return null;
     }
 
     @Override
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        SystemUI[] services = ((SystemUIApplication) getApplication()).getServices();
         if (args == null || args.length == 0) {
-            for (SystemUI ui: mServices) {
+            for (SystemUI ui: services) {
                 pw.println("dumping service: " + ui.getClass().getName());
                 ui.dump(fd, pw, args);
             }
         } else {
             String svc = args[0];
-            for (SystemUI ui: mServices) {
+            for (SystemUI ui: services) {
                 String name = ui.getClass().getName();
                 if (name.endsWith(svc)) {
                     ui.dump(fd, pw, args);
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
new file mode 100644
index 0000000..41c0e78
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
@@ -0,0 +1,207 @@
+/*
+ * 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.android.systemui.keyguard;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Debug;
+import android.os.IBinder;
+import android.util.Log;
+import android.view.MotionEvent;
+
+import com.android.internal.policy.IKeyguardExitCallback;
+import com.android.internal.policy.IKeyguardService;
+import com.android.internal.policy.IKeyguardServiceConstants;
+import com.android.internal.policy.IKeyguardShowCallback;
+import com.android.systemui.SystemUIApplication;
+
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+
+public class KeyguardService extends Service {
+    static final String TAG = "KeyguardService";
+    static final String PERMISSION = android.Manifest.permission.CONTROL_KEYGUARD;
+
+    private KeyguardViewMediator mKeyguardViewMediator;
+
+    @Override
+    public void onCreate() {
+        ((SystemUIApplication) getApplication()).startServicesIfNeeded();
+        mKeyguardViewMediator =
+                ((SystemUIApplication) getApplication()).getComponent(KeyguardViewMediator.class);
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+
+    void checkPermission() {
+        if (getBaseContext().checkCallingOrSelfPermission(PERMISSION) != PERMISSION_GRANTED) {
+            Log.w(TAG, "Caller needs permission '" + PERMISSION + "' to call " + Debug.getCaller());
+            throw new SecurityException("Access denied to process: " + Binder.getCallingPid()
+                    + ", must have permission " + PERMISSION);
+        }
+    }
+
+    private final IKeyguardService.Stub mBinder = new IKeyguardService.Stub() {
+
+        private boolean mIsOccluded;
+
+        @Override
+        public boolean isShowing() {
+            return mKeyguardViewMediator.isShowing();
+        }
+
+        @Override
+        public boolean isSecure() {
+            return mKeyguardViewMediator.isSecure();
+        }
+
+        @Override
+        public boolean isShowingAndNotOccluded() {
+            return mKeyguardViewMediator.isShowingAndNotOccluded();
+        }
+
+        @Override
+        public boolean isInputRestricted() {
+            return mKeyguardViewMediator.isInputRestricted();
+        }
+
+        @Override
+        public void verifyUnlock(IKeyguardExitCallback callback) {
+            checkPermission();
+            mKeyguardViewMediator.verifyUnlock(callback);
+        }
+
+        @Override
+        public void keyguardDone(boolean authenticated, boolean wakeup) {
+            checkPermission();
+            mKeyguardViewMediator.keyguardDone(authenticated, wakeup);
+        }
+
+        @Override
+        public int setOccluded(boolean isOccluded) {
+            checkPermission();
+            synchronized (this) {
+                int result;
+                if (isOccluded && mKeyguardViewMediator.isShowing()
+                        && !mIsOccluded) {
+                    result = IKeyguardServiceConstants
+                            .KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_UNSET_FLAGS;
+                } else if (!isOccluded && mKeyguardViewMediator.isShowing()
+                        && mIsOccluded) {
+                    result = IKeyguardServiceConstants
+                            .KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_SET_FLAGS;
+                } else {
+                    result = IKeyguardServiceConstants.KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_NONE;
+                }
+                if (mIsOccluded != isOccluded) {
+                    mKeyguardViewMediator.setOccluded(isOccluded);
+
+                    // Cache the value so we always have a fresh view in whether Keyguard is occluded.
+                    // If we would just call mKeyguardViewMediator.isOccluded(), this might be stale
+                    // because that value gets updated in another thread.
+                    mIsOccluded = isOccluded;
+                }
+                return result;
+            }
+        }
+
+        @Override
+        public void dismiss() {
+            checkPermission();
+            mKeyguardViewMediator.dismiss();
+        }
+
+        @Override
+        public void onDreamingStarted() {
+            checkPermission();
+            mKeyguardViewMediator.onDreamingStarted();
+        }
+
+        @Override
+        public void onDreamingStopped() {
+            checkPermission();
+            mKeyguardViewMediator.onDreamingStopped();
+        }
+
+        @Override
+        public void onScreenTurnedOff(int reason) {
+            checkPermission();
+            mKeyguardViewMediator.onScreenTurnedOff(reason);
+        }
+
+        @Override
+        public void onScreenTurnedOn(IKeyguardShowCallback callback) {
+            checkPermission();
+            mKeyguardViewMediator.onScreenTurnedOn(callback);
+        }
+
+        @Override
+        public void setKeyguardEnabled(boolean enabled) {
+            checkPermission();
+            mKeyguardViewMediator.setKeyguardEnabled(enabled);
+        }
+
+        @Override
+        public boolean isDismissable() {
+            return mKeyguardViewMediator.isDismissable();
+        }
+
+        @Override
+        public void onSystemReady() {
+            checkPermission();
+            mKeyguardViewMediator.onSystemReady();
+        }
+
+        @Override
+        public void doKeyguardTimeout(Bundle options) {
+            checkPermission();
+            mKeyguardViewMediator.doKeyguardTimeout(options);
+        }
+
+        @Override
+        public void setCurrentUser(int userId) {
+            checkPermission();
+            mKeyguardViewMediator.setCurrentUser(userId);
+        }
+
+        @Override
+        public void showAssistant() {
+            checkPermission();
+        }
+
+        @Override
+        public void dispatch(MotionEvent event) {
+            checkPermission();
+        }
+
+        @Override
+        public void launchCamera() {
+            checkPermission();
+        }
+
+        @Override
+        public void onBootCompleted() {
+            checkPermission();
+            mKeyguardViewMediator.onBootCompleted();
+        }
+    };
+}
+
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
new file mode 100644
index 0000000..bb39d36
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -0,0 +1,1369 @@
+/*
+ * 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.android.systemui.keyguard;
+
+import android.app.Activity;
+import android.app.ActivityManagerNative;
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.app.SearchManager;
+import android.app.StatusBarManager;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.media.AudioManager;
+import android.media.SoundPool;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.util.EventLog;
+import android.util.Log;
+import android.util.Slog;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.view.WindowManagerPolicy;
+
+import com.android.internal.policy.IKeyguardExitCallback;
+import com.android.internal.policy.IKeyguardShowCallback;
+import com.android.internal.telephony.IccCardConstants;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.keyguard.KeyguardDisplayManager;
+import com.android.keyguard.KeyguardUpdateMonitor;
+import com.android.keyguard.KeyguardUpdateMonitorCallback;
+import com.android.keyguard.MultiUserAvatarCache;
+import com.android.keyguard.ViewMediatorCallback;
+import com.android.keyguard.analytics.KeyguardAnalytics;
+import com.android.keyguard.analytics.Session;
+import com.android.systemui.SystemUI;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
+import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.statusbar.phone.StatusBarWindowManager;
+
+import java.io.File;
+
+import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
+import static com.android.keyguard.analytics.KeyguardAnalytics.SessionTypeAdapter;
+
+
+/**
+ * Mediates requests related to the keyguard.  This includes queries about the
+ * state of the keyguard, power management events that effect whether the keyguard
+ * should be shown or reset, callbacks to the phone window manager to notify
+ * it of when the keyguard is showing, and events from the keyguard view itself
+ * stating that the keyguard was succesfully unlocked.
+ *
+ * Note that the keyguard view is shown when the screen is off (as appropriate)
+ * so that once the screen comes on, it will be ready immediately.
+ *
+ * Example queries about the keyguard:
+ * - is {movement, key} one that should wake the keygaurd?
+ * - is the keyguard showing?
+ * - are input events restricted due to the state of the keyguard?
+ *
+ * Callbacks to the phone window manager:
+ * - the keyguard is showing
+ *
+ * Example external events that translate to keyguard view changes:
+ * - screen turned off -> reset the keyguard, and show it so it will be ready
+ *   next time the screen turns on
+ * - keyboard is slid open -> if the keyguard is not secure, hide it
+ *
+ * Events from the keyguard view:
+ * - user succesfully unlocked keyguard -> hide keyguard view, and no longer
+ *   restrict input events.
+ *
+ * Note: in addition to normal power managment events that effect the state of
+ * whether the keyguard should be showing, external apps and services may request
+ * that the keyguard be disabled via {@link #setKeyguardEnabled(boolean)}.  When
+ * false, this will override all other conditions for turning on the keyguard.
+ *
+ * Threading and synchronization:
+ * This class is created by the initialization routine of the {@link android.view.WindowManagerPolicy},
+ * and runs on its thread.  The keyguard UI is created from that thread in the
+ * constructor of this class.  The apis may be called from other threads, including the
+ * {@link com.android.server.input.InputManagerService}'s and {@link android.view.WindowManager}'s.
+ * Therefore, methods on this class are synchronized, and any action that is pointed
+ * directly to the keyguard UI is posted to a {@link android.os.Handler} to ensure it is taken on the UI
+ * thread of the keyguard.
+ */
+public class KeyguardViewMediator extends SystemUI {
+    private static final int KEYGUARD_DISPLAY_TIMEOUT_DELAY_DEFAULT = 30000;
+    final static boolean DEBUG = false;
+    private static final boolean ENABLE_ANALYTICS = Build.IS_DEBUGGABLE;
+    private final static boolean DBG_WAKE = false;
+
+    private final static String TAG = "KeyguardViewMediator";
+
+    private static final String DELAYED_KEYGUARD_ACTION =
+        "com.android.internal.policy.impl.PhoneWindowManager.DELAYED_KEYGUARD";
+
+    // used for handler messages
+    private static final int SHOW = 2;
+    private static final int HIDE = 3;
+    private static final int RESET = 4;
+    private static final int VERIFY_UNLOCK = 5;
+    private static final int NOTIFY_SCREEN_OFF = 6;
+    private static final int NOTIFY_SCREEN_ON = 7;
+    private static final int KEYGUARD_DONE = 9;
+    private static final int KEYGUARD_DONE_DRAWING = 10;
+    private static final int KEYGUARD_DONE_AUTHENTICATING = 11;
+    private static final int SET_OCCLUDED = 12;
+    private static final int KEYGUARD_TIMEOUT = 13;
+    private static final int DISMISS = 17;
+
+    /**
+     * The default amount of time we stay awake (used for all key input)
+     */
+    public static final int AWAKE_INTERVAL_DEFAULT_MS = 10000;
+
+    /**
+     * How long to wait after the screen turns off due to timeout before
+     * turning on the keyguard (i.e, the user has this much time to turn
+     * the screen back on without having to face the keyguard).
+     */
+    private static final int KEYGUARD_LOCK_AFTER_DELAY_DEFAULT = 5000;
+
+    /**
+     * How long we'll wait for the {@link ViewMediatorCallback#keyguardDoneDrawing()}
+     * callback before unblocking a call to {@link #setKeyguardEnabled(boolean)}
+     * that is reenabling the keyguard.
+     */
+    private static final int KEYGUARD_DONE_DRAWING_TIMEOUT_MS = 2000;
+
+    /**
+     * Allow the user to expand the status bar when the keyguard is engaged
+     * (without a pattern or password).
+     */
+    private static final boolean ENABLE_INSECURE_STATUS_BAR_EXPAND = true;
+
+    /**
+     * Allow the user to expand the status bar when a SECURE keyguard is engaged
+     * and {@link android.provider.Settings.Global#LOCK_SCREEN_SHOW_NOTIFICATIONS} is set
+     * (private notifications will be masked).
+     */
+    private static final boolean ENABLE_SECURE_STATUS_BAR_EXPAND = true;
+
+    /**
+     * Default value of {@link android.provider.Settings.Global#LOCK_SCREEN_SHOW_NOTIFICATIONS}.
+     */
+    private static final boolean ALLOW_NOTIFICATIONS_DEFAULT = false;
+
+    /**
+     * Secure setting whether analytics are collected on the keyguard.
+     */
+    private static final String KEYGUARD_ANALYTICS_SETTING = "keyguard_analytics";
+
+    /** The stream type that the lock sounds are tied to. */
+    private int mMasterStreamType;
+
+    private AlarmManager mAlarmManager;
+    private AudioManager mAudioManager;
+    private StatusBarManager mStatusBarManager;
+    private boolean mSwitchingUser;
+
+    private boolean mSystemReady;
+
+    // Whether the next call to playSounds() should be skipped.  Defaults to
+    // true because the first lock (on boot) should be silent.
+    private boolean mSuppressNextLockSound = true;
+
+
+    /** High level access to the power manager for WakeLocks */
+    private PowerManager mPM;
+
+    /** UserManager for querying number of users */
+    private UserManager mUserManager;
+
+    /** SearchManager for determining whether or not search assistant is available */
+    private SearchManager mSearchManager;
+
+    /**
+     * Used to keep the device awake while to ensure the keyguard finishes opening before
+     * we sleep.
+     */
+    private PowerManager.WakeLock mShowKeyguardWakeLock;
+
+    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
+
+    private KeyguardAnalytics mKeyguardAnalytics;
+
+    // these are protected by synchronized (this)
+
+    /**
+     * External apps (like the phone app) can tell us to disable the keygaurd.
+     */
+    private boolean mExternallyEnabled = true;
+
+    /**
+     * Remember if an external call to {@link #setKeyguardEnabled} with value
+     * false caused us to hide the keyguard, so that we need to reshow it once
+     * the keygaurd is reenabled with another call with value true.
+     */
+    private boolean mNeedToReshowWhenReenabled = false;
+
+    // cached value of whether we are showing (need to know this to quickly
+    // answer whether the input should be restricted)
+    private boolean mShowing;
+
+    // true if the keyguard is hidden by another window
+    private boolean mOccluded = false;
+
+    /**
+     * Helps remember whether the screen has turned on since the last time
+     * it turned off due to timeout. see {@link #onScreenTurnedOff(int)}
+     */
+    private int mDelayedShowingSequence;
+
+    /**
+     * If the user has disabled the keyguard, then requests to exit, this is
+     * how we'll ultimately let them know whether it was successful.  We use this
+     * var being non-null as an indicator that there is an in progress request.
+     */
+    private IKeyguardExitCallback mExitSecureCallback;
+
+    // the properties of the keyguard
+
+    private KeyguardUpdateMonitor mUpdateMonitor;
+
+    private boolean mScreenOn;
+
+    // last known state of the cellular connection
+    private String mPhoneState = TelephonyManager.EXTRA_STATE_IDLE;
+
+    /**
+     * we send this intent when the keyguard is dismissed.
+     */
+    private static final Intent USER_PRESENT_INTENT = new Intent(Intent.ACTION_USER_PRESENT)
+            .addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
+                    | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+
+    /**
+     * {@link #setKeyguardEnabled} waits on this condition when it reenables
+     * the keyguard.
+     */
+    private boolean mWaitingUntilKeyguardVisible = false;
+    private LockPatternUtils mLockPatternUtils;
+    private boolean mKeyguardDonePending = false;
+
+    private SoundPool mLockSounds;
+    private int mLockSoundId;
+    private int mUnlockSoundId;
+    private int mLockSoundStreamId;
+
+    /**
+     * Tracks value of {@link android.provider.Settings.Global#LOCK_SCREEN_SHOW_NOTIFICATIONS}.
+     */
+    private boolean mAllowNotificationsWhenSecure;
+
+    /**
+     * The volume applied to the lock/unlock sounds.
+     */
+    private float mLockSoundVolume;
+
+    /**
+     * For managing external displays
+     */
+    private KeyguardDisplayManager mKeyguardDisplayManager;
+
+    KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {
+
+        @Override
+        public void onUserSwitching(int userId) {
+            // Note that the mLockPatternUtils user has already been updated from setCurrentUser.
+            // We need to force a reset of the views, since lockNow (called by
+            // ActivityManagerService) will not reconstruct the keyguard if it is already showing.
+            synchronized (KeyguardViewMediator.this) {
+                mSwitchingUser = true;
+                resetStateLocked();
+                adjustStatusBarLocked();
+                // When we switch users we want to bring the new user to the biometric unlock even
+                // if the current user has gone to the backup.
+                KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(true);
+            }
+        }
+
+        @Override
+        public void onUserSwitchComplete(int userId) {
+            mSwitchingUser = false;
+        }
+
+        @Override
+        public void onUserRemoved(int userId) {
+            mLockPatternUtils.removeUser(userId);
+            MultiUserAvatarCache.getInstance().clear(userId);
+        }
+
+        @Override
+        public void onUserInfoChanged(int userId) {
+            MultiUserAvatarCache.getInstance().clear(userId);
+        }
+
+        @Override
+        public void onPhoneStateChanged(int phoneState) {
+            synchronized (KeyguardViewMediator.this) {
+                if (TelephonyManager.CALL_STATE_IDLE == phoneState  // call ending
+                        && !mScreenOn                           // screen off
+                        && mExternallyEnabled) {                // not disabled by any app
+
+                    // note: this is a way to gracefully reenable the keyguard when the call
+                    // ends and the screen is off without always reenabling the keyguard
+                    // each time the screen turns off while in call (and having an occasional ugly
+                    // flicker while turning back on the screen and disabling the keyguard again).
+                    if (DEBUG) Log.d(TAG, "screen is off and call ended, let's make sure the "
+                            + "keyguard is showing");
+                    doKeyguardLocked(null);
+                }
+            }
+        }
+
+        @Override
+        public void onClockVisibilityChanged() {
+            adjustStatusBarLocked();
+        }
+
+        @Override
+        public void onDeviceProvisioned() {
+            sendUserPresentBroadcast();
+        }
+
+        @Override
+        public void onSimStateChanged(IccCardConstants.State simState) {
+            if (DEBUG) Log.d(TAG, "onSimStateChanged: " + simState);
+
+            switch (simState) {
+                case NOT_READY:
+                case ABSENT:
+                    // only force lock screen in case of missing sim if user hasn't
+                    // gone through setup wizard
+                    synchronized (this) {
+                        if (!mUpdateMonitor.isDeviceProvisioned()) {
+                            if (!isShowing()) {
+                                if (DEBUG) Log.d(TAG, "ICC_ABSENT isn't showing,"
+                                        + " we need to show the keyguard since the "
+                                        + "device isn't provisioned yet.");
+                                doKeyguardLocked(null);
+                            } else {
+                                resetStateLocked();
+                            }
+                        }
+                    }
+                    break;
+                case PIN_REQUIRED:
+                case PUK_REQUIRED:
+                    synchronized (this) {
+                        if (!isShowing()) {
+                            if (DEBUG) Log.d(TAG, "INTENT_VALUE_ICC_LOCKED and keygaurd isn't "
+                                    + "showing; need to show keyguard so user can enter sim pin");
+                            doKeyguardLocked(null);
+                        } else {
+                            resetStateLocked();
+                        }
+                    }
+                    break;
+                case PERM_DISABLED:
+                    synchronized (this) {
+                        if (!isShowing()) {
+                            if (DEBUG) Log.d(TAG, "PERM_DISABLED and "
+                                  + "keygaurd isn't showing.");
+                            doKeyguardLocked(null);
+                        } else {
+                            if (DEBUG) Log.d(TAG, "PERM_DISABLED, resetStateLocked to"
+                                  + "show permanently disabled message in lockscreen.");
+                            resetStateLocked();
+                        }
+                    }
+                    break;
+                case READY:
+                    synchronized (this) {
+                        if (isShowing()) {
+                            resetStateLocked();
+                        }
+                    }
+                    break;
+            }
+        }
+
+    };
+
+    ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() {
+
+        public void userActivity() {
+            KeyguardViewMediator.this.userActivity();
+        }
+
+        public void userActivity(long holdMs) {
+            KeyguardViewMediator.this.userActivity(holdMs);
+        }
+
+        public void keyguardDone(boolean authenticated) {
+            KeyguardViewMediator.this.keyguardDone(authenticated, true);
+        }
+
+        public void keyguardDoneDrawing() {
+            mHandler.sendEmptyMessage(KEYGUARD_DONE_DRAWING);
+        }
+
+        @Override
+        public void setNeedsInput(boolean needsInput) {
+            mStatusBarKeyguardViewManager.setNeedsInput(needsInput);
+        }
+
+        @Override
+        public void onUserActivityTimeoutChanged() {
+            mStatusBarKeyguardViewManager.updateUserActivityTimeout();
+        }
+
+        @Override
+        public void keyguardDonePending() {
+            mKeyguardDonePending = true;
+        }
+
+        @Override
+        public void keyguardGone() {
+            mKeyguardDisplayManager.hide();
+        }
+    };
+
+    private void userActivity() {
+        userActivity(AWAKE_INTERVAL_DEFAULT_MS);
+    }
+
+    public void userActivity(long holdMs) {
+        // We ignore the hold time.  Eventually we should remove it.
+        // Instead, the keyguard window has an explicit user activity timeout set on it.
+        mPM.userActivity(SystemClock.uptimeMillis(), false);
+    }
+
+    private void setup() {
+        mPM = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+        mShowKeyguardWakeLock = mPM.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "show keyguard");
+        mShowKeyguardWakeLock.setReferenceCounted(false);
+
+        mContext.registerReceiver(mBroadcastReceiver, new IntentFilter(DELAYED_KEYGUARD_ACTION));
+
+        mKeyguardDisplayManager = new KeyguardDisplayManager(mContext);
+
+        mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
+
+        mUpdateMonitor = KeyguardUpdateMonitor.getInstance(mContext);
+
+        mLockPatternUtils = new LockPatternUtils(mContext);
+        mLockPatternUtils.setCurrentUser(UserHandle.USER_OWNER);
+
+        // Assume keyguard is showing (unless it's disabled) until we know for sure...
+        mShowing = (mUpdateMonitor.isDeviceProvisioned() || mLockPatternUtils.isSecure())
+                && !mLockPatternUtils.isLockScreenDisabled();
+
+        mStatusBarKeyguardViewManager = new StatusBarKeyguardViewManager(mContext,
+                mViewMediatorCallback, mLockPatternUtils);
+        final ContentResolver cr = mContext.getContentResolver();
+
+        if (ENABLE_ANALYTICS && !LockPatternUtils.isSafeModeEnabled() &&
+                Settings.Secure.getInt(cr, KEYGUARD_ANALYTICS_SETTING, 0) == 1) {
+            mKeyguardAnalytics = new KeyguardAnalytics(mContext, new SessionTypeAdapter() {
+
+                @Override
+                public int getSessionType() {
+                    return mLockPatternUtils.isSecure() && !mUpdateMonitor.getUserHasTrust(
+                            mLockPatternUtils.getCurrentUser())
+                            ? Session.TYPE_KEYGUARD_SECURE
+                            : Session.TYPE_KEYGUARD_INSECURE;
+                }
+            }, new File(mContext.getCacheDir(), "keyguard_analytics.bin"));
+        } else {
+            mKeyguardAnalytics = null;
+        }
+
+        mScreenOn = mPM.isScreenOn();
+
+        mLockSounds = new SoundPool(1, AudioManager.STREAM_SYSTEM, 0);
+        String soundPath = Settings.Global.getString(cr, Settings.Global.LOCK_SOUND);
+        if (soundPath != null) {
+            mLockSoundId = mLockSounds.load(soundPath, 1);
+        }
+        if (soundPath == null || mLockSoundId == 0) {
+            Log.w(TAG, "failed to load lock sound from " + soundPath);
+        }
+        soundPath = Settings.Global.getString(cr, Settings.Global.UNLOCK_SOUND);
+        if (soundPath != null) {
+            mUnlockSoundId = mLockSounds.load(soundPath, 1);
+        }
+        if (soundPath == null || mUnlockSoundId == 0) {
+            Log.w(TAG, "failed to load unlock sound from " + soundPath);
+        }
+        int lockSoundDefaultAttenuation = mContext.getResources().getInteger(
+                com.android.internal.R.integer.config_lockSoundVolumeDb);
+        mLockSoundVolume = (float)Math.pow(10, (float)lockSoundDefaultAttenuation/20);
+    }
+
+    @Override
+    public void start() {
+        setup();
+        putComponent(KeyguardViewMediator.class, this);
+    }
+
+    /**
+     * Let us know that the system is ready after startup.
+     */
+    public void onSystemReady() {
+        mSearchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
+        synchronized (this) {
+            if (DEBUG) Log.d(TAG, "onSystemReady");
+            mSystemReady = true;
+            mUpdateMonitor.registerCallback(mUpdateCallback);
+
+            // Suppress biometric unlock right after boot until things have settled if it is the
+            // selected security method, otherwise unsuppress it.  It must be unsuppressed if it is
+            // not the selected security method for the following reason:  if the user starts
+            // without a screen lock selected, the biometric unlock would be suppressed the first
+            // time they try to use it.
+            //
+            // Note that the biometric unlock will still not show if it is not the selected method.
+            // Calling setAlternateUnlockEnabled(true) simply says don't suppress it if it is the
+            // selected method.
+            if (mLockPatternUtils.usingBiometricWeak()
+                    && mLockPatternUtils.isBiometricWeakInstalled()) {
+                if (DEBUG) Log.d(TAG, "suppressing biometric unlock during boot");
+                mUpdateMonitor.setAlternateUnlockEnabled(false);
+            } else {
+                mUpdateMonitor.setAlternateUnlockEnabled(true);
+            }
+
+            doKeyguardLocked(null);
+        }
+        // Most services aren't available until the system reaches the ready state, so we
+        // send it here when the device first boots.
+        maybeSendUserPresentBroadcast();
+    }
+
+    /**
+     * Called to let us know the screen was turned off.
+     * @param why either {@link android.view.WindowManagerPolicy#OFF_BECAUSE_OF_USER},
+     *   {@link android.view.WindowManagerPolicy#OFF_BECAUSE_OF_TIMEOUT} or
+     *   {@link android.view.WindowManagerPolicy#OFF_BECAUSE_OF_PROX_SENSOR}.
+     */
+    public void onScreenTurnedOff(int why) {
+        synchronized (this) {
+            mScreenOn = false;
+            if (DEBUG) Log.d(TAG, "onScreenTurnedOff(" + why + ")");
+
+            mKeyguardDonePending = false;
+
+            // Lock immediately based on setting if secure (user has a pin/pattern/password).
+            // This also "locks" the device when not secure to provide easy access to the
+            // camera while preventing unwanted input.
+            final boolean lockImmediately =
+                mLockPatternUtils.getPowerButtonInstantlyLocks() || !mLockPatternUtils.isSecure();
+
+            if (mExitSecureCallback != null) {
+                if (DEBUG) Log.d(TAG, "pending exit secure callback cancelled");
+                try {
+                    mExitSecureCallback.onKeyguardExitResult(false);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
+                }
+                mExitSecureCallback = null;
+                if (!mExternallyEnabled) {
+                    hideLocked();
+                }
+            } else if (mShowing) {
+                notifyScreenOffLocked();
+                resetStateLocked();
+            } else if (why == WindowManagerPolicy.OFF_BECAUSE_OF_TIMEOUT
+                   || (why == WindowManagerPolicy.OFF_BECAUSE_OF_USER && !lockImmediately)) {
+                doKeyguardLaterLocked();
+            } else if (why == WindowManagerPolicy.OFF_BECAUSE_OF_PROX_SENSOR) {
+                // Do not enable the keyguard if the prox sensor forced the screen off.
+            } else {
+                doKeyguardLocked(null);
+            }
+            if (ENABLE_ANALYTICS && mKeyguardAnalytics != null) {
+                mKeyguardAnalytics.getCallback().onScreenOff();
+            }
+        }
+        KeyguardUpdateMonitor.getInstance(mContext).dispatchScreenTurndOff(why);
+    }
+
+    private void doKeyguardLaterLocked() {
+        // if the screen turned off because of timeout or the user hit the power button
+        // and we don't need to lock immediately, set an alarm
+        // to enable it a little bit later (i.e, give the user a chance
+        // to turn the screen back on within a certain window without
+        // having to unlock the screen)
+        final ContentResolver cr = mContext.getContentResolver();
+
+        // From DisplaySettings
+        long displayTimeout = Settings.System.getInt(cr, SCREEN_OFF_TIMEOUT,
+                KEYGUARD_DISPLAY_TIMEOUT_DELAY_DEFAULT);
+
+        // From SecuritySettings
+        final long lockAfterTimeout = Settings.Secure.getInt(cr,
+                Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT,
+                KEYGUARD_LOCK_AFTER_DELAY_DEFAULT);
+
+        // From DevicePolicyAdmin
+        final long policyTimeout = mLockPatternUtils.getDevicePolicyManager()
+                .getMaximumTimeToLock(null, mLockPatternUtils.getCurrentUser());
+
+        long timeout;
+        if (policyTimeout > 0) {
+            // policy in effect. Make sure we don't go beyond policy limit.
+            displayTimeout = Math.max(displayTimeout, 0); // ignore negative values
+            timeout = Math.min(policyTimeout - displayTimeout, lockAfterTimeout);
+        } else {
+            timeout = lockAfterTimeout;
+        }
+
+        if (timeout <= 0) {
+            // Lock now
+            mSuppressNextLockSound = true;
+            doKeyguardLocked(null);
+        } else {
+            // Lock in the future
+            long when = SystemClock.elapsedRealtime() + timeout;
+            Intent intent = new Intent(DELAYED_KEYGUARD_ACTION);
+            intent.putExtra("seq", mDelayedShowingSequence);
+            PendingIntent sender = PendingIntent.getBroadcast(mContext,
+                    0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
+            mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, sender);
+            if (DEBUG) Log.d(TAG, "setting alarm to turn off keyguard, seq = "
+                             + mDelayedShowingSequence);
+        }
+    }
+
+    private void cancelDoKeyguardLaterLocked() {
+        mDelayedShowingSequence++;
+    }
+
+    /**
+     * Let's us know the screen was turned on.
+     */
+    public void onScreenTurnedOn(IKeyguardShowCallback callback) {
+        synchronized (this) {
+            mScreenOn = true;
+            cancelDoKeyguardLaterLocked();
+            if (DEBUG) Log.d(TAG, "onScreenTurnedOn, seq = " + mDelayedShowingSequence);
+            if (callback != null) {
+                notifyScreenOnLocked(callback);
+            }
+        }
+        KeyguardUpdateMonitor.getInstance(mContext).dispatchScreenTurnedOn();
+        maybeSendUserPresentBroadcast();
+    }
+
+    private void maybeSendUserPresentBroadcast() {
+        if (mSystemReady && mLockPatternUtils.isLockScreenDisabled()
+                && !mUserManager.isUserSwitcherEnabled()) {
+            // Lock screen is disabled because the user has set the preference to "None".
+            // In this case, send out ACTION_USER_PRESENT here instead of in
+            // handleKeyguardDone()
+            sendUserPresentBroadcast();
+        }
+    }
+
+    /**
+     * A dream started.  We should lock after the usual screen-off lock timeout but only
+     * if there is a secure lock pattern.
+     */
+    public void onDreamingStarted() {
+        synchronized (this) {
+            if (mScreenOn && mLockPatternUtils.isSecure()) {
+                doKeyguardLaterLocked();
+            }
+        }
+    }
+
+    /**
+     * A dream stopped.
+     */
+    public void onDreamingStopped() {
+        synchronized (this) {
+            if (mScreenOn) {
+                cancelDoKeyguardLaterLocked();
+            }
+        }
+    }
+
+    /**
+     * Same semantics as {@link android.view.WindowManagerPolicy#enableKeyguard}; provide
+     * a way for external stuff to override normal keyguard behavior.  For instance
+     * the phone app disables the keyguard when it receives incoming calls.
+     */
+    public void setKeyguardEnabled(boolean enabled) {
+        synchronized (this) {
+            if (DEBUG) Log.d(TAG, "setKeyguardEnabled(" + enabled + ")");
+
+            mExternallyEnabled = enabled;
+
+            if (!enabled && mShowing) {
+                if (mExitSecureCallback != null) {
+                    if (DEBUG) Log.d(TAG, "in process of verifyUnlock request, ignoring");
+                    // we're in the process of handling a request to verify the user
+                    // can get past the keyguard. ignore extraneous requests to disable / reenable
+                    return;
+                }
+
+                // hiding keyguard that is showing, remember to reshow later
+                if (DEBUG) Log.d(TAG, "remembering to reshow, hiding keyguard, "
+                        + "disabling status bar expansion");
+                mNeedToReshowWhenReenabled = true;
+                hideLocked();
+            } else if (enabled && mNeedToReshowWhenReenabled) {
+                // reenabled after previously hidden, reshow
+                if (DEBUG) Log.d(TAG, "previously hidden, reshowing, reenabling "
+                        + "status bar expansion");
+                mNeedToReshowWhenReenabled = false;
+
+                if (mExitSecureCallback != null) {
+                    if (DEBUG) Log.d(TAG, "onKeyguardExitResult(false), resetting");
+                    try {
+                        mExitSecureCallback.onKeyguardExitResult(false);
+                    } catch (RemoteException e) {
+                        Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
+                    }
+                    mExitSecureCallback = null;
+                    resetStateLocked();
+                } else {
+                    showLocked(null);
+
+                    // block until we know the keygaurd is done drawing (and post a message
+                    // to unblock us after a timeout so we don't risk blocking too long
+                    // and causing an ANR).
+                    mWaitingUntilKeyguardVisible = true;
+                    mHandler.sendEmptyMessageDelayed(KEYGUARD_DONE_DRAWING, KEYGUARD_DONE_DRAWING_TIMEOUT_MS);
+                    if (DEBUG) Log.d(TAG, "waiting until mWaitingUntilKeyguardVisible is false");
+                    while (mWaitingUntilKeyguardVisible) {
+                        try {
+                            wait();
+                        } catch (InterruptedException e) {
+                            Thread.currentThread().interrupt();
+                        }
+                    }
+                    if (DEBUG) Log.d(TAG, "done waiting for mWaitingUntilKeyguardVisible");
+                }
+            }
+        }
+    }
+
+    /**
+     * @see android.app.KeyguardManager#exitKeyguardSecurely
+     */
+    public void verifyUnlock(IKeyguardExitCallback callback) {
+        synchronized (this) {
+            if (DEBUG) Log.d(TAG, "verifyUnlock");
+            if (!mUpdateMonitor.isDeviceProvisioned()) {
+                // don't allow this api when the device isn't provisioned
+                if (DEBUG) Log.d(TAG, "ignoring because device isn't provisioned");
+                try {
+                    callback.onKeyguardExitResult(false);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
+                }
+            } else if (mExternallyEnabled) {
+                // this only applies when the user has externally disabled the
+                // keyguard.  this is unexpected and means the user is not
+                // using the api properly.
+                Log.w(TAG, "verifyUnlock called when not externally disabled");
+                try {
+                    callback.onKeyguardExitResult(false);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
+                }
+            } else if (mExitSecureCallback != null) {
+                // already in progress with someone else
+                try {
+                    callback.onKeyguardExitResult(false);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e);
+                }
+            } else {
+                mExitSecureCallback = callback;
+                verifyUnlockLocked();
+            }
+        }
+    }
+
+    /**
+     * Is the keyguard currently showing?
+     */
+    public boolean isShowing() {
+        return mShowing;
+    }
+
+    public boolean isOccluded() {
+        return mOccluded;
+    }
+
+    /**
+     * Is the keyguard currently showing and not being force hidden?
+     */
+    public boolean isShowingAndNotOccluded() {
+        return mShowing && !mOccluded;
+    }
+
+    /**
+     * Notify us when the keyguard is occluded by another window
+     */
+    public void setOccluded(boolean isOccluded) {
+        if (DEBUG) Log.d(TAG, "setOccluded " + isOccluded);
+        mUpdateMonitor.sendKeyguardVisibilityChanged(!isOccluded);
+        mHandler.removeMessages(SET_OCCLUDED);
+        Message msg = mHandler.obtainMessage(SET_OCCLUDED, (isOccluded ? 1 : 0), 0);
+        mHandler.sendMessage(msg);
+    }
+
+    /**
+     * Handles SET_OCCLUDED message sent by setOccluded()
+     */
+    private void handleSetOccluded(boolean isOccluded) {
+        synchronized (KeyguardViewMediator.this) {
+            if (mOccluded != isOccluded) {
+                mOccluded = isOccluded;
+                mStatusBarKeyguardViewManager.setOccluded(isOccluded);
+                updateActivityLockScreenState();
+                adjustStatusBarLocked();
+            }
+            if (ENABLE_ANALYTICS && mKeyguardAnalytics != null) {
+                mKeyguardAnalytics.getCallback().onSetOccluded(isOccluded);
+            }
+        }
+    }
+
+    /**
+     * Used by PhoneWindowManager to enable the keyguard due to a user activity timeout.
+     * This must be safe to call from any thread and with any window manager locks held.
+     */
+    public void doKeyguardTimeout(Bundle options) {
+        mHandler.removeMessages(KEYGUARD_TIMEOUT);
+        Message msg = mHandler.obtainMessage(KEYGUARD_TIMEOUT, options);
+        mHandler.sendMessage(msg);
+    }
+
+    /**
+     * Given the state of the keyguard, is the input restricted?
+     * Input is restricted when the keyguard is showing, or when the keyguard
+     * was suppressed by an app that disabled the keyguard or we haven't been provisioned yet.
+     */
+    public boolean isInputRestricted() {
+        return mShowing || mNeedToReshowWhenReenabled || !mUpdateMonitor.isDeviceProvisioned();
+    }
+
+    /**
+     * Enable the keyguard if the settings are appropriate.
+     */
+    private void doKeyguardLocked(Bundle options) {
+        // if another app is disabling us, don't show
+        if (!mExternallyEnabled) {
+            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because externally disabled");
+
+            // note: we *should* set mNeedToReshowWhenReenabled=true here, but that makes
+            // for an occasional ugly flicker in this situation:
+            // 1) receive a call with the screen on (no keyguard) or make a call
+            // 2) screen times out
+            // 3) user hits key to turn screen back on
+            // instead, we reenable the keyguard when we know the screen is off and the call
+            // ends (see the broadcast receiver below)
+            // TODO: clean this up when we have better support at the window manager level
+            // for apps that wish to be on top of the keyguard
+            return;
+        }
+
+        // note whether notification access should be allowed
+        mAllowNotificationsWhenSecure = ENABLE_SECURE_STATUS_BAR_EXPAND
+                && 0 != Settings.Global.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Global.LOCK_SCREEN_SHOW_NOTIFICATIONS,
+                        ALLOW_NOTIFICATIONS_DEFAULT ? 1 : 0);
+
+        // if the keyguard is already showing, don't bother
+        if (mStatusBarKeyguardViewManager.isShowing()) {
+            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because it is already showing");
+            return;
+        }
+
+        // if the setup wizard hasn't run yet, don't show
+        final boolean requireSim = !SystemProperties.getBoolean("keyguard.no_require_sim",
+                false);
+        final boolean provisioned = mUpdateMonitor.isDeviceProvisioned();
+        final IccCardConstants.State state = mUpdateMonitor.getSimState();
+        final boolean lockedOrMissing = state.isPinLocked()
+                || ((state == IccCardConstants.State.ABSENT
+                || state == IccCardConstants.State.PERM_DISABLED)
+                && requireSim);
+
+        if (!lockedOrMissing && !provisioned) {
+            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because device isn't provisioned"
+                    + " and the sim is not locked or missing");
+            return;
+        }
+
+        if (!mUserManager.isUserSwitcherEnabled()
+                && mLockPatternUtils.isLockScreenDisabled() && !lockedOrMissing) {
+            if (DEBUG) Log.d(TAG, "doKeyguard: not showing because lockscreen is off");
+            return;
+        }
+
+        if (mLockPatternUtils.checkVoldPassword()) {
+            if (DEBUG) Log.d(TAG, "Not showing lock screen since just decrypted");
+            // Without this, settings is not enabled until the lock screen first appears
+            hideLocked();
+            return;
+        }
+
+        if (DEBUG) Log.d(TAG, "doKeyguard: showing the lock screen");
+        showLocked(options);
+    }
+
+    /**
+     * Dismiss the keyguard through the security layers.
+     */
+    public void handleDismiss() {
+        if (mShowing && !mOccluded) {
+            mStatusBarKeyguardViewManager.dismiss();
+        }
+    }
+
+    public void dismiss() {
+        mHandler.sendEmptyMessage(DISMISS);
+    }
+
+    /**
+     * Send message to keyguard telling it to reset its state.
+     * @see #handleReset
+     */
+    private void resetStateLocked() {
+        if (DEBUG) Log.e(TAG, "resetStateLocked");
+        Message msg = mHandler.obtainMessage(RESET);
+        mHandler.sendMessage(msg);
+    }
+
+    /**
+     * Send message to keyguard telling it to verify unlock
+     * @see #handleVerifyUnlock()
+     */
+    private void verifyUnlockLocked() {
+        if (DEBUG) Log.d(TAG, "verifyUnlockLocked");
+        mHandler.sendEmptyMessage(VERIFY_UNLOCK);
+    }
+
+
+    /**
+     * Send a message to keyguard telling it the screen just turned on.
+     * @see #onScreenTurnedOff(int)
+     * @see #handleNotifyScreenOff
+     */
+    private void notifyScreenOffLocked() {
+        if (DEBUG) Log.d(TAG, "notifyScreenOffLocked");
+        mHandler.sendEmptyMessage(NOTIFY_SCREEN_OFF);
+    }
+
+    /**
+     * Send a message to keyguard telling it the screen just turned on.
+     * @see #onScreenTurnedOn
+     * @see #handleNotifyScreenOn
+     */
+    private void notifyScreenOnLocked(IKeyguardShowCallback result) {
+        if (DEBUG) Log.d(TAG, "notifyScreenOnLocked");
+        Message msg = mHandler.obtainMessage(NOTIFY_SCREEN_ON, result);
+        mHandler.sendMessage(msg);
+    }
+
+    /**
+     * Send message to keyguard telling it to show itself
+     * @see #handleShow
+     */
+    private void showLocked(Bundle options) {
+        if (DEBUG) Log.d(TAG, "showLocked");
+        // ensure we stay awake until we are finished displaying the keyguard
+        mShowKeyguardWakeLock.acquire();
+        Message msg = mHandler.obtainMessage(SHOW, options);
+        mHandler.sendMessage(msg);
+    }
+
+    /**
+     * Send message to keyguard telling it to hide itself
+     * @see #handleHide()
+     */
+    private void hideLocked() {
+        if (DEBUG) Log.d(TAG, "hideLocked");
+        Message msg = mHandler.obtainMessage(HIDE);
+        mHandler.sendMessage(msg);
+    }
+
+    public boolean isSecure() {
+        return mLockPatternUtils.isSecure()
+            || KeyguardUpdateMonitor.getInstance(mContext).isSimPinSecure();
+    }
+
+    /**
+     * Update the newUserId. Call while holding WindowManagerService lock.
+     * NOTE: Should only be called by KeyguardViewMediator in response to the user id changing.
+     *
+     * @param newUserId The id of the incoming user.
+     */
+    public void setCurrentUser(int newUserId) {
+        mLockPatternUtils.setCurrentUser(newUserId);
+    }
+
+    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (DELAYED_KEYGUARD_ACTION.equals(intent.getAction())) {
+                final int sequence = intent.getIntExtra("seq", 0);
+                if (DEBUG) Log.d(TAG, "received DELAYED_KEYGUARD_ACTION with seq = "
+                        + sequence + ", mDelayedShowingSequence = " + mDelayedShowingSequence);
+                synchronized (KeyguardViewMediator.this) {
+                    if (mDelayedShowingSequence == sequence) {
+                        // Don't play lockscreen SFX if the screen went off due to timeout.
+                        mSuppressNextLockSound = true;
+                        doKeyguardLocked(null);
+                    }
+                }
+            }
+        }
+    };
+
+    public void keyguardDone(boolean authenticated, boolean wakeup) {
+        if (DEBUG) Log.d(TAG, "keyguardDone(" + authenticated + ")");
+        EventLog.writeEvent(70000, 2);
+        synchronized (this) {
+            mKeyguardDonePending = false;
+        }
+        Message msg = mHandler.obtainMessage(KEYGUARD_DONE, authenticated ? 1 : 0, wakeup ? 1 : 0);
+        mHandler.sendMessage(msg);
+    }
+
+    /**
+     * This handler will be associated with the policy thread, which will also
+     * be the UI thread of the keyguard.  Since the apis of the policy, and therefore
+     * this class, can be called by other threads, any action that directly
+     * interacts with the keyguard ui should be posted to this handler, rather
+     * than called directly.
+     */
+    private Handler mHandler = new Handler(Looper.myLooper(), null, true /*async*/) {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case SHOW:
+                    handleShow((Bundle) msg.obj);
+                    break;
+                case HIDE:
+                    handleHide();
+                    break;
+                case RESET:
+                    handleReset();
+                    break;
+                case VERIFY_UNLOCK:
+                    handleVerifyUnlock();
+                    break;
+                case NOTIFY_SCREEN_OFF:
+                    handleNotifyScreenOff();
+                    break;
+                case NOTIFY_SCREEN_ON:
+                    handleNotifyScreenOn((IKeyguardShowCallback) msg.obj);
+                    break;
+                case KEYGUARD_DONE:
+                    handleKeyguardDone(msg.arg1 != 0, msg.arg2 != 0);
+                    break;
+                case KEYGUARD_DONE_DRAWING:
+                    handleKeyguardDoneDrawing();
+                    break;
+                case KEYGUARD_DONE_AUTHENTICATING:
+                    keyguardDone(true, true);
+                    break;
+                case SET_OCCLUDED:
+                    handleSetOccluded(msg.arg1 != 0);
+                    break;
+                case KEYGUARD_TIMEOUT:
+                    synchronized (KeyguardViewMediator.this) {
+                        doKeyguardLocked((Bundle) msg.obj);
+                    }
+                    break;
+                case DISMISS:
+                    handleDismiss();
+                    break;
+            }
+        }
+    };
+
+    /**
+     * @see #keyguardDone
+     * @see #KEYGUARD_DONE
+     */
+    private void handleKeyguardDone(boolean authenticated, boolean wakeup) {
+        if (DEBUG) Log.d(TAG, "handleKeyguardDone");
+
+        if (authenticated) {
+            mUpdateMonitor.clearFailedUnlockAttempts();
+        }
+
+        if (mExitSecureCallback != null) {
+            try {
+                mExitSecureCallback.onKeyguardExitResult(authenticated);
+            } catch (RemoteException e) {
+                Slog.w(TAG, "Failed to call onKeyguardExitResult(" + authenticated + ")", e);
+            }
+
+            mExitSecureCallback = null;
+
+            if (authenticated) {
+                // after succesfully exiting securely, no need to reshow
+                // the keyguard when they've released the lock
+                mExternallyEnabled = true;
+                mNeedToReshowWhenReenabled = false;
+            }
+        }
+
+        handleHide();
+        sendUserPresentBroadcast();
+    }
+
+    private void sendUserPresentBroadcast() {
+        final UserHandle currentUser = new UserHandle(mLockPatternUtils.getCurrentUser());
+        mContext.sendBroadcastAsUser(USER_PRESENT_INTENT, currentUser);
+    }
+
+    /**
+     * @see #keyguardDone
+     * @see #KEYGUARD_DONE_DRAWING
+     */
+    private void handleKeyguardDoneDrawing() {
+        synchronized(this) {
+            if (DEBUG) Log.d(TAG, "handleKeyguardDoneDrawing");
+            if (mWaitingUntilKeyguardVisible) {
+                if (DEBUG) Log.d(TAG, "handleKeyguardDoneDrawing: notifying mWaitingUntilKeyguardVisible");
+                mWaitingUntilKeyguardVisible = false;
+                notifyAll();
+
+                // there will usually be two of these sent, one as a timeout, and one
+                // as a result of the callback, so remove any remaining messages from
+                // the queue
+                mHandler.removeMessages(KEYGUARD_DONE_DRAWING);
+            }
+        }
+    }
+
+    private void playSounds(boolean locked) {
+        // User feedback for keyguard.
+
+        if (mSuppressNextLockSound) {
+            mSuppressNextLockSound = false;
+            return;
+        }
+
+        final ContentResolver cr = mContext.getContentResolver();
+        if (Settings.System.getInt(cr, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) == 1) {
+            final int whichSound = locked
+                ? mLockSoundId
+                : mUnlockSoundId;
+            mLockSounds.stop(mLockSoundStreamId);
+            // Init mAudioManager
+            if (mAudioManager == null) {
+                mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+                if (mAudioManager == null) return;
+                mMasterStreamType = mAudioManager.getMasterStreamType();
+            }
+            // If the stream is muted, don't play the sound
+            if (mAudioManager.isStreamMute(mMasterStreamType)) return;
+
+            mLockSoundStreamId = mLockSounds.play(whichSound,
+                    mLockSoundVolume, mLockSoundVolume, 1/*priortiy*/, 0/*loop*/, 1.0f/*rate*/);
+        }
+    }
+
+    private void updateActivityLockScreenState() {
+        try {
+            ActivityManagerNative.getDefault().setLockScreenShown(mShowing && !mOccluded);
+        } catch (RemoteException e) {
+        }
+    }
+
+    /**
+     * Handle message sent by {@link #showLocked}.
+     * @see #SHOW
+     */
+    private void handleShow(Bundle options) {
+        synchronized (KeyguardViewMediator.this) {
+            if (!mSystemReady) {
+                if (DEBUG) Log.d(TAG, "ignoring handleShow because system is not ready.");
+                return;
+            } else {
+                if (DEBUG) Log.d(TAG, "handleShow");
+            }
+
+            mStatusBarKeyguardViewManager.show(options);
+            mShowing = true;
+            mKeyguardDonePending = false;
+            updateActivityLockScreenState();
+            adjustStatusBarLocked();
+            userActivity();
+
+            // Do this at the end to not slow down display of the keyguard.
+            playSounds(true);
+
+            mShowKeyguardWakeLock.release();
+        }
+        mKeyguardDisplayManager.show();
+    }
+
+    /**
+     * Handle message sent by {@link #hideLocked()}
+     * @see #HIDE
+     */
+    private void handleHide() {
+        synchronized (KeyguardViewMediator.this) {
+            if (DEBUG) Log.d(TAG, "handleHide");
+
+            // only play "unlock" noises if not on a call (since the incall UI
+            // disables the keyguard)
+            if (TelephonyManager.EXTRA_STATE_IDLE.equals(mPhoneState)) {
+                playSounds(false);
+            }
+
+            mStatusBarKeyguardViewManager.hide();
+            mShowing = false;
+            mKeyguardDonePending = false;
+            updateActivityLockScreenState();
+            adjustStatusBarLocked();
+        }
+    }
+
+    private void adjustStatusBarLocked() {
+        if (mStatusBarManager == null) {
+            mStatusBarManager = (StatusBarManager)
+                    mContext.getSystemService(Context.STATUS_BAR_SERVICE);
+        }
+        if (mStatusBarManager == null) {
+            Log.w(TAG, "Could not get status bar manager");
+        } else {
+            // Disable aspects of the system/status/navigation bars that must not be re-enabled by
+            // windows that appear on top, ever
+            int flags = StatusBarManager.DISABLE_NONE;
+            if (mShowing) {
+                // Permanently disable components not available when keyguard is enabled
+                // (like recents). Temporary enable/disable (e.g. the "back" button) are
+                // done in KeyguardHostView.
+                flags |= StatusBarManager.DISABLE_RECENT;
+                if ((isSecure() && !mAllowNotificationsWhenSecure)
+                        || !ENABLE_INSECURE_STATUS_BAR_EXPAND) {
+                    // showing secure lockscreen; disable expanding.
+                    flags |= StatusBarManager.DISABLE_EXPAND;
+                }
+                if (isSecure()) {
+                    // showing secure lockscreen; disable ticker and switch private notifications
+                    // to show their public versions, if available.
+                    flags |= StatusBarManager.DISABLE_PRIVATE_NOTIFICATIONS;
+                }
+                if (!isAssistantAvailable()) {
+                    flags |= StatusBarManager.DISABLE_SEARCH;
+                }
+            }
+
+            if (DEBUG) {
+                Log.d(TAG, "adjustStatusBarLocked: mShowing=" + mShowing + " mOccluded=" + mOccluded
+                        + " isSecure=" + isSecure() + " --> flags=0x" + Integer.toHexString(flags));
+            }
+
+            if (!(mContext instanceof Activity)) {
+                mStatusBarManager.disable(flags);
+            }
+        }
+    }
+
+    /**
+     * Handle message sent by {@link #resetStateLocked}
+     * @see #RESET
+     */
+    private void handleReset() {
+        synchronized (KeyguardViewMediator.this) {
+            if (DEBUG) Log.d(TAG, "handleReset");
+            mStatusBarKeyguardViewManager.reset();
+        }
+    }
+
+    /**
+     * Handle message sent by {@link #verifyUnlock}
+     * @see #VERIFY_UNLOCK
+     */
+    private void handleVerifyUnlock() {
+        synchronized (KeyguardViewMediator.this) {
+            if (DEBUG) Log.d(TAG, "handleVerifyUnlock");
+            mStatusBarKeyguardViewManager.verifyUnlock();
+            mShowing = true;
+            updateActivityLockScreenState();
+        }
+    }
+
+    /**
+     * Handle message sent by {@link #notifyScreenOffLocked()}
+     * @see #NOTIFY_SCREEN_OFF
+     */
+    private void handleNotifyScreenOff() {
+        synchronized (KeyguardViewMediator.this) {
+            if (DEBUG) Log.d(TAG, "handleNotifyScreenOff");
+            mStatusBarKeyguardViewManager.onScreenTurnedOff();
+        }
+    }
+
+    /**
+     * Handle message sent by {@link #notifyScreenOnLocked}
+     * @see #NOTIFY_SCREEN_ON
+     */
+    private void handleNotifyScreenOn(IKeyguardShowCallback callback) {
+        synchronized (KeyguardViewMediator.this) {
+            if (DEBUG) Log.d(TAG, "handleNotifyScreenOn");
+            mStatusBarKeyguardViewManager.onScreenTurnedOn(callback);
+        }
+    }
+
+    public boolean isDismissable() {
+        return mKeyguardDonePending || !isSecure();
+    }
+
+    private boolean isAssistantAvailable() {
+        return mSearchManager != null
+                && mSearchManager.getAssistIntent(mContext, false, UserHandle.USER_CURRENT) != null;
+    }
+
+    public void onBootCompleted() {
+        mUpdateMonitor.dispatchBootCompleted();
+    }
+
+    public StatusBarKeyguardViewManager registerStatusBar(PhoneStatusBar phoneStatusBar,
+            ViewGroup container, StatusBarWindowManager statusBarWindowManager) {
+        mStatusBarKeyguardViewManager.registerStatusBar(phoneStatusBar, container,
+                statusBarWindowManager);
+        return mStatusBarKeyguardViewManager;
+    }
+
+    public ViewMediatorCallback getViewMediatorCallback() {
+        return mViewMediatorCallback;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java b/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java
index 9d2d6ee..aa4e69a 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java
@@ -17,10 +17,12 @@
 package com.android.systemui.recent;
 
 import android.app.ActivityManager;
+import android.app.AppGlobals;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
@@ -30,7 +32,9 @@
 import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.Process;
+import android.os.RemoteException;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
@@ -156,15 +160,20 @@
 
     // Create an TaskDescription, returning null if the title or icon is null
     TaskDescription createTaskDescription(int taskId, int persistentTaskId, Intent baseIntent,
-            ComponentName origActivity, CharSequence description) {
+            ComponentName origActivity, CharSequence description, int userId) {
         Intent intent = new Intent(baseIntent);
         if (origActivity != null) {
             intent.setComponent(origActivity);
         }
         final PackageManager pm = mContext.getPackageManager();
+        final IPackageManager ipm = AppGlobals.getPackageManager();
         intent.setFlags((intent.getFlags()&~Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED)
                 | Intent.FLAG_ACTIVITY_NEW_TASK);
-        final ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
+        ResolveInfo resolveInfo = null;
+        try {
+            resolveInfo = ipm.resolveIntent(intent, null, 0, userId);
+        } catch (RemoteException re) {
+        }
         if (resolveInfo != null) {
             final ActivityInfo info = resolveInfo.activityInfo;
             final String title = info.loadLabel(pm).toString();
@@ -175,7 +184,7 @@
 
                 TaskDescription item = new TaskDescription(taskId,
                         persistentTaskId, resolveInfo, baseIntent, info.packageName,
-                        description);
+                        description, userId);
                 item.setLabel(title);
 
                 return item;
@@ -192,7 +201,11 @@
         final PackageManager pm = mContext.getPackageManager();
         Bitmap thumbnail = am.getTaskTopThumbnail(td.persistentTaskId);
         Drawable icon = getFullResIcon(td.resolveInfo, pm);
-
+        if (td.userId != UserHandle.myUserId()) {
+            // Need to badge the icon
+            final UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+            icon = um.getBadgedDrawableForUser(icon, new UserHandle(td.userId));
+        }
         if (DEBUG) Log.v(TAG, "Loaded bitmap for task "
                 + td + ": " + thumbnail);
         synchronized (td) {
@@ -368,7 +381,7 @@
         final ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
 
         final List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasksForUser(1,
-                ActivityManager.RECENT_IGNORE_UNAVAILABLE | ActivityManager.RECENT_INCLUDE_RELATED,
+                ActivityManager.RECENT_IGNORE_UNAVAILABLE | ActivityManager.RECENT_INCLUDE_PROFILES,
                 UserHandle.CURRENT.getIdentifier());
         TaskDescription item = null;
         if (recentTasks.size() > 0) {
@@ -391,7 +404,8 @@
 
             item = createTaskDescription(recentInfo.id,
                     recentInfo.persistentId, recentInfo.baseIntent,
-                    recentInfo.origActivity, recentInfo.description);
+                    recentInfo.origActivity, recentInfo.description,
+                    recentInfo.userId);
             if (item != null) {
                 loadThumbnailAndIcon(item);
             }
@@ -441,7 +455,7 @@
 
                 final List<ActivityManager.RecentTaskInfo> recentTasks =
                         am.getRecentTasks(MAX_TASKS, ActivityManager.RECENT_IGNORE_UNAVAILABLE
-                        | ActivityManager.RECENT_INCLUDE_RELATED);
+                        | ActivityManager.RECENT_INCLUDE_PROFILES);
                 int numTasks = recentTasks.size();
                 ActivityInfo homeInfo = new Intent(Intent.ACTION_MAIN)
                         .addCategory(Intent.CATEGORY_HOME).resolveActivityInfo(pm, 0);
@@ -474,7 +488,8 @@
 
                     TaskDescription item = createTaskDescription(recentInfo.id,
                             recentInfo.persistentId, recentInfo.baseIntent,
-                            recentInfo.origActivity, recentInfo.description);
+                            recentInfo.origActivity, recentInfo.description,
+                            recentInfo.userId);
 
                     if (item != null) {
                         while (true) {
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java
index f75ea92..7ab40b0 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsActivity.java
@@ -165,7 +165,7 @@
                     am.getRecentTasks(2,
                             ActivityManager.RECENT_WITH_EXCLUDED |
                             ActivityManager.RECENT_IGNORE_UNAVAILABLE |
-                            ActivityManager.RECENT_INCLUDE_RELATED);
+                            ActivityManager.RECENT_INCLUDE_PROFILES);
             if (recentTasks.size() > 1 &&
                     mRecentsPanel.simulateClick(recentTasks.get(1).persistentId)) {
                 // recents panel will take care of calling show(false) through simulateClick
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index ef56044..98bdee0 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -689,7 +689,7 @@
             if (DEBUG) Log.v(TAG, "Starting activity " + intent);
             try {
                 context.startActivityAsUser(intent, opts,
-                        new UserHandle(UserHandle.USER_CURRENT));
+                        new UserHandle(ad.userId));
             } catch (SecurityException e) {
                 Log.e(TAG, "Recents does not have the permission to launch " + intent, e);
             } catch (ActivityNotFoundException e) {
diff --git a/packages/SystemUI/src/com/android/systemui/recent/TaskDescription.java b/packages/SystemUI/src/com/android/systemui/recent/TaskDescription.java
index 2e0ee36..5ad965f 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/TaskDescription.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/TaskDescription.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.recent;
 
+import android.os.UserHandle;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
@@ -27,6 +28,7 @@
     final Intent intent; // launch intent for application
     final String packageName; // used to override animations (see onClick())
     final CharSequence description;
+    final int userId;
 
     private Drawable mThumbnail; // generated by Activity.onCreateThumbnail()
     private Drawable mIcon; // application package icon
@@ -35,7 +37,7 @@
 
     public TaskDescription(int _taskId, int _persistentTaskId,
             ResolveInfo _resolveInfo, Intent _intent,
-            String _packageName, CharSequence _description) {
+            String _packageName, CharSequence _description, int _userId) {
         resolveInfo = _resolveInfo;
         intent = _intent;
         taskId = _taskId;
@@ -43,6 +45,7 @@
 
         description = _description;
         packageName = _packageName;
+        userId = _userId;
     }
 
     public TaskDescription() {
@@ -53,6 +56,7 @@
 
         description = null;
         packageName = null;
+        userId = UserHandle.USER_NULL;
     }
 
     public void setLoaded(boolean loaded) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
index 1a616a0..4fb90cb 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
@@ -23,36 +23,28 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
-import android.content.pm.ActivityInfo;
-import android.content.pm.PackageManager;
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Matrix;
-import android.graphics.Paint;
 import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
 import android.os.Messenger;
 import android.os.RemoteException;
-import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.util.DisplayMetrics;
-import android.util.Log;
 import android.view.Display;
 import android.view.Surface;
 import android.view.SurfaceControl;
 import android.view.View;
 import android.view.WindowManager;
 import com.android.systemui.R;
-import com.android.systemui.RecentsComponent;
-import com.android.systemui.SystemUI;
 
+import java.util.Iterator;
 import java.util.List;
 
 /** A proxy implementation for the recents component */
@@ -66,8 +58,11 @@
                 Resources res = mContext.getResources();
                 float statusBarHeight = res.getDimensionPixelSize(
                         com.android.internal.R.dimen.status_bar_height);
-                mFirstTaskRect = (Rect) msg.getData().getParcelable("taskRect");
-                mFirstTaskRect.offset(0, (int) statusBarHeight);
+                Bundle replyData = msg.getData().getParcelable(KEY_CONFIGURATION_DATA);
+                mSingleCountFirstTaskRect = replyData.getParcelable(KEY_SINGLE_TASK_STACK_RECT);
+                mSingleCountFirstTaskRect.offset(0, (int) statusBarHeight);
+                mMultipleCountFirstTaskRect = replyData.getParcelable(KEY_MULTIPLE_TASK_STACK_RECT);
+                mMultipleCountFirstTaskRect.offset(0, (int) statusBarHeight);
             }
         }
     }
@@ -98,12 +93,20 @@
         }
     }
 
-    final static int MSG_UPDATE_FOR_CONFIGURATION = 0;
-    final static int MSG_UPDATE_TASK_THUMBNAIL = 1;
-    final static int MSG_PRELOAD_TASKS = 2;
-    final static int MSG_CANCEL_PRELOAD_TASKS = 3;
-    final static int MSG_CLOSE_RECENTS = 4;
-    final static int MSG_TOGGLE_RECENTS = 5;
+    final public static int MSG_UPDATE_FOR_CONFIGURATION = 0;
+    final public static int MSG_UPDATE_TASK_THUMBNAIL = 1;
+    final public static int MSG_PRELOAD_TASKS = 2;
+    final public static int MSG_CANCEL_PRELOAD_TASKS = 3;
+    final public static int MSG_CLOSE_RECENTS = 4;
+    final public static int MSG_TOGGLE_RECENTS = 5;
+
+    final public static String EXTRA_ANIMATING_WITH_THUMBNAIL = "recents.animatingWithThumbnail";
+    final public static String KEY_CONFIGURATION_DATA = "recents.data.updateForConfiguration";
+    final public static String KEY_WINDOW_RECT = "recents.windowRect";
+    final public static String KEY_SYSTEM_INSETS = "recents.systemInsets";
+    final public static String KEY_SINGLE_TASK_STACK_RECT = "recents.singleCountTaskRect";
+    final public static String KEY_MULTIPLE_TASK_STACK_RECT = "recents.multipleCountTaskRect";
+
 
     final static int sMinToggleDelay = 425;
 
@@ -113,6 +116,7 @@
     final static String sRecentsService = "com.android.systemui.recents.RecentsService";
 
     Context mContext;
+    SystemServicesProxy mSystemServicesProxy;
 
     // Recents service binding
     Messenger mService = null;
@@ -122,11 +126,13 @@
     RecentsServiceConnection mConnection = new RecentsServiceConnection();
 
     View mStatusBarView;
-    Rect mFirstTaskRect = new Rect();
+    Rect mSingleCountFirstTaskRect = new Rect();
+    Rect mMultipleCountFirstTaskRect = new Rect();
     long mLastToggleTime;
 
     public AlternateRecentsComponent(Context context) {
         mContext = context;
+        mSystemServicesProxy = new SystemServicesProxy(context);
         mMessenger = new Messenger(new RecentsMessageHandler());
     }
 
@@ -197,8 +203,8 @@
             // Try and update the recents configuration
             try {
                 Bundle data = new Bundle();
-                data.putParcelable("windowRect", rect);
-                data.putParcelable("systemInsets", new Rect(0, statusBarHeight, 0, 0));
+                data.putParcelable(KEY_WINDOW_RECT, rect);
+                data.putParcelable(KEY_SYSTEM_INSETS, new Rect(0, statusBarHeight, 0, 0));
                 Message msg = Message.obtain(null, MSG_UPDATE_FOR_CONFIGURATION, 0, 0);
                 msg.setData(data);
                 msg.replyTo = mMessenger;
@@ -219,37 +225,38 @@
 
     /** Loads the first task thumbnail */
     Bitmap loadFirstTaskThumbnail() {
-        ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
-        List<ActivityManager.RecentTaskInfo> tasks = am.getRecentTasksForUser(1,
-                ActivityManager.RECENT_IGNORE_UNAVAILABLE | ActivityManager.RECENT_INCLUDE_RELATED,
+        SystemServicesProxy ssp = mSystemServicesProxy;
+        List<ActivityManager.RecentTaskInfo> tasks = ssp.getRecentTasks(1,
                 UserHandle.CURRENT.getIdentifier());
         for (ActivityManager.RecentTaskInfo t : tasks) {
             // Skip tasks in the home stack
-            if (am.isInHomeStack(t.persistentId)) {
+            if (ssp.isInHomeStack(t.persistentId)) {
                 return null;
             }
 
-            Bitmap thumbnail = am.getTaskTopThumbnail(t.persistentId);
-            return thumbnail;
+            return ssp.getTaskThumbnail(t.persistentId);
         }
         return null;
     }
 
-    /** Returns whether there is a first task */
-    boolean hasFirstTask() {
-        ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
-        List<ActivityManager.RecentTaskInfo> tasks = am.getRecentTasksForUser(1,
-                ActivityManager.RECENT_IGNORE_UNAVAILABLE | ActivityManager.RECENT_INCLUDE_RELATED,
+    /** Returns whether there is are multiple recents tasks */
+    boolean hasMultipleRecentsTask() {
+        // NOTE: Currently there's no method to get the number of non-home tasks, so we have to
+        // compute this ourselves
+        SystemServicesProxy ssp = mSystemServicesProxy;
+        List<ActivityManager.RecentTaskInfo> tasks = ssp.getRecentTasks(4,
                 UserHandle.CURRENT.getIdentifier());
-        for (ActivityManager.RecentTaskInfo t : tasks) {
+        Iterator<ActivityManager.RecentTaskInfo> iter = tasks.iterator();
+        while (iter.hasNext()) {
+            ActivityManager.RecentTaskInfo t = iter.next();
+
             // Skip tasks in the home stack
-            if (am.isInHomeStack(t.persistentId)) {
+            if (ssp.isInHomeStack(t.persistentId)) {
+                iter.remove();
                 continue;
             }
-
-            return true;
         }
-        return false;
+        return (tasks.size() > 1);
     }
 
     /** Converts from the device rotation to the degree */
@@ -294,10 +301,12 @@
 
         // If Recents is the front most activity, then we should just communicate with it directly
         // to launch the first task or dismiss itself
-        ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
-        List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
+        SystemServicesProxy ssp = mSystemServicesProxy;
+        List<ActivityManager.RunningTaskInfo> tasks = ssp.getRunningTasks(1);
+        boolean isTopTaskHome = false;
         if (!tasks.isEmpty()) {
-            ComponentName topActivity = tasks.get(0).topActivity;
+            ActivityManager.RunningTaskInfo topTask = tasks.get(0);
+            ComponentName topActivity = topTask.topActivity;
 
             // Check if the front most activity is recents
             if (topActivity.getPackageName().equals(sRecentsPackage) &&
@@ -320,16 +329,30 @@
                 mLastToggleTime = System.currentTimeMillis();
                 return;
             }
+
+            // Determine whether the top task is currently home
+            isTopTaskHome = ssp.isInHomeStack(topTask.id);
         }
 
         // Otherwise, Recents is not the front-most activity and we should animate into it
-        Rect taskRect = mFirstTaskRect;
-        if (taskRect != null && taskRect.width() > 0 && taskRect.height() > 0 && hasFirstTask()) {
+        boolean hasMultipleTasks = hasMultipleRecentsTask();
+        Rect taskRect = hasMultipleTasks ? mMultipleCountFirstTaskRect : mSingleCountFirstTaskRect;
+        if (!isTopTaskHome && taskRect != null && taskRect.width() > 0 && taskRect.height() > 0) {
             // Loading from thumbnail
             Bitmap thumbnail;
             Bitmap firstThumbnail = loadFirstTaskThumbnail();
-            if (firstThumbnail == null) {
-                // Load the thumbnail from the screenshot
+            if (firstThumbnail != null) {// Create the thumbnail
+                thumbnail = Bitmap.createBitmap(taskRect.width(), taskRect.height(),
+                        Bitmap.Config.ARGB_8888);
+                int size = Math.min(firstThumbnail.getWidth(), firstThumbnail.getHeight());
+                Canvas c = new Canvas(thumbnail);
+                c.drawBitmap(firstThumbnail, new Rect(0, 0, size, size),
+                        new Rect(0, 0, taskRect.width(), taskRect.height()), null);
+                c.setBitmap(null);
+                // Recycle the old thumbnail
+                firstThumbnail.recycle();
+            } else {
+                // Load the thumbnail from the screenshot if can't get one from the system
                 WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
                 Display display = wm.getDefaultDisplay();
                 Bitmap screenshot = takeScreenshot(display);
@@ -337,35 +360,24 @@
                 int size = Math.min(screenshot.getWidth(), screenshot.getHeight());
                 int statusBarHeight = res.getDimensionPixelSize(
                         com.android.internal.R.dimen.status_bar_height);
-                thumbnail = Bitmap.createBitmap(mFirstTaskRect.width(), mFirstTaskRect.height(),
+                thumbnail = Bitmap.createBitmap(taskRect.width(), taskRect.height(),
                         Bitmap.Config.ARGB_8888);
                 Canvas c = new Canvas(thumbnail);
                 c.drawBitmap(screenshot, new Rect(0, statusBarHeight, size, statusBarHeight + size),
-                        new Rect(0, 0, mFirstTaskRect.width(), mFirstTaskRect.height()), null);
+                        new Rect(0, 0, taskRect.width(), taskRect.height()), null);
                 c.setBitmap(null);
-                // Recycle the old screenshot
+                // Recycle the temporary screenshot
                 screenshot.recycle();
-            } else {
-                // Create the thumbnail
-                thumbnail = Bitmap.createBitmap(mFirstTaskRect.width(), mFirstTaskRect.height(),
-                        Bitmap.Config.ARGB_8888);
-                int size = Math.min(firstThumbnail.getWidth(), firstThumbnail.getHeight());
-                Canvas c = new Canvas(thumbnail);
-                c.drawBitmap(firstThumbnail, new Rect(0, 0, size, size),
-                        new Rect(0, 0, mFirstTaskRect.width(), mFirstTaskRect.height()), null);
-                c.setBitmap(null);
-                // Recycle the old thumbnail
-                firstThumbnail.recycle();
             }
 
             ActivityOptions opts = ActivityOptions.makeThumbnailScaleDownAnimation(mStatusBarView,
-                    thumbnail, mFirstTaskRect.left, mFirstTaskRect.top, null);
-            startAlternateRecentsActivity(opts);
+                    thumbnail, taskRect.left, taskRect.top, null);
+            startAlternateRecentsActivity(opts, true);
         } else {
             ActivityOptions opts = ActivityOptions.makeCustomAnimation(mContext,
                     R.anim.recents_from_launcher_enter,
                     R.anim.recents_from_launcher_exit);
-            startAlternateRecentsActivity(opts);
+            startAlternateRecentsActivity(opts, false);
         }
 
         Console.logTraceTime(Constants.DebugFlags.App.TimeRecentsStartup,
@@ -374,11 +386,12 @@
     }
 
     /** Starts the recents activity */
-    void startAlternateRecentsActivity(ActivityOptions opts) {
+    void startAlternateRecentsActivity(ActivityOptions opts, boolean animatingWithThumbnail) {
         Intent intent = new Intent(sToggleRecentsAction);
         intent.setClassName(sRecentsPackage, sRecentsActivity);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                 | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+        intent.putExtra(EXTRA_ANIMATING_WITH_THUMBNAIL, animatingWithThumbnail);
         if (opts != null) {
             mContext.startActivityAsUser(intent, opts.toBundle(), new UserHandle(
                     UserHandle.USER_CURRENT));
diff --git a/packages/SystemUI/src/com/android/systemui/recents/BakedBezierInterpolator.java b/packages/SystemUI/src/com/android/systemui/recents/BakedBezierInterpolator.java
new file mode 100644
index 0000000..95ab8e8
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recents/BakedBezierInterpolator.java
@@ -0,0 +1,64 @@
+package com.android.systemui.recents;
+
+import android.animation.TimeInterpolator;
+
+/**
+ * A pre-baked bezier-curved interpolator for quantum-paper transitions.
+ */
+public class BakedBezierInterpolator implements TimeInterpolator {
+    public static final BakedBezierInterpolator INSTANCE = new BakedBezierInterpolator();
+
+    /**
+     * Use the INSTANCE variable instead of instantiating.
+     */
+    private BakedBezierInterpolator() {
+        super();
+    }
+
+    /**
+     * Lookup table values.
+     * Generated using a Bezier curve from (0,0) to (1,1) with control points:
+     * P0 (0,0)
+     * P1 (0.4, 0)
+     * P2 (0.2, 1.0)
+     * P3 (1.0, 1.0)
+     *
+     * Values sampled with x at regular intervals between 0 and 1.
+     */
+    private static final float[] VALUES = new float[] {
+        0.0f, 0.0002f, 0.0009f, 0.0019f, 0.0036f, 0.0059f, 0.0086f, 0.0119f, 0.0157f, 0.0209f,
+        0.0257f, 0.0321f, 0.0392f, 0.0469f, 0.0566f, 0.0656f, 0.0768f, 0.0887f, 0.1033f, 0.1186f,
+        0.1349f, 0.1519f, 0.1696f, 0.1928f, 0.2121f, 0.237f, 0.2627f, 0.2892f, 0.3109f, 0.3386f,
+        0.3667f, 0.3952f, 0.4241f, 0.4474f, 0.4766f, 0.5f, 0.5234f, 0.5468f, 0.5701f, 0.5933f,
+        0.6134f, 0.6333f, 0.6531f, 0.6698f, 0.6891f, 0.7054f, 0.7214f, 0.7346f, 0.7502f, 0.763f,
+        0.7756f, 0.7879f, 0.8f, 0.8107f, 0.8212f, 0.8326f, 0.8415f, 0.8503f, 0.8588f, 0.8672f,
+        0.8754f, 0.8833f, 0.8911f, 0.8977f, 0.9041f, 0.9113f, 0.9165f, 0.9232f, 0.9281f, 0.9328f,
+        0.9382f, 0.9434f, 0.9476f, 0.9518f, 0.9557f, 0.9596f, 0.9632f, 0.9662f, 0.9695f, 0.9722f,
+        0.9753f, 0.9777f, 0.9805f, 0.9826f, 0.9847f, 0.9866f, 0.9884f, 0.9901f, 0.9917f, 0.9931f,
+        0.9944f, 0.9955f, 0.9964f, 0.9973f, 0.9981f, 0.9986f, 0.9992f, 0.9995f, 0.9998f, 1.0f, 1.0f
+    };
+
+    private static final float STEP_SIZE = 1.0f / (VALUES.length - 1);
+
+    @Override
+    public float getInterpolation(float input) {
+        if (input >= 1.0f) {
+            return 1.0f;
+        }
+
+        if (input <= 0f) {
+            return 0f;
+        }
+
+        int position = Math.min(
+                (int)(input * (VALUES.length - 1)),
+                VALUES.length - 2);
+
+        float quantized = position * STEP_SIZE;
+        float difference = input - quantized;
+        float weight = difference / STEP_SIZE;
+
+        return VALUES[position] + weight * (VALUES[position + 1] - VALUES[position]);
+    }
+
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
index b5950e9..64770a4 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
@@ -26,11 +26,18 @@
         public static final boolean Verbose = false;
 
         public static class App {
-            public static final boolean EnableTaskFiltering = false;
+            public static final boolean EnableTaskFiltering = true;
             public static final boolean EnableTaskStackClipping = false;
-            public static final boolean EnableToggleNewRecentsActivity = false;
-            // This disables the bitmap and icon caches to
+            public static final boolean EnableInfoPane = true;
+
+            // This disables the bitmap and icon caches
             public static final boolean DisableBackgroundCache = false;
+            // For debugging, this enables us to create mock recents tasks
+            public static final boolean EnableSystemServicesProxy = false;
+            // For debugging, this defines the number of mock recents packages to create
+            public static final int SystemServicesProxyMockPackageCount = 3;
+            // For debugging, this defines the number of mock recents tasks to create
+            public static final int SystemServicesProxyMockTaskCount = 75;
 
             // Timing certain paths
             public static final String TimeRecentsStartupKey = "startup";
@@ -66,24 +73,16 @@
         public static class Window {
             // The dark background dim is set behind the empty recents view
             public static final float DarkBackgroundDim = 0.5f;
-            // The background dim is set behind the card stack
-            public static final float BackgroundDim = 0.35f;
         }
 
         public static class RecentsTaskLoader {
             // XXX: This should be calculated on the first load
             public static final int PreloadFirstTasksCount = 5;
-            // For debugging, this allows us to multiply the number of cards for each task
-            public static final int TaskEntryMultiplier = 1;
         }
 
         public static class TaskStackView {
-            public static class Animation {
-                public static final int TaskRemovedReshuffleDuration = 200;
-                public static final int SnapScrollBackDuration = 650;
-            }
-
             public static final int TaskStackOverscrollRange = 150;
+            public static final int FilterStartDelay = 25;
 
             // The padding will be applied to the smallest dimension, and then applied to all sides
             public static final float StackPaddingPct = 0.15f;
@@ -98,17 +97,8 @@
         }
 
         public static class TaskView {
-            public static class Animation {
-                public static final int TaskDataUpdatedFadeDuration = 250;
-                public static final int TaskIconOnEnterDuration = 175;
-                public static final int TaskIconOnLeavingDuration = 75;
-            }
-
-            public static final boolean AnimateFrontTaskIconOnEnterRecents = true;
-            public static final boolean AnimateFrontTaskIconOnLeavingRecents = true;
-
-            public static final boolean UseRoundedCorners = true;
-            public static final float RoundedCornerRadiusDps = 3;
+            public static final boolean AnimateFrontTaskBarOnEnterRecents = true;
+            public static final boolean AnimateFrontTaskBarOnLeavingRecents = true;
         }
     }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index b65b864..71c45f2 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -43,25 +43,38 @@
     boolean mVisible;
     boolean mTaskLaunched;
 
+    // Broadcast receiver to handle messages from our RecentsService
     BroadcastReceiver mServiceBroadcastReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
             Console.log(Constants.DebugFlags.App.SystemUIHandshake,
                     "[RecentsActivity|serviceBroadcast]", action, Console.AnsiRed);
-            if (action.equals(RecentsService.ACTION_FINISH_RECENTS_ACTIVITY)) {
-                if (Constants.DebugFlags.App.EnableToggleNewRecentsActivity) {
-                    finish();
+            if (action.equals(RecentsService.ACTION_TOGGLE_RECENTS_ACTIVITY)) {
+                // Try and unfilter and filtered stacks
+                if (!mRecentsView.unfilterFilteredStacks()) {
+                    // If there are no filtered stacks, dismiss recents and launch the first task
+                    dismissRecentsIfVisible();
                 }
-            } else if (action.equals(RecentsService.ACTION_TOGGLE_RECENTS_ACTIVITY)) {
-                // Dismiss recents and launch the first task if possible
-                dismissRecentsIfVisible();
             }
         }
     };
 
+    // Broadcast receiver to handle messages from the system
+    BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            finish();
+        }
+    };
+
     /** Updates the set of recent tasks */
-    void updateRecentsTasks() {
+    void updateRecentsTasks(Intent launchIntent) {
+        // Update the configuration based on the launch intent
+        RecentsConfiguration config = RecentsConfiguration.getInstance();
+        config.launchedWithThumbnailAnimation = launchIntent.getBooleanExtra(
+                AlternateRecentsComponent.EXTRA_ANIMATING_WITH_THUMBNAIL, false);
+
         RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
         SpaceNode root = loader.reload(this, Constants.Values.RecentsTaskLoader.PreloadFirstTasksCount);
         ArrayList<TaskStack> stacks = root.getStacks();
@@ -80,6 +93,12 @@
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
         } else {
             mEmptyView.setVisibility(View.GONE);
+
+            // Un-dim the background
+            WindowManager.LayoutParams wlp = getWindow().getAttributes();
+            wlp.dimAmount = 0f;
+            getWindow().setAttributes(wlp);
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
         }
     }
 
@@ -108,12 +127,6 @@
         RecentsTaskLoader.initialize(this);
         RecentsConfiguration.reinitialize(this);
 
-        // Set the background dim
-        WindowManager.LayoutParams wlp = getWindow().getAttributes();
-        wlp.dimAmount = Constants.Values.Window.BackgroundDim;
-        getWindow().setAttributes(wlp);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
-
         // Create the view hierarchy
         mRecentsView = new RecentsView(this);
         mRecentsView.setCallbacks(this);
@@ -131,7 +144,7 @@
         setContentView(mContainerView);
 
         // Update the recent tasks
-        updateRecentsTasks();
+        updateRecentsTasks(getIntent());
     }
 
     @Override
@@ -151,7 +164,7 @@
         RecentsConfiguration.reinitialize(this);
 
         // Update the recent tasks
-        updateRecentsTasks();
+        updateRecentsTasks(intent);
     }
 
     @Override
@@ -167,12 +180,36 @@
         Console.log(Constants.DebugFlags.App.SystemUIHandshake, "[RecentsActivity|onResume]", "",
                 Console.AnsiRed);
         super.onResume();
+    }
+
+    @Override
+    public void onAttachedToWindow() {
+        Console.log(Constants.DebugFlags.App.SystemUIHandshake,
+                "[RecentsActivity|onAttachedToWindow]", "",
+                Console.AnsiRed);
+        super.onAttachedToWindow();
 
         // Register the broadcast receiver to handle messages from our service
         IntentFilter filter = new IntentFilter();
         filter.addAction(RecentsService.ACTION_TOGGLE_RECENTS_ACTIVITY);
-        filter.addAction(RecentsService.ACTION_FINISH_RECENTS_ACTIVITY);
         registerReceiver(mServiceBroadcastReceiver, filter);
+
+        // Register the broadcast receiver to handle messages when the screen is turned off
+        filter = new IntentFilter();
+        filter.addAction(Intent.ACTION_SCREEN_OFF);
+        registerReceiver(mScreenOffReceiver, filter);
+    }
+
+    @Override
+    public void onDetachedFromWindow() {
+        Console.log(Constants.DebugFlags.App.SystemUIHandshake,
+                "[RecentsActivity|onDetachedFromWindow]", "",
+                Console.AnsiRed);
+        super.onDetachedFromWindow();
+
+        // Unregister any broadcast receivers we have registered
+        unregisterReceiver(mServiceBroadcastReceiver);
+        unregisterReceiver(mScreenOffReceiver);
     }
 
     @Override
@@ -180,9 +217,6 @@
         Console.log(Constants.DebugFlags.App.SystemUIHandshake, "[RecentsActivity|onPause]", "",
                 Console.AnsiRed);
         super.onPause();
-
-        // Unregister any broadcast receivers we have registered
-        unregisterReceiver(mServiceBroadcastReceiver);
     }
 
     @Override
@@ -191,11 +225,6 @@
                 Console.AnsiRed);
         super.onStop();
 
-        // Finish the current recents activity after we have launched a task
-        if (mTaskLaunched && Constants.DebugFlags.App.EnableToggleNewRecentsActivity) {
-            finish();
-        }
-
         mVisible = false;
         mTaskLaunched = false;
     }
@@ -217,8 +246,18 @@
 
     @Override
     public void onBackPressed() {
-        if (!mRecentsView.unfilterFilteredStacks()) {
-            super.onBackPressed();
+        boolean interceptedByInfoPanelClose = false;
+
+        // Try and return from any open info panes
+        if (Constants.DebugFlags.App.EnableInfoPane) {
+            interceptedByInfoPanelClose = mRecentsView.closeOpenInfoPanes();
+        }
+
+        // If we haven't been intercepted already, then unfilter any stacks
+        if (!interceptedByInfoPanelClose) {
+            if (!mRecentsView.unfilterFilteredStacks()) {
+                super.onBackPressed();
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
index 3d47cb6..5e5b841 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
@@ -22,6 +22,7 @@
 import android.graphics.Rect;
 import android.util.DisplayMetrics;
 import android.util.TypedValue;
+import com.android.systemui.R;
 
 
 /** A static Recents configuration for the current context
@@ -34,6 +35,18 @@
     public Rect systemInsets = new Rect();
     public Rect displayRect = new Rect();
 
+    public float animationPxMovementPerSecond;
+
+    public int filteringCurrentViewsMinAnimDuration;
+    public int filteringNewViewsMinAnimDuration;
+    public int taskBarEnterAnimDuration;
+    public int taskStackScrollDismissInfoPaneDistance;
+    public int taskStackMaxDim;
+    public int taskViewInfoPaneAnimDuration;
+    public int taskViewRoundedCornerRadiusPx;
+
+    public boolean launchedWithThumbnailAnimation;
+
     /** Private constructor */
     private RecentsConfiguration() {}
 
@@ -57,9 +70,31 @@
         DisplayMetrics dm = res.getDisplayMetrics();
         mDisplayMetrics = dm;
 
+        boolean isLandscape = res.getConfiguration().orientation ==
+                Configuration.ORIENTATION_LANDSCAPE;
+        Console.log(Constants.DebugFlags.UI.MeasureAndLayout,
+                "[RecentsConfiguration|orientation]", isLandscape ? "Landscape" : "Portrait",
+                Console.AnsiGreen);
+
         displayRect.set(0, 0, dm.widthPixels, dm.heightPixels);
+        animationPxMovementPerSecond =
+                res.getDimensionPixelSize(R.dimen.recents_animation_movement_in_dps_per_second);
+        filteringCurrentViewsMinAnimDuration =
+                res.getInteger(R.integer.recents_filter_animate_current_views_min_duration);
+        filteringNewViewsMinAnimDuration =
+                res.getInteger(R.integer.recents_filter_animate_new_views_min_duration);
+        taskBarEnterAnimDuration =
+                res.getInteger(R.integer.recents_animate_task_bar_enter_duration);
+        taskStackScrollDismissInfoPaneDistance = res.getDimensionPixelSize(
+                R.dimen.recents_task_stack_scroll_dismiss_info_pane_distance);
+        taskStackMaxDim = res.getInteger(R.integer.recents_max_task_stack_view_dim);
+        taskViewInfoPaneAnimDuration =
+                res.getInteger(R.integer.recents_animate_task_view_info_pane_duration);
+        taskViewRoundedCornerRadiusPx =
+                res.getDimensionPixelSize(R.dimen.recents_task_view_rounded_corners_radius);
     }
 
+    /** Updates the system insets */
     public void updateSystemInsets(Rect insets) {
         systemInsets.set(insets);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsService.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsService.java
index 515cec1..06ca9e2 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsService.java
@@ -26,6 +26,7 @@
 import android.os.Message;
 import android.os.Messenger;
 import android.os.RemoteException;
+import com.android.systemui.recents.model.Task;
 import com.android.systemui.recents.model.TaskStack;
 import com.android.systemui.recents.views.TaskStackView;
 import com.android.systemui.recents.views.TaskViewTransform;
@@ -50,36 +51,51 @@
         Context context = mContext.get();
         if (context == null) return;
 
-        if (msg.what == RecentsService.MSG_UPDATE_RECENTS_FOR_CONFIGURATION) {
+        if (msg.what == AlternateRecentsComponent.MSG_UPDATE_FOR_CONFIGURATION) {
             RecentsTaskLoader.initialize(context);
             RecentsConfiguration.reinitialize(context);
 
             try {
                 Bundle data = msg.getData();
-                Rect windowRect = (Rect) data.getParcelable("windowRect");
-                Rect systemInsets = (Rect) data.getParcelable("systemInsets");
+                Rect windowRect = data.getParcelable(AlternateRecentsComponent.KEY_WINDOW_RECT);
+                Rect systemInsets = data.getParcelable(AlternateRecentsComponent.KEY_SYSTEM_INSETS);
 
                 // Create a dummy task stack & compute the rect for the thumbnail to animate to
                 TaskStack stack = new TaskStack(context);
                 TaskStackView tsv = new TaskStackView(context, stack);
-                // Since the nav bar height is already accounted for in the windowRect, don't pass
-                // in a bottom inset
+                Bundle replyData = new Bundle();
+                TaskViewTransform transform;
+
+                // Calculate the target task rect for when there is one task
+                // NOTE: Since the nav bar height is already accounted for in the windowRect, don't
+                // pass in a bottom inset
+                stack.addTask(new Task());
                 tsv.computeRects(windowRect.width(), windowRect.height() - systemInsets.top, 0);
                 tsv.boundScroll();
-                TaskViewTransform transform = tsv.getStackTransform(0);
-                Rect taskRect = new Rect(transform.rect);
+                transform = tsv.getStackTransform(0, tsv.getStackScroll());
+                replyData.putParcelable(AlternateRecentsComponent.KEY_SINGLE_TASK_STACK_RECT,
+                        new Rect(transform.rect));
 
-                data.putParcelable("taskRect", taskRect);
+                // Also calculate the target task rect when there are multiple tasks
+                stack.addTask(new Task());
+                tsv.computeRects(windowRect.width(), windowRect.height() - systemInsets.top, 0);
+                tsv.setStackScrollRaw(Integer.MAX_VALUE);
+                tsv.boundScroll();
+                transform = tsv.getStackTransform(1, tsv.getStackScroll());
+                replyData.putParcelable(AlternateRecentsComponent.KEY_MULTIPLE_TASK_STACK_RECT,
+                        new Rect(transform.rect));
+
+                data.putParcelable(AlternateRecentsComponent.KEY_CONFIGURATION_DATA, replyData);
                 Message reply = Message.obtain(null,
-                        RecentsService.MSG_UPDATE_RECENTS_FOR_CONFIGURATION, 0, 0);
+                        AlternateRecentsComponent.MSG_UPDATE_FOR_CONFIGURATION, 0, 0);
                 reply.setData(data);
                 msg.replyTo.send(reply);
             } catch (RemoteException re) {
                 re.printStackTrace();
             }
-        } else if (msg.what == RecentsService.MSG_CLOSE_RECENTS) {
+        } else if (msg.what == AlternateRecentsComponent.MSG_CLOSE_RECENTS) {
             // Do nothing
-        } else if (msg.what == RecentsService.MSG_TOGGLE_RECENTS) {
+        } else if (msg.what == AlternateRecentsComponent.MSG_TOGGLE_RECENTS) {
             // Send a broadcast to toggle recents
             Intent intent = new Intent(RecentsService.ACTION_TOGGLE_RECENTS_ACTIVITY);
             intent.setPackage(context.getPackageName());
@@ -96,14 +112,8 @@
 
 /* Service */
 public class RecentsService extends Service {
-    final static String ACTION_FINISH_RECENTS_ACTIVITY = "action_finish_recents_activity";
     final static String ACTION_TOGGLE_RECENTS_ACTIVITY = "action_toggle_recents_activity";
 
-    // XXX: This should be getting the message from recents definition
-    final static int MSG_UPDATE_RECENTS_FOR_CONFIGURATION = 0;
-    final static int MSG_CLOSE_RECENTS = 4;
-    final static int MSG_TOGGLE_RECENTS = 5;
-
     Messenger mSystemUIMessenger = new Messenger(new SystemUIMessageHandler(this));
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java
index b497b69..fd0f6d1 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java
@@ -20,10 +20,8 @@
 import android.content.ComponentCallbacks2;
 import android.content.Context;
 import android.content.pm.ActivityInfo;
-import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
-import android.graphics.Canvas;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
@@ -109,18 +107,20 @@
     Handler mLoadThreadHandler;
     Handler mMainThreadHandler;
 
+    SystemServicesProxy mSystemServicesProxy;
     TaskResourceLoadQueue mLoadQueue;
-    DrawableLruCache mIconCache;
+    DrawableLruCache mApplicationIconCache;
     BitmapLruCache mThumbnailCache;
 
     boolean mCancelled;
     boolean mWaitingOnLoadQueue;
 
     /** Constructor, creates a new loading thread that loads task resources in the background */
-    public TaskResourceLoader(TaskResourceLoadQueue loadQueue, DrawableLruCache iconCache,
+    public TaskResourceLoader(TaskResourceLoadQueue loadQueue,
+                              DrawableLruCache applicationIconCache,
                               BitmapLruCache thumbnailCache) {
         mLoadQueue = loadQueue;
-        mIconCache = iconCache;
+        mApplicationIconCache = applicationIconCache;
         mThumbnailCache = thumbnailCache;
         mMainThreadHandler = new Handler();
         mLoadThread = new HandlerThread("Recents-TaskResourceLoader");
@@ -135,6 +135,7 @@
         Console.log(Constants.DebugFlags.App.TaskDataLoader, "[TaskResourceLoader|start]");
         mContext = context;
         mCancelled = false;
+        mSystemServicesProxy = new SystemServicesProxy(context);
         // Notify the load thread to start loading
         synchronized(mLoadThread) {
             mLoadThread.notifyAll();
@@ -146,6 +147,7 @@
         Console.log(Constants.DebugFlags.App.TaskDataLoader, "[TaskResourceLoader|stop]");
         // Mark as cancelled for the thread to pick up
         mCancelled = true;
+        mSystemServicesProxy = null;
         // If we are waiting for the load queue for more tasks, then we can just reset the
         // Context now, since nothing is using it
         if (mWaitingOnLoadQueue) {
@@ -175,66 +177,62 @@
                     }
                 }
             } else {
+                SystemServicesProxy ssp = mSystemServicesProxy;
+
                 // Load the next item from the queue
                 Pair<Task, Boolean> nextTaskData = mLoadQueue.nextTask();
                 final Task t = nextTaskData.first;
                 final boolean forceLoadTask = nextTaskData.second;
                 if (t != null) {
-                    try {
-                        Drawable loadIcon = mIconCache.get(t.key);
-                        Bitmap loadThumbnail = mThumbnailCache.get(t.key);
-                        Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                                "  [TaskResourceLoader|load]",
-                                t + " icon: " + loadIcon + " thumbnail: " + loadThumbnail +
-                                        " forceLoad: " + forceLoadTask);
-                        // Load the icon
-                        if (loadIcon == null || forceLoadTask) {
-                            PackageManager pm = mContext.getPackageManager();
-                            ActivityInfo info = pm.getActivityInfo(t.key.intent.getComponent(),
-                                    PackageManager.GET_META_DATA);
-                            Drawable icon = info.loadIcon(pm);
-                            if (!mCancelled) {
-                                if (icon != null) {
-                                    Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                                            "    [TaskResourceLoader|loadIcon]",
-                                            icon);
-                                    loadIcon = icon;
-                                    mIconCache.put(t.key, icon);
-                                }
-                            }
-                        }
-                        // Load the thumbnail
-                        if (loadThumbnail == null || forceLoadTask) {
-                            ActivityManager am = (ActivityManager)
-                                    mContext.getSystemService(Context.ACTIVITY_SERVICE);
-                            Bitmap thumbnail = am.getTaskTopThumbnail(t.key.id);
-                            if (!mCancelled) {
-                                if (thumbnail != null) {
-                                    Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                                            "    [TaskResourceLoader|loadThumbnail]",
-                                            thumbnail);
-                                    loadThumbnail = thumbnail;
-                                    mThumbnailCache.put(t.key, thumbnail);
-                                } else {
-                                    Console.logError(mContext,
-                                            "Failed to load task top thumbnail for: " +
-                                                    t.key.intent.getComponent().getPackageName());
-                                }
-                            }
-                        }
+                    Drawable loadIcon = mApplicationIconCache.get(t.key);
+                    Bitmap loadThumbnail = mThumbnailCache.get(t.key);
+                    Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                            "  [TaskResourceLoader|load]",
+                            t + " icon: " + loadIcon + " thumbnail: " + loadThumbnail +
+                                    " forceLoad: " + forceLoadTask);
+                    // Load the application icon
+                    if (loadIcon == null || forceLoadTask) {
+                        ActivityInfo info = ssp.getActivityInfo(t.key.baseIntent.getComponent(),
+                                t.userId);
+                        Drawable icon = ssp.getActivityIcon(info, t.userId);
                         if (!mCancelled) {
-                            // Notify that the task data has changed
-                            final Drawable newIcon = loadIcon;
-                            final Bitmap newThumbnail = loadThumbnail;
-                            mMainThreadHandler.post(new Runnable() {
-                                @Override
-                                public void run() {
-                                    t.notifyTaskDataLoaded(newThumbnail, newIcon, forceLoadTask);
-                                }
-                            });
+                            if (icon != null) {
+                                Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                                        "    [TaskResourceLoader|loadIcon]",
+                                        icon);
+                                loadIcon = icon;
+                                mApplicationIconCache.put(t.key, icon);
+                            }
                         }
-                    } catch (PackageManager.NameNotFoundException ne) {
-                        ne.printStackTrace();
+                    }
+                    // Load the thumbnail
+                    if (loadThumbnail == null || forceLoadTask) {
+                        Bitmap thumbnail = ssp.getTaskThumbnail(t.key.id);
+                        if (!mCancelled) {
+                            if (thumbnail != null) {
+                                Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                                        "    [TaskResourceLoader|loadThumbnail]",
+                                        thumbnail);
+                                thumbnail.setHasAlpha(false);
+                                loadThumbnail = thumbnail;
+                                mThumbnailCache.put(t.key, thumbnail);
+                            } else {
+                                Console.logError(mContext,
+                                        "Failed to load task top thumbnail for: " +
+                                                t.key.baseIntent.getComponent().getPackageName());
+                            }
+                        }
+                    }
+                    if (!mCancelled) {
+                        // Notify that the task data has changed
+                        final Drawable newIcon = loadIcon;
+                        final Bitmap newThumbnail = loadThumbnail;
+                        mMainThreadHandler.post(new Runnable() {
+                            @Override
+                            public void run() {
+                                t.notifyTaskDataLoaded(newThumbnail, newIcon, forceLoadTask);
+                            }
+                        });
                     }
                 }
 
@@ -296,7 +294,8 @@
 public class RecentsTaskLoader {
     static RecentsTaskLoader sInstance;
 
-    DrawableLruCache mIconCache;
+    SystemServicesProxy mSystemServicesProxy;
+    DrawableLruCache mApplicationIconCache;
     BitmapLruCache mThumbnailCache;
     TaskResourceLoadQueue mLoadQueue;
     TaskResourceLoader mLoader;
@@ -304,7 +303,7 @@
     int mMaxThumbnailCacheSize;
     int mMaxIconCacheSize;
 
-    BitmapDrawable mDefaultIcon;
+    BitmapDrawable mDefaultApplicationIcon;
     Bitmap mDefaultThumbnail;
 
     /** Private Constructor */
@@ -324,25 +323,22 @@
                 "[RecentsTaskLoader|init]", "thumbnailCache: " + thumbnailCacheSize +
                 " iconCache: " + iconCacheSize);
 
-        // Initialize the cache and loaders
+        // Initialize the proxy, cache and loaders
+        mSystemServicesProxy = new SystemServicesProxy(context);
         mLoadQueue = new TaskResourceLoadQueue();
-        mIconCache = new DrawableLruCache(iconCacheSize);
+        mApplicationIconCache = new DrawableLruCache(iconCacheSize);
         mThumbnailCache = new BitmapLruCache(thumbnailCacheSize);
-        mLoader = new TaskResourceLoader(mLoadQueue, mIconCache, mThumbnailCache);
+        mLoader = new TaskResourceLoader(mLoadQueue, mApplicationIconCache, mThumbnailCache);
 
         // Create the default assets
         Bitmap icon = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+        icon.eraseColor(0x00000000);
         mDefaultThumbnail = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
-        Canvas c = new Canvas();
-        c.setBitmap(icon);
-        c.drawColor(0x00000000);
-        c.setBitmap(mDefaultThumbnail);
-        c.drawColor(0x00000000);
-        c.setBitmap(null);
-        mDefaultIcon = new BitmapDrawable(context.getResources(), icon);
+        mDefaultThumbnail.eraseColor(0x00000000);
+        mDefaultApplicationIcon = new BitmapDrawable(context.getResources(), icon);
         Console.log(Constants.DebugFlags.App.TaskDataLoader,
                 "[RecentsTaskLoader|defaultBitmaps]",
-                "icon: " + mDefaultIcon + " thumbnail: " + mDefaultThumbnail, Console.AnsiRed);
+                "icon: " + mDefaultApplicationIcon + " thumbnail: " + mDefaultThumbnail, Console.AnsiRed);
     }
 
     /** Initializes the recents task loader */
@@ -358,8 +354,48 @@
         return sInstance;
     }
 
+    /** Returns the system services proxy */
+    public SystemServicesProxy getSystemServicesProxy() {
+        return mSystemServicesProxy;
+    }
+
+    private List<ActivityManager.RecentTaskInfo> getRecentTasks(Context context) {
+        long t1 = System.currentTimeMillis();
+
+        SystemServicesProxy ssp = mSystemServicesProxy;
+        List<ActivityManager.RecentTaskInfo> tasks =
+                ssp.getRecentTasks(25, UserHandle.CURRENT.getIdentifier());
+        Collections.reverse(tasks);
+        Console.log(Constants.DebugFlags.App.TimeSystemCalls,
+                "[RecentsTaskLoader|getRecentTasks]",
+                "" + (System.currentTimeMillis() - t1) + "ms");
+        Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                "[RecentsTaskLoader|tasks]", "" + tasks.size());
+
+        // Remove home/recents tasks
+        Iterator<ActivityManager.RecentTaskInfo> iter = tasks.iterator();
+        while (iter.hasNext()) {
+            ActivityManager.RecentTaskInfo t = iter.next();
+
+            // Skip tasks in the home stack
+            if (ssp.isInHomeStack(t.persistentId)) {
+                iter.remove();
+                continue;
+            }
+            // Skip tasks from this Recents package
+            if (t.baseIntent.getComponent().getPackageName().equals(context.getPackageName())) {
+                iter.remove();
+                continue;
+            }
+        }
+
+        return tasks;
+    }
+
     /** Reload the set of recent tasks */
     SpaceNode reload(Context context, int preloadCount) {
+        long t1 = System.currentTimeMillis();
+
         Console.log(Constants.DebugFlags.App.TaskDataLoader, "[RecentsTaskLoader|reload]");
         Resources res = context.getResources();
         ArrayList<Task> tasksToForceLoad = new ArrayList<Task>();
@@ -367,141 +403,93 @@
         SpaceNode root = new SpaceNode(context);
         root.setStack(stack);
 
-        try {
-            long t1 = System.currentTimeMillis();
+        // Get the recent tasks
+        SystemServicesProxy ssp = mSystemServicesProxy;
+        List<ActivityManager.RecentTaskInfo> tasks = getRecentTasks(context);
 
-            PackageManager pm = context.getPackageManager();
-            ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+        // Add each task to the task stack
+        t1 = System.currentTimeMillis();
+        int taskCount = tasks.size();
+        for (int i = 0; i < taskCount; i++) {
+            ActivityManager.RecentTaskInfo t = tasks.get(i);
+            ActivityInfo info = ssp.getActivityInfo(t.baseIntent.getComponent(), t.userId);
+            String activityLabel = (t.activityLabel == null ? ssp.getActivityLabel(info) :
+                    t.activityLabel.toString());
+            Bitmap activityIcon = t.activityIcon;
+            boolean isForemostTask = (i == (taskCount - 1));
 
-            // Get the recent tasks
-            List<ActivityManager.RecentTaskInfo> tasks = am.getRecentTasksForUser(25,
-                    ActivityManager.RECENT_IGNORE_UNAVAILABLE |
-                    ActivityManager.RECENT_INCLUDE_RELATED, UserHandle.CURRENT.getIdentifier());
-            Collections.reverse(tasks);
-            Console.log(Constants.DebugFlags.App.TimeSystemCalls,
-                    "[RecentsTaskLoader|getRecentTasks]",
-                    "" + (System.currentTimeMillis() - t1) + "ms");
-            Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                    "[RecentsTaskLoader|tasks]", "" + tasks.size());
+            // Create a new task
+            Task task = new Task(t.persistentId, (t.id > -1), t.baseIntent, activityLabel,
+                    activityIcon, t.userId);
 
-            // Remove home/recents tasks
-            Iterator<ActivityManager.RecentTaskInfo> iter = tasks.iterator();
-            while (iter.hasNext()) {
-                ActivityManager.RecentTaskInfo t = iter.next();
+            // Preload the specified number of apps
+            if (i >= (taskCount - preloadCount)) {
+                Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                        "[RecentsTaskLoader|preloadTask]",
+                        "i: " + i + " task: " + t.baseIntent.getComponent().getPackageName());
 
-                // Skip tasks in the home stack
-                if (am.isInHomeStack(t.persistentId)) {
-                    iter.remove();
-                    continue;
-                }
-                // Skip tasks from this Recents package
-                if (t.baseIntent.getComponent().getPackageName().equals(context.getPackageName())) {
-                    iter.remove();
-                    continue;
-                }
-            }
-
-            // Add each task to the task stack
-            t1 = System.currentTimeMillis();
-            int taskCount = tasks.size();
-            for (int i = 0; i < taskCount; i++) {
-                ActivityManager.RecentTaskInfo t = tasks.get(i);
-                ActivityInfo info = pm.getActivityInfo(t.baseIntent.getComponent(),
-                        PackageManager.GET_META_DATA);
-                String title = info.loadLabel(pm).toString();
-                boolean isForemostTask = (i == (taskCount - 1));
-
-                // Preload the specified number of apps
-                if (i >= (taskCount - preloadCount)) {
-                    Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                            "[RecentsTaskLoader|preloadTask]",
-                            "i: " + i + " task: " + t.baseIntent.getComponent().getPackageName());
-
-                    String label = (t.activityLabel == null ? title : t.activityLabel.toString());
-                    BitmapDrawable bd = null;
-                    if (t.activityIcon != null) {
-                        bd = new BitmapDrawable(res, t.activityIcon);
+                // Load the icon (if possible and not the foremost task, from the cache)
+                if (!isForemostTask) {
+                    task.applicationIcon = mApplicationIconCache.get(task.key);
+                    if (task.applicationIcon != null) {
+                        // Even though we get things from the cache, we should update them
+                        // if they've changed in the bg
+                        tasksToForceLoad.add(task);
                     }
-                    Task task = new Task(t.persistentId, (t.id > -1), t.baseIntent, label, bd);
-
-                    // Load the icon (if possible and not the foremost task, from the cache)
-                    if (task.icon != null) {
-                        mIconCache.put(task.key, task.icon);
+                }
+                if (task.applicationIcon == null) {
+                    task.applicationIcon = ssp.getActivityIcon(info, task.userId);
+                    if (task.applicationIcon != null) {
+                        mApplicationIconCache.put(task.key, task.applicationIcon);
                     } else {
-                        if (!isForemostTask) {
-                            task.icon = mIconCache.get(task.key);
-                            if (task.icon != null) {
-                                // Even though we get things from the cache, we should update them
-                                // if they've changed in the bg
-                                tasksToForceLoad.add(task);
-                            }
-                        }
-                        if (task.icon == null) {
-                            task.icon = info.loadIcon(pm);
-                            if (task.icon != null) {
-                                mIconCache.put(task.key, task.icon);
-                            } else {
-                                task.icon = mDefaultIcon;
-                            }
-                        }
+                        task.applicationIcon = mDefaultApplicationIcon;
                     }
+                }
 
-                    // Load the thumbnail (if possible and not the foremost task, from the cache)
-                    if (!isForemostTask) {
-                        task.thumbnail = mThumbnailCache.get(task.key);
-                        if (task.thumbnail != null) {
-                            // Even though we get things from the cache, we should update them if
-                            // they've changed in the bg
-                            tasksToForceLoad.add(task);
-                        }
+                // Load the thumbnail (if possible and not the foremost task, from the cache)
+                if (!isForemostTask) {
+                    task.thumbnail = mThumbnailCache.get(task.key);
+                    if (task.thumbnail != null) {
+                        // Even though we get things from the cache, we should update them if
+                        // they've changed in the bg
+                        tasksToForceLoad.add(task);
                     }
-                    if (task.thumbnail == null) {
-                        Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                                "[RecentsTaskLoader|loadingTaskThumbnail]");
-                        task.thumbnail = am.getTaskTopThumbnail(t.id);
-                        if (task.thumbnail != null) {
-                            mThumbnailCache.put(task.key, task.thumbnail);
-                        } else {
-                            task.thumbnail = mDefaultThumbnail;
-                        }
-                    }
-
-                    // Create as many tasks a we want to multiply by
-                    for (int j = 0; j < Constants.Values.RecentsTaskLoader.TaskEntryMultiplier; j++) {
-                        Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                                "  [RecentsTaskLoader|task]", t.baseIntent.getComponent().getPackageName());
-                        stack.addTask(task);
-                    }
-                } else {
-                    // Create as many tasks a we want to multiply by
-                    for (int j = 0; j < Constants.Values.RecentsTaskLoader.TaskEntryMultiplier; j++) {
-                        Console.log(Constants.DebugFlags.App.TaskDataLoader,
-                                "  [RecentsTaskLoader|task]", t.baseIntent.getComponent().getPackageName());
-                        stack.addTask(new Task(t.persistentId, (t.id > -1), t.baseIntent, title,
-                                null, null));
+                }
+                if (task.thumbnail == null) {
+                    Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                            "[RecentsTaskLoader|loadingTaskThumbnail]");
+                    task.thumbnail = ssp.getTaskThumbnail(task.key.id);
+                    if (task.thumbnail != null) {
+                        task.thumbnail.setHasAlpha(false);
+                        mThumbnailCache.put(task.key, task.thumbnail);
+                    } else {
+                        task.thumbnail = mDefaultThumbnail;
                     }
                 }
             }
-            Console.log(Constants.DebugFlags.App.TimeSystemCalls,
-                    "[RecentsTaskLoader|getAllTaskTopThumbnail]",
-                    "" + (System.currentTimeMillis() - t1) + "ms");
 
-            /*
-            // Get all the stacks
-            t1 = System.currentTimeMillis();
-            List<ActivityManager.StackInfo> stackInfos = ams.getAllStackInfos();
-            Console.log(Constants.DebugFlags.App.TimeSystemCalls, "[RecentsTaskLoader|getAllStackInfos]", "" + (System.currentTimeMillis() - t1) + "ms");
-            Console.log(Constants.DebugFlags.App.TaskDataLoader, "[RecentsTaskLoader|stacks]", "" + tasks.size());
-            for (ActivityManager.StackInfo s : stackInfos) {
-                Console.log(Constants.DebugFlags.App.TaskDataLoader, "  [RecentsTaskLoader|stack]", s.toString());
-                if (stacks.containsKey(s.stackId)) {
-                    stacks.get(s.stackId).setRect(s.bounds);
-                }
-            }
-            */
-        } catch (Exception e) {
-            e.printStackTrace();
+            // Add the task to the stack
+            Console.log(Constants.DebugFlags.App.TaskDataLoader,
+                "  [RecentsTaskLoader|task]", t.baseIntent.getComponent().getPackageName());
+            stack.addTask(task);
         }
+        Console.log(Constants.DebugFlags.App.TimeSystemCalls,
+                "[RecentsTaskLoader|getAllTaskTopThumbnail]",
+                "" + (System.currentTimeMillis() - t1) + "ms");
+
+        /*
+        // Get all the stacks
+        t1 = System.currentTimeMillis();
+        List<ActivityManager.StackInfo> stackInfos = ams.getAllStackInfos();
+        Console.log(Constants.DebugFlags.App.TimeSystemCalls, "[RecentsTaskLoader|getAllStackInfos]", "" + (System.currentTimeMillis() - t1) + "ms");
+        Console.log(Constants.DebugFlags.App.TaskDataLoader, "[RecentsTaskLoader|stacks]", "" + tasks.size());
+        for (ActivityManager.StackInfo s : stackInfos) {
+            Console.log(Constants.DebugFlags.App.TaskDataLoader, "  [RecentsTaskLoader|stack]", s.toString());
+            if (stacks.containsKey(s.stackId)) {
+                stacks.get(s.stackId).setRect(s.bounds);
+            }
+        }
+        */
 
         // Start the task loader
         mLoader.start(context);
@@ -516,16 +504,16 @@
 
     /** Acquires the task resource data from the pool. */
     public void loadTaskData(Task t) {
-        Drawable icon = mIconCache.get(t.key);
+        Drawable applicationIcon = mApplicationIconCache.get(t.key);
         Bitmap thumbnail = mThumbnailCache.get(t.key);
 
         Console.log(Constants.DebugFlags.App.TaskDataLoader, "[RecentsTaskLoader|loadTask]",
-                t + " icon: " + icon + " thumbnail: " + thumbnail +
+                t + " applicationIcon: " + applicationIcon + " thumbnail: " + thumbnail +
                         " thumbnailCacheSize: " + mThumbnailCache.size());
 
         boolean requiresLoad = false;
-        if (icon == null) {
-            icon = mDefaultIcon;
+        if (applicationIcon == null) {
+            applicationIcon = mDefaultApplicationIcon;
             requiresLoad = true;
         }
         if (thumbnail == null) {
@@ -535,7 +523,7 @@
         if (requiresLoad) {
             mLoadQueue.addTask(t, false);
         }
-        t.notifyTaskDataLoaded(thumbnail, icon, false);
+        t.notifyTaskDataLoaded(thumbnail, applicationIcon, false);
     }
 
     /** Releases the task resource data back into the pool. */
@@ -545,7 +533,7 @@
                 " thumbnailCacheSize: " + mThumbnailCache.size());
 
         mLoadQueue.removeTask(t);
-        t.notifyTaskDataUnloaded(mDefaultThumbnail, mDefaultIcon);
+        t.notifyTaskDataUnloaded(mDefaultThumbnail, mDefaultApplicationIcon);
     }
 
     /** Completely removes the resource data from the pool. */
@@ -555,8 +543,8 @@
 
         mLoadQueue.removeTask(t);
         mThumbnailCache.remove(t.key);
-        mIconCache.remove(t.key);
-        t.notifyTaskDataUnloaded(mDefaultThumbnail, mDefaultIcon);
+        mApplicationIconCache.remove(t.key);
+        t.notifyTaskDataUnloaded(mDefaultThumbnail, mDefaultApplicationIcon);
     }
 
     /** Stops the task loader and clears all pending tasks */
@@ -579,19 +567,19 @@
             case ComponentCallbacks2.TRIM_MEMORY_BACKGROUND:
                 // We are leaving recents, so trim the data a bit
                 mThumbnailCache.trimToSize(mMaxThumbnailCacheSize / 2);
-                mIconCache.trimToSize(mMaxIconCacheSize / 2);
+                mApplicationIconCache.trimToSize(mMaxIconCacheSize / 2);
                 break;
             case ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW:
             case ComponentCallbacks2.TRIM_MEMORY_MODERATE:
                 // We are going to be low on memory
                 mThumbnailCache.trimToSize(mMaxThumbnailCacheSize / 4);
-                mIconCache.trimToSize(mMaxIconCacheSize / 4);
+                mApplicationIconCache.trimToSize(mMaxIconCacheSize / 4);
                 break;
             case ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL:
             case ComponentCallbacks2.TRIM_MEMORY_COMPLETE:
                 // We are low on memory, so release everything
                 mThumbnailCache.evictAll();
-                mIconCache.evictAll();
+                mApplicationIconCache.evictAll();
                 break;
             default:
                 break;
diff --git a/packages/SystemUI/src/com/android/systemui/recents/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/SystemServicesProxy.java
new file mode 100644
index 0000000..7f0d9ee
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recents/SystemServicesProxy.java
@@ -0,0 +1,202 @@
+/*
+ * 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.android.systemui.recents;
+
+import android.app.ActivityManager;
+import android.app.ActivityOptions;
+import android.app.AppGlobals;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.IPackageManager;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Acts as a shim around the real system services that we need to access data from, and provides
+ * a point of injection when testing UI.
+ */
+public class SystemServicesProxy {
+    ActivityManager mAm;
+    PackageManager mPm;
+    IPackageManager mIpm;
+    UserManager mUm;
+    String mPackage;
+
+    Bitmap mDummyIcon;
+
+    /** Private constructor */
+    public SystemServicesProxy(Context context) {
+        mAm = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+        mPm = context.getPackageManager();
+        mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        mIpm = AppGlobals.getPackageManager();
+        mPackage = context.getPackageName();
+
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+            // Create a dummy icon
+            mDummyIcon = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+            mDummyIcon.eraseColor(0xFF999999);
+        }
+    }
+
+    /** Returns a list of the recents tasks */
+    public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numTasks, int userId) {
+        if (mAm == null) return null;
+
+        // If we are mocking, then create some recent tasks
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+            ArrayList<ActivityManager.RecentTaskInfo> tasks =
+                    new ArrayList<ActivityManager.RecentTaskInfo>();
+            int count = Math.min(numTasks, Constants.DebugFlags.App.SystemServicesProxyMockTaskCount);
+            for (int i = 0; i < count; i++) {
+                // Create a dummy component name
+                int packageIndex = i % Constants.DebugFlags.App.SystemServicesProxyMockPackageCount;
+                ComponentName cn = new ComponentName("com.android.test" + packageIndex,
+                        "com.android.test" + i + ".Activity");
+                // Create the recent task info
+                ActivityManager.RecentTaskInfo rti = new ActivityManager.RecentTaskInfo();
+                rti.id = rti.persistentId = i;
+                rti.baseIntent = new Intent();
+                rti.baseIntent.setComponent(cn);
+                rti.description = rti.activityLabel = "" + i + " - " +
+                        Long.toString(Math.abs(new Random().nextLong()), 36);
+                if (i % 2 == 0) {
+                    rti.activityIcon = Bitmap.createBitmap(mDummyIcon);
+                }
+                tasks.add(rti);
+            }
+            return tasks;
+        }
+
+        return mAm.getRecentTasksForUser(numTasks,
+                ActivityManager.RECENT_IGNORE_UNAVAILABLE |
+                ActivityManager.RECENT_INCLUDE_PROFILES, userId);
+    }
+
+    /** Returns a list of the running tasks */
+    public List<ActivityManager.RunningTaskInfo> getRunningTasks(int numTasks) {
+        if (mAm == null) return null;
+        return mAm.getRunningTasks(numTasks);
+    }
+
+    /** Returns whether the specified task is in the home stack */
+    public boolean isInHomeStack(int taskId) {
+        if (mAm == null) return false;
+
+        // If we are mocking, then just return false
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+            return false;
+        }
+
+        return mAm.isInHomeStack(taskId);
+    }
+
+    /** Returns the top task thumbnail for the given task id */
+    public Bitmap getTaskThumbnail(int taskId) {
+        if (mAm == null) return null;
+
+        // If we are mocking, then just return a dummy thumbnail
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+            Bitmap thumbnail = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+            thumbnail.eraseColor(0xff333333);
+            return thumbnail;
+        }
+
+        return mAm.getTaskTopThumbnail(taskId);
+    }
+
+    /** Moves a task to the front with the specified activity options */
+    public void moveTaskToFront(int taskId, ActivityOptions opts) {
+        if (mAm == null) return;
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) return;
+
+        if (opts != null) {
+            mAm.moveTaskToFront(taskId, ActivityManager.MOVE_TASK_WITH_HOME,
+                    opts.toBundle());
+        } else {
+            mAm.moveTaskToFront(taskId, ActivityManager.MOVE_TASK_WITH_HOME);
+        }
+    }
+
+    /** Removes the task and kills the process */
+    public void removeTask(int taskId) {
+        if (mAm == null) return;
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) return;
+
+        mAm.removeTask(taskId, ActivityManager.REMOVE_TASK_KILL_PROCESS);
+    }
+
+    /**
+     * Returns the activity info for a given component name.
+     * 
+     * @param ComponentName The component name of the activity.
+     * @param userId The userId of the user that this is for.
+     */
+    public ActivityInfo getActivityInfo(ComponentName cn, int userId) {
+        if (mIpm == null) return null;
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) return null;
+
+        try {
+            return mIpm.getActivityInfo(cn, PackageManager.GET_META_DATA, userId);
+        } catch (RemoteException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /** Returns the activity label */
+    public String getActivityLabel(ActivityInfo info) {
+        if (mPm == null) return null;
+
+        // If we are mocking, then return a mock label
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+            return "Recent Task";
+        }
+
+        return info.loadLabel(mPm).toString();
+    }
+
+    /**
+     * Returns the activity icon for the ActivityInfo for a user, badging if
+     * necessary.
+     */
+    public Drawable getActivityIcon(ActivityInfo info, int userId) {
+        if (mPm == null || mUm == null) return null;
+
+        // If we are mocking, then return a mock label
+        if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+            return new ColorDrawable(0xFF666666);
+        }
+
+        Drawable icon = info.loadIcon(mPm);
+        if (userId != UserHandle.myUserId()) {
+            icon = mUm.getBadgedDrawableForUser(icon, new UserHandle(userId));
+        }
+        return icon;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Utilities.java b/packages/SystemUI/src/com/android/systemui/recents/Utilities.java
index 33e4246..4a1b3b2 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Utilities.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Utilities.java
@@ -20,8 +20,18 @@
 
 /* Common code */
 public class Utilities {
-    public static final Rect tmpRect = new Rect();
-    public static final Rect tmpRect2 = new Rect();
+    /**
+     * Calculates a consistent animation duration (ms) for all animations depending on the movement
+     * of the object being animated.
+     */
+    public static int calculateTranslationAnimationDuration(int distancePx) {
+        return calculateTranslationAnimationDuration(distancePx, 100);
+    }
+    public static int calculateTranslationAnimationDuration(int distancePx, int minDuration) {
+        RecentsConfiguration config = RecentsConfiguration.getInstance();
+        return Math.max(minDuration, (int) (1000f /* ms/s */ *
+                (Math.abs(distancePx) / config.animationPxMovementPerSecond)));
+    }
 
     /** Scales a rect about its centroid */
     public static void scaleRectAboutCenter(Rect r, float scale) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
index cda4ab2..ff062f6c 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java
@@ -19,7 +19,6 @@
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
-import com.android.systemui.recents.Constants;
 
 
 /**
@@ -37,48 +36,58 @@
     /* The Task Key represents the unique primary key for the task */
     public static class TaskKey {
         public final int id;
-        public final Intent intent;
+        public final Intent baseIntent;
+        public final int userId;
 
-        public TaskKey(int id, Intent intent) {
+        public TaskKey(int id, Intent intent, int userId) {
             this.id = id;
-            this.intent = intent;
+            this.baseIntent = intent;
+            this.userId = userId;
         }
 
         @Override
         public boolean equals(Object o) {
-            return hashCode() == o.hashCode();
+            if (!(o instanceof TaskKey)) {
+                return false;
+            }
+            return id == ((TaskKey) o).id
+                    && userId == ((TaskKey) o).userId;
         }
 
         @Override
         public int hashCode() {
-            return id;
+            return (id << 5) + userId;
         }
 
         @Override
         public String toString() {
-            return "Task.Key: " + id + ", " + intent.getComponent().getPackageName();
+            return "Task.Key: " + id + ", "
+                    + "u" + userId + ", "
+                    + baseIntent.getComponent().getPackageName();
         }
     }
 
     public TaskKey key;
-    public String title;
-    public Drawable icon;
+    public Drawable applicationIcon;
+    public String activityLabel;
+    public Bitmap activityIcon;
     public Bitmap thumbnail;
     public boolean isActive;
+    public int userId;
 
     TaskCallbacks mCb;
 
-    public Task(int id, boolean isActive, Intent intent, String activityTitle, Drawable icon) {
-        this(id, isActive, intent, activityTitle, icon, null);
+    public Task() {
+        // Only used by RecentsService for task rect calculations.
     }
 
-    public Task(int id, boolean isActive, Intent intent, String activityTitle, Drawable icon,
-                Bitmap thumbnail) {
-        this.key = new TaskKey(id, intent);
-        this.title = activityTitle;
-        this.icon = icon;
-        this.thumbnail = thumbnail;
+    public Task(int id, boolean isActive, Intent intent, String activityTitle,
+                Bitmap activityIcon, int userId) {
+        this.key = new TaskKey(id, intent, userId);
+        this.activityLabel = activityTitle;
+        this.activityIcon = activityIcon;
         this.isActive = isActive;
+        this.userId = userId;
     }
 
     /** Set the callbacks */
@@ -87,8 +96,9 @@
     }
 
     /** Notifies the callback listeners that this task has been loaded */
-    public void notifyTaskDataLoaded(Bitmap thumbnail, Drawable icon, boolean reloadingTaskData) {
-        this.icon = icon;
+    public void notifyTaskDataLoaded(Bitmap thumbnail, Drawable applicationIcon,
+                                     boolean reloadingTaskData) {
+        this.applicationIcon = applicationIcon;
         this.thumbnail = thumbnail;
         if (mCb != null) {
             mCb.onTaskDataLoaded(reloadingTaskData);
@@ -96,8 +106,8 @@
     }
 
     /** Notifies the callback listeners that this task has been unloaded */
-    public void notifyTaskDataUnloaded(Bitmap defaultThumbnail, Drawable defaultIcon) {
-        icon = defaultIcon;
+    public void notifyTaskDataUnloaded(Bitmap defaultThumbnail, Drawable defaultApplicationIcon) {
+        applicationIcon = defaultApplicationIcon;
         thumbnail = defaultThumbnail;
         if (mCb != null) {
             mCb.onTaskDataUnloaded();
@@ -106,20 +116,13 @@
 
     @Override
     public boolean equals(Object o) {
-        // If we have multiple task entries for the same task, then we do the simple object
-        // equality check
-        if (Constants.Values.RecentsTaskLoader.TaskEntryMultiplier > 1) {
-            return super.equals(o);
-        }
-
-        // Otherwise, check that the id and intent match (the other fields can be asynchronously
-        // loaded and is unsuitable to testing the identity of this Task)
+        // Check that the id matches
         Task t = (Task) o;
         return key.equals(t.key);
     }
 
     @Override
     public String toString() {
-        return "Task: " + key.intent.getComponent().getPackageName() + " [" + super.toString() + "]";
+        return "Task: " + key.baseIntent.getComponent().getPackageName() + " [" + super.toString() + "]";
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
index f2f89ae..d2de185 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
@@ -39,9 +39,17 @@
     TaskFilter mFilter;
 
     /** Sets the task filter, saving the current touch state */
-    void setFilter(TaskFilter filter) {
+    boolean setFilter(TaskFilter filter) {
+        ArrayList<Task> prevFilteredTasks = new ArrayList<Task>(mFilteredTasks);
         mFilter = filter;
         updateFilteredTasks();
+        if (!prevFilteredTasks.equals(mFilteredTasks)) {
+            return true;
+        } else {
+            // If the tasks are exactly the same pre/post filter, then just reset it
+            mFilter = null;
+            return false;
+        }
     }
 
     /** Removes the task filter and returns the previous touch state */
@@ -126,9 +134,9 @@
         /* Notifies when a task has been removed from the stack */
         public void onStackTaskRemoved(TaskStack stack, Task t);
         /** Notifies when the stack was filtered */
-        public void onStackFiltered(TaskStack stack);
+        public void onStackFiltered(TaskStack newStack, ArrayList<Task> curTasks, Task t);
         /** Notifies when the stack was un-filtered */
-        public void onStackUnfiltered(TaskStack stack);
+        public void onStackUnfiltered(TaskStack newStack, ArrayList<Task> curTasks);
     }
 
     Context mContext;
@@ -201,29 +209,30 @@
     }
 
     /** Filters the stack into tasks similar to the one specified */
-    public void filterTasks(Task t) {
+    public void filterTasks(final Task t) {
+        ArrayList<Task> oldStack = new ArrayList<Task>(mTaskList.getTasks());
+
         // Set the task list filter
-        // XXX: This is a dummy filter that currently just accepts every other task.
-        mTaskList.setFilter(new TaskFilter() {
+        boolean filtered = mTaskList.setFilter(new TaskFilter() {
             @Override
-            public boolean acceptTask(Task t, int i) {
-                if (i % 2 == 0) {
-                    return true;
-                }
-                return false;
+            public boolean acceptTask(Task at, int i) {
+                return t.key.baseIntent.getComponent().getPackageName().equals(
+                        at.key.baseIntent.getComponent().getPackageName());
             }
         });
-        if (mCb != null) {
-            mCb.onStackFiltered(this);
+        if (filtered && mCb != null) {
+            mCb.onStackFiltered(this, oldStack, t);
         }
     }
 
     /** Unfilters the current stack */
     public void unfilterTasks() {
+        ArrayList<Task> oldStack = new ArrayList<Task>(mTaskList.getTasks());
+
         // Unset the filter, then update the virtual scroll
         mTaskList.removeFilter();
         if (mCb != null) {
-            mCb.onStackUnfiltered(this);
+            mCb.onStackUnfiltered(this, oldStack);
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
index cc85439..b054a22 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
@@ -16,20 +16,23 @@
 
 package com.android.systemui.recents.views;
 
-import android.app.ActivityManager;
 import android.app.ActivityOptions;
+import android.app.TaskStackBuilder;
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Rect;
+import android.net.Uri;
 import android.os.UserHandle;
+import android.provider.Settings;
 import android.view.View;
 import android.widget.FrameLayout;
 import com.android.systemui.recents.Console;
 import com.android.systemui.recents.Constants;
 import com.android.systemui.recents.RecentsConfiguration;
+import com.android.systemui.recents.RecentsTaskLoader;
 import com.android.systemui.recents.model.SpaceNode;
 import com.android.systemui.recents.model.Task;
 import com.android.systemui.recents.model.TaskStack;
@@ -108,6 +111,7 @@
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         int width = MeasureSpec.getSize(widthMeasureSpec);
+        int widthMode = MeasureSpec.getMode(widthMeasureSpec);
         int height = MeasureSpec.getSize(heightMeasureSpec);
         int heightMode = MeasureSpec.getMode(heightMeasureSpec);
 
@@ -118,6 +122,7 @@
 
         // We measure our stack views sans the status bar.  It will handle the nav bar itself.
         RecentsConfiguration config = RecentsConfiguration.getInstance();
+        int childWidth = width - config.systemInsets.right;
         int childHeight = height - config.systemInsets.top;
 
         // Measure each child
@@ -125,7 +130,7 @@
         for (int i = 0; i < childCount; i++) {
             final View child = getChildAt(i);
             if (child.getVisibility() != GONE) {
-                child.measure(widthMeasureSpec,
+                child.measure(MeasureSpec.makeMeasureSpec(childWidth, widthMode),
                         MeasureSpec.makeMeasureSpec(childHeight, heightMode));
             }
         }
@@ -177,6 +182,21 @@
         return true;
     }
 
+    /** Closes any open info panes */
+    public boolean closeOpenInfoPanes() {
+        if (mBSP != null) {
+            // Get the first stack view
+            int childCount = getChildCount();
+            for (int i = 0; i < childCount; i++) {
+                TaskStackView stackView = (TaskStackView) getChildAt(i);
+                if (stackView.closeOpenInfoPanes()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     /** Unfilters any filtered stacks */
     public boolean unfilterFilteredStacks() {
         if (mBSP != null) {
@@ -204,6 +224,9 @@
             mCb.onTaskLaunching();
         }
 
+        // Close any open info panes
+        closeOpenInfoPanes();
+
         final Runnable launchRunnable = new Runnable() {
             @Override
             public void run() {
@@ -211,17 +234,18 @@
                 View sourceView = tv;
                 int offsetX = 0;
                 int offsetY = 0;
+                int stackScroll = stackView.getStackScroll();
                 if (tv == null) {
                     // If there is no actual task view, then use the stack view as the source view
                     // and then offset to the expected transform rect, but bound this to just
                     // outside the display rect (to ensure we don't animate from too far away)
                     RecentsConfiguration config = RecentsConfiguration.getInstance();
                     sourceView = stackView;
-                    transform = stackView.getStackTransform(stack.indexOfTask(task));
+                    transform = stackView.getStackTransform(stack.indexOfTask(task), stackScroll);
                     offsetX = transform.rect.left;
                     offsetY = Math.min(transform.rect.top, config.displayRect.height());
                 } else {
-                    transform = stackView.getStackTransform(stack.indexOfTask(task));
+                    transform = stackView.getStackTransform(stack.indexOfTask(task), stackScroll);
                 }
 
                 // Compute the thumbnail to scale up from
@@ -245,26 +269,20 @@
 
                 if (task.isActive) {
                     // Bring an active task to the foreground
-                    ActivityManager am = (ActivityManager)
-                            stackView.getContext().getSystemService(Context.ACTIVITY_SERVICE);
-                    if (opts != null) {
-                        am.moveTaskToFront(task.key.id, ActivityManager.MOVE_TASK_WITH_HOME,
-                                opts.toBundle());
-                    } else {
-                        am.moveTaskToFront(task.key.id, ActivityManager.MOVE_TASK_WITH_HOME);
-                    }
+                    RecentsTaskLoader.getInstance().getSystemServicesProxy()
+                            .moveTaskToFront(task.key.id, opts);
                 } else {
                     // Launch the activity with the desired animation
-                    Intent i = new Intent(task.key.intent);
+                    Intent i = new Intent(task.key.baseIntent);
                     i.setFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
                             | Intent.FLAG_ACTIVITY_TASK_ON_HOME
                             | Intent.FLAG_ACTIVITY_NEW_TASK);
                     try {
+                        UserHandle taskUser = new UserHandle(task.userId);
                         if (opts != null) {
-                            getContext().startActivityAsUser(i, opts.toBundle(),
-                                    UserHandle.CURRENT);
+                            getContext().startActivityAsUser(i, opts.toBundle(), taskUser);
                         } else {
-                            getContext().startActivityAsUser(i, UserHandle.CURRENT);
+                            getContext().startActivityAsUser(i, taskUser);
                         }
                     } catch (ActivityNotFoundException anfe) {
                         Console.logError(getContext(), "Could not start Activity");
@@ -280,10 +298,21 @@
                 Constants.DebugFlags.App.TimeRecentsLaunchKey, "onTaskLaunched");
 
         // Launch the app right away if there is no task view, otherwise, animate the icon out first
-        if (tv == null || !Constants.Values.TaskView.AnimateFrontTaskIconOnLeavingRecents) {
+        if (tv == null || !Constants.Values.TaskView.AnimateFrontTaskBarOnLeavingRecents) {
             post(launchRunnable);
         } else {
             tv.animateOnLeavingRecents(launchRunnable);
         }
     }
+
+    @Override
+    public void onTaskAppInfoLaunched(Task t) {
+        // Create a new task stack with the application info details activity
+        Intent baseIntent = t.key.baseIntent;
+        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
+                Uri.fromParts("package", baseIntent.getComponent().getPackageName(), null));
+        intent.setComponent(intent.resolveActivity(getContext().getPackageManager()));
+        TaskStackBuilder.create(getContext())
+                .addNextIntentWithParentStack(intent).startActivities();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java
index 235c6cc..c9a6d67 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java
@@ -17,21 +17,12 @@
 package com.android.systemui.recents.views;
 
 import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.Typeface;
 import android.util.AttributeSet;
 import android.view.View;
-import android.view.animation.AccelerateDecelerateInterpolator;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.TextView;
 import com.android.systemui.R;
-import com.android.systemui.recents.Constants;
-import com.android.systemui.recents.RecentsConfiguration;
 import com.android.systemui.recents.model.Task;
 
 
@@ -39,6 +30,7 @@
 class TaskBarView extends FrameLayout {
     Task mTask;
 
+    ImageView mApplicationIcon;
     ImageView mActivityIcon;
     TextView mActivityDescription;
 
@@ -61,6 +53,7 @@
     @Override
     protected void onFinishInflate() {
         // Initialize the icon and description views
+        mApplicationIcon = (ImageView) findViewById(R.id.application_icon);
         mActivityIcon = (ImageView) findViewById(R.id.activity_icon);
         mActivityDescription = (TextView) findViewById(R.id.activity_description);
     }
@@ -68,9 +61,13 @@
     /** Binds the bar view to the task */
     void rebindToTask(Task t, boolean animate) {
         mTask = t;
-        if (t.icon != null) {
-            mActivityIcon.setImageDrawable(t.icon);
-            mActivityDescription.setText(t.title);
+        if (t.applicationIcon != null) {
+            mApplicationIcon.setImageDrawable(t.applicationIcon);
+            mActivityDescription.setText(t.activityLabel);
+            if (t.activityIcon != null) {
+                mActivityIcon.setImageBitmap(t.activityIcon);
+                mActivityIcon.setVisibility(View.VISIBLE);
+            }
             if (animate) {
                 // XXX: Investigate how expensive it will be to create a second bitmap and crossfade
             }
@@ -80,7 +77,9 @@
     /** Unbinds the bar view from the task */
     void unbindFromTask() {
         mTask = null;
-        mActivityIcon.setImageDrawable(null);
+        mApplicationIcon.setImageDrawable(null);
+        mActivityIcon.setImageBitmap(null);
+        mActivityIcon.setVisibility(View.INVISIBLE);
         mActivityDescription.setText("");
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskInfoView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskInfoView.java
new file mode 100644
index 0000000..233e38c
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskInfoView.java
@@ -0,0 +1,163 @@
+/*
+ * 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.android.systemui.recents.views;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Path;
+import android.graphics.Point;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import com.android.systemui.R;
+import com.android.systemui.recents.BakedBezierInterpolator;
+import com.android.systemui.recents.Utilities;
+
+
+/* The task info view */
+class TaskInfoView extends FrameLayout {
+
+    Button mAppInfoButton;
+
+    // Circular clip animation
+    boolean mCircularClipEnabled;
+    Path mClipPath = new Path();
+    float mClipRadius;
+    float mMaxClipRadius;
+    Point mClipOrigin = new Point();
+    ObjectAnimator mCircularClipAnimator;
+
+    public TaskInfoView(Context context) {
+        this(context, null);
+    }
+
+    public TaskInfoView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public TaskInfoView(Context context, AttributeSet attrs, int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public TaskInfoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        // Initialize the buttons on the info panel
+        mAppInfoButton = (Button) findViewById(R.id.task_view_app_info_button);
+    }
+
+    /** Updates the positions of each of the items to fit in the rect specified */
+    void updateContents(Rect visibleRect) {
+        // Offset the app info button
+        LayoutParams lp = (LayoutParams) mAppInfoButton.getLayoutParams();
+        lp.topMargin = visibleRect.top +
+                (visibleRect.height() - mAppInfoButton.getMeasuredHeight()) / 2;
+        requestLayout();
+    }
+
+    /** Sets the circular clip radius on this panel */
+    public void setCircularClipRadius(float r) {
+        mClipRadius = r;
+        invalidate();
+    }
+
+    /** Gets the circular clip radius on this panel */
+    public float getCircularClipRadius() {
+        return mClipRadius;
+    }
+
+    /** Animates the circular clip radius on the icon */
+    void animateCircularClip(Point o, float fromRadius, float toRadius,
+                             final Runnable postRunnable, boolean animateInContent) {
+        if (mCircularClipAnimator != null) {
+            mCircularClipAnimator.cancel();
+        }
+
+        // Calculate the max clip radius to each of the corners
+        int w = getMeasuredWidth() - o.x;
+        int h = getMeasuredHeight() - o.y;
+        // origin to tl, tr, br, bl
+        mMaxClipRadius = (int) Math.ceil(Math.sqrt(o.x * o.x + o.y * o.y));
+        mMaxClipRadius = (int) Math.max(mMaxClipRadius, Math.ceil(Math.sqrt(w * w + o.y * o.y)));
+        mMaxClipRadius = (int) Math.max(mMaxClipRadius, Math.ceil(Math.sqrt(w * w + h * h)));
+        mMaxClipRadius = (int) Math.max(mMaxClipRadius, Math.ceil(Math.sqrt(o.x * o.x + h * h)));
+
+        mClipOrigin.set(o.x, o.y);
+        mClipRadius = fromRadius;
+        int duration = Utilities.calculateTranslationAnimationDuration((int) mMaxClipRadius);
+        mCircularClipAnimator = ObjectAnimator.ofFloat(this, "circularClipRadius", toRadius);
+        mCircularClipAnimator.setDuration(duration);
+        mCircularClipAnimator.setInterpolator(BakedBezierInterpolator.INSTANCE);
+        mCircularClipAnimator.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                mCircularClipEnabled = false;
+                if (postRunnable != null) {
+                    postRunnable.run();
+                }
+            }
+        });
+        mCircularClipAnimator.start();
+        mCircularClipEnabled = true;
+
+        if (animateInContent) {
+            animateAppInfoButtonIn(duration);
+        }
+    }
+
+    /** Cancels the circular clip animation. */
+    void cancelCircularClipAnimation() {
+        if (mCircularClipAnimator != null) {
+            mCircularClipAnimator.cancel();
+        }
+    }
+
+    void animateAppInfoButtonIn(int duration) {
+        mAppInfoButton.setScaleX(0.75f);
+        mAppInfoButton.setScaleY(0.75f);
+        mAppInfoButton.animate()
+                .scaleX(1f)
+                .scaleY(1f)
+                .setDuration(duration)
+                .setInterpolator(BakedBezierInterpolator.INSTANCE)
+                .withLayer()
+                .start();
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        int saveCount = 0;
+        if (mCircularClipEnabled) {
+            saveCount = canvas.save(Canvas.CLIP_SAVE_FLAG);
+            mClipPath.reset();
+            mClipPath.addCircle(mClipOrigin.x, mClipOrigin.y, mClipRadius * mMaxClipRadius,
+                    Path.Direction.CW);
+            canvas.clipPath(mClipPath);
+        }
+        super.draw(canvas);
+        if (mCircularClipEnabled) {
+            canvas.restoreToCount(saveCount);
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
index e7f517f..ee92b16 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
@@ -18,14 +18,15 @@
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.animation.ValueAnimator;
 import android.app.Activity;
-import android.app.ActivityManager;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.Rect;
 import android.graphics.Region;
+import android.util.Pair;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.VelocityTracker;
@@ -34,6 +35,8 @@
 import android.view.ViewParent;
 import android.widget.FrameLayout;
 import android.widget.OverScroller;
+import com.android.systemui.R;
+import com.android.systemui.recents.BakedBezierInterpolator;
 import com.android.systemui.recents.Console;
 import com.android.systemui.recents.Constants;
 import com.android.systemui.recents.RecentsConfiguration;
@@ -41,19 +44,20 @@
 import com.android.systemui.recents.Utilities;
 import com.android.systemui.recents.model.Task;
 import com.android.systemui.recents.model.TaskStack;
-import com.android.systemui.R;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 
 
 /* The visual representation of a task stack view */
 public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCallbacks,
         TaskView.TaskViewCallbacks, ViewPool.ViewPoolConsumer<TaskView, Task>,
-        View.OnClickListener {
+        View.OnClickListener, View.OnLongClickListener {
 
     /** The TaskView callbacks */
     interface TaskStackViewCallbacks {
         public void onTaskLaunched(TaskStackView stackView, TaskView tv, TaskStack stack, Task t);
+        public void onTaskAppInfoLaunched(Task t);
     }
 
     TaskStack mStack;
@@ -71,6 +75,8 @@
     int mStackScroll;
     int mMinScroll;
     int mMaxScroll;
+    int mStashedScroll;
+    int mLastInfoPaneStackScroll;
     OverScroller mScroller;
     ObjectAnimator mScrollAnimator;
 
@@ -79,6 +85,9 @@
     int mStackViewsAnimationDuration;
     boolean mStackViewsDirty = true;
     boolean mAwaitingFirstLayout = true;
+    int[] mTmpVisibleRange = new int[2];
+    Rect mTmpRect = new Rect();
+    Rect mTmpRect2 = new Rect();
     LayoutInflater mInflater;
 
     public TaskStackView(Context context, TaskStack stack) {
@@ -102,7 +111,7 @@
     }
     void requestSynchronizeStackViewsWithModel(int duration) {
         Console.log(Constants.DebugFlags.TaskStack.SynchronizeViewsWithModel,
-                "[TaskStackView|requestSynchronize]", "", Console.AnsiYellow);
+                "[TaskStackView|requestSynchronize]", "" + duration + "ms", Console.AnsiYellow);
         if (!mStackViewsDirty) {
             invalidate();
         }
@@ -128,14 +137,17 @@
     }
 
     /** Update/get the transform */
-    public TaskViewTransform getStackTransform(int indexInStack) {
+    public TaskViewTransform getStackTransform(int indexInStack, int stackScroll) {
         TaskViewTransform transform = new TaskViewTransform();
 
-        // Map the items to an continuous position relative to the current scroll
+        // Return early if we have an invalid index
+        if (indexInStack < 0) return transform;
+
+        // Map the items to an continuous position relative to the specified scroll
         int numPeekCards = Constants.Values.TaskStackView.StackPeekNumCards;
         float overlapHeight = Constants.Values.TaskStackView.StackOverlapPct * mTaskRect.height();
         float peekHeight = Constants.Values.TaskStackView.StackPeekHeightPct * mStackRect.height();
-        float t = ((indexInStack * overlapHeight) - getStackScroll()) / overlapHeight;
+        float t = ((indexInStack * overlapHeight) - stackScroll) / overlapHeight;
         float boundedT = Math.max(t, -(numPeekCards + 1));
 
         // Set the scale relative to its position
@@ -160,32 +172,69 @@
             transform.visible = false;
         } else {
             transform.rect.offset(0, transform.translationY);
-            Utilities.scaleRectAboutCenter(transform.rect, scale);
+            Utilities.scaleRectAboutCenter(transform.rect, transform.scale);
             transform.visible = Rect.intersects(mRect, transform.rect);
         }
         transform.t = t;
         return transform;
     }
 
+    /**
+     * Gets the stack transforms of a list of tasks, and returns the visible range of tasks.
+     */
+    private ArrayList<TaskViewTransform> getStackTransforms(ArrayList<Task> tasks,
+                                                            int stackScroll,
+                                                            int[] visibleRangeOut,
+                                                            boolean boundTranslationsToRect) {
+        // XXX: Optimization: Use binary search to find the visible range
+
+        ArrayList<TaskViewTransform> taskTransforms = new ArrayList<TaskViewTransform>();
+        int taskCount = tasks.size();
+        int firstVisibleIndex = -1;
+        int lastVisibleIndex = -1;
+        for (int i = 0; i < taskCount; i++) {
+            TaskViewTransform transform = getStackTransform(i, stackScroll);
+            taskTransforms.add(transform);
+            if (transform.visible) {
+                if (firstVisibleIndex < 0) {
+                    firstVisibleIndex = i;
+                }
+                lastVisibleIndex = i;
+            }
+
+            if (boundTranslationsToRect) {
+                transform.translationY = Math.min(transform.translationY, mRect.bottom);
+            }
+        }
+        if (visibleRangeOut != null) {
+            visibleRangeOut[0] = firstVisibleIndex;
+            visibleRangeOut[1] = lastVisibleIndex;
+        }
+        return taskTransforms;
+    }
+
     /** Synchronizes the views with the model */
     void synchronizeStackViewsWithModel() {
         Console.log(Constants.DebugFlags.TaskStack.SynchronizeViewsWithModel,
                 "[TaskStackView|synchronizeViewsWithModel]",
                 "mStackViewsDirty: " + mStackViewsDirty, Console.AnsiYellow);
         if (mStackViewsDirty) {
-
-            // XXX: Optimization: Use binary search to find the visible range
-            // XXX: Optimize to not call getStackTransform() so many times
             // XXX: Consider using TaskViewTransform pool to prevent allocations
             // XXX: Iterate children views, update transforms and remove all that are not visible
             //      For all remaining tasks, update transforms and if visible add the view
 
-            // Update the visible state of all the tasks
+            // Get all the task transforms
+            int[] visibleRange = mTmpVisibleRange;
+            int stackScroll = getStackScroll();
             ArrayList<Task> tasks = mStack.getTasks();
+            ArrayList<TaskViewTransform> taskTransforms = getStackTransforms(tasks, stackScroll,
+                    visibleRange, false);
+
+            // Update the visible state of all the tasks
             int taskCount = tasks.size();
             for (int i = 0; i < taskCount; i++) {
                 Task task = tasks.get(i);
-                TaskViewTransform transform = getStackTransform(i);
+                TaskViewTransform transform = taskTransforms.get(i);
                 TaskView tv = getChildViewForTask(task);
 
                 if (transform.visible) {
@@ -194,11 +243,10 @@
                         // When we are picking up a new view from the view pool, prepare it for any
                         // following animation by putting it in a reasonable place
                         if (mStackViewsAnimationDuration > 0 && i != 0) {
-                            // XXX: We have to animate when filtering, etc. Maybe we should have a
-                            //      runnable that ensures that tasks are animated in a special way
-                            //      when they are entering the scene?
-                            int fromIndex = (transform.t < 0) ? (i - 1) : (i + 1);
-                            tv.updateViewPropertiesFromTask(null, getStackTransform(fromIndex), 0);
+                            int fromIndex = (transform.t < 0) ? (visibleRange[0] - 1) :
+                                    (visibleRange[1] + 1);
+                            tv.updateViewPropertiesToTaskTransform(null,
+                                    getStackTransform(fromIndex, stackScroll), 0);
                         }
                     }
                 } else {
@@ -208,17 +256,18 @@
                 }
             }
 
-            // Update all the current view children
+            // Update all the remaining view children
             // NOTE: We have to iterate in reverse where because we are removing views directly
             int childCount = getChildCount();
             for (int i = childCount - 1; i >= 0; i--) {
                 TaskView tv = (TaskView) getChildAt(i);
                 Task task = tv.getTask();
-                TaskViewTransform transform = getStackTransform(mStack.indexOfTask(task));
-                if (!transform.visible) {
+                int taskIndex = mStack.indexOfTask(task);
+                if (taskIndex < 0 || !taskTransforms.get(taskIndex).visible) {
                     mViewPool.returnViewToPool(tv);
                 } else {
-                    tv.updateViewPropertiesFromTask(null, transform, mStackViewsAnimationDuration);
+                    tv.updateViewPropertiesToTaskTransform(null, taskTransforms.get(taskIndex),
+                            mStackViewsAnimationDuration);
                 }
             }
 
@@ -234,6 +283,21 @@
     public void setStackScroll(int value) {
         mStackScroll = value;
         requestSynchronizeStackViewsWithModel();
+
+        // Close any open info panes if the user has scrolled away from them
+        boolean isAnimatingScroll = (mScrollAnimator != null && mScrollAnimator.isRunning());
+        if (mLastInfoPaneStackScroll > -1 && !isAnimatingScroll) {
+            RecentsConfiguration config = RecentsConfiguration.getInstance();
+            if (Math.abs(mStackScroll - mLastInfoPaneStackScroll) >
+                    config.taskStackScrollDismissInfoPaneDistance) {
+                // Close any open info panes
+                closeOpenInfoPanes();
+            }
+        }
+    }
+    /** Sets the current stack scroll without synchronizing the stack view with the model */
+    public void setStackScrollRaw(int value) {
+        mStackScroll = value;
     }
 
     /** Gets the current stack scroll */
@@ -242,41 +306,53 @@
     }
 
     /** Animates the stack scroll into bounds */
-    ObjectAnimator animateBoundScroll(int duration) {
+    ObjectAnimator animateBoundScroll() {
         int curScroll = getStackScroll();
         int newScroll = Math.max(mMinScroll, Math.min(mMaxScroll, curScroll));
         if (newScroll != curScroll) {
             // Enable hw layers on the stack
             addHwLayersRefCount("animateBoundScroll");
 
-            // Abort any current animations
-            abortScroller();
-            if (mScrollAnimator != null) {
-                mScrollAnimator.cancel();
-                mScrollAnimator.removeAllListeners();
-            }
-
             // Start a new scroll animation
-            mScrollAnimator = ObjectAnimator.ofInt(this, "stackScroll", curScroll, newScroll);
-            mScrollAnimator.setDuration(duration);
-            mScrollAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            animateScroll(curScroll, newScroll, new Runnable() {
                 @Override
-                public void onAnimationUpdate(ValueAnimator animation) {
-                    setStackScroll((Integer) animation.getAnimatedValue());
-                }
-            });
-            mScrollAnimator.addListener(new AnimatorListenerAdapter() {
-                @Override
-                public void onAnimationEnd(Animator animation) {
+                public void run() {
                     // Disable hw layers on the stack
                     decHwLayersRefCount("animateBoundScroll");
                 }
             });
-            mScrollAnimator.start();
         }
         return mScrollAnimator;
     }
 
+    /** Animates the stack scroll */
+    void animateScroll(int curScroll, int newScroll, final Runnable postRunnable) {
+        // Abort any current animations
+        abortScroller();
+        abortBoundScrollAnimation();
+
+        mScrollAnimator = ObjectAnimator.ofInt(this, "stackScroll", curScroll, newScroll);
+        mScrollAnimator.setDuration(Utilities.calculateTranslationAnimationDuration(newScroll -
+                curScroll, 250));
+        mScrollAnimator.setInterpolator(BakedBezierInterpolator.INSTANCE);
+        mScrollAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                setStackScroll((Integer) animation.getAnimatedValue());
+            }
+        });
+        mScrollAnimator.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                if (postRunnable != null) {
+                    postRunnable.run();
+                }
+                mScrollAnimator.removeAllListeners();
+            }
+        });
+        mScrollAnimator.start();
+    }
+
     /** Aborts any current stack scrolls */
     void abortBoundScrollAnimation() {
         if (mScrollAnimator != null) {
@@ -284,6 +360,7 @@
         }
     }
 
+    /** Aborts the scroller and any current fling */
     void abortScroller() {
         if (!mScroller.isFinished()) {
             // Abort the scroller
@@ -304,6 +381,20 @@
         return false;
     }
 
+    /**
+     * Bounds the current scroll if necessary, but does not synchronize the stack view with the
+     * model.
+     */
+    public boolean boundScrollRaw() {
+        int curScroll = getStackScroll();
+        int newScroll = Math.max(mMinScroll, Math.min(mMaxScroll, curScroll));
+        if (newScroll != curScroll) {
+            setStackScrollRaw(newScroll);
+            return true;
+        }
+        return false;
+    }
+
     /** Returns whether the current scroll is out of bounds */
     boolean isScrollOutOfBounds() {
         return (getStackScroll() < 0) || (getStackScroll() > mMaxScroll);
@@ -317,8 +408,14 @@
         int stackHeight = mStackRectSansPeek.height();
         int maxScrollHeight = taskHeight + (int) ((numTasks - 1) *
                 Constants.Values.TaskStackView.StackOverlapPct * taskHeight);
-        mMinScroll = Math.min(stackHeight, maxScrollHeight) - stackHeight;
-        mMaxScroll = maxScrollHeight - stackHeight;
+
+        if (numTasks <= 1) {
+            // If there is only one task, then center the task in the stack rect (sans peek)
+            mMinScroll = mMaxScroll = -(stackHeight - taskHeight) / 2;
+        } else {
+            mMinScroll = Math.min(stackHeight, maxScrollHeight) - stackHeight;
+            mMaxScroll = maxScrollHeight - stackHeight;
+        }
 
         // Debug logging
         if (Constants.DebugFlags.UI.MeasureAndLayout) {
@@ -331,6 +428,21 @@
         }
     }
 
+    /** Closes any open info panes. */
+    boolean closeOpenInfoPanes() {
+        if (!Constants.DebugFlags.App.EnableInfoPane) return false;
+
+        int childCount = getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            TaskView tv = (TaskView) getChildAt(i);
+            if (tv.isInfoPaneVisible()) {
+                tv.hideInfoPane();
+                return true;
+            }
+        }
+        return false;
+    }
+
     /** Enables the hw layers and increments the hw layer requirement ref count */
     void addHwLayersRefCount(String reason) {
         Console.log(Constants.DebugFlags.UI.HwLayers,
@@ -404,12 +516,12 @@
             TaskView tv = (TaskView) child;
             TaskView nextTv = null;
             int curIndex = indexOfChild(tv);
-            if (curIndex < (getChildCount() - 1)) {
+            if ((curIndex > -1) && (curIndex < (getChildCount() - 1))) {
                 // Clip against the next view (if we aren't animating its alpha)
                 nextTv = (TaskView) getChildAt(curIndex + 1);
                 if (nextTv.getAlpha() == 1f) {
-                    Rect curRect = tv.getClippingRect(Utilities.tmpRect, false);
-                    Rect nextRect = nextTv.getClippingRect(Utilities.tmpRect2, true);
+                    Rect curRect = tv.getClippingRect(mTmpRect);
+                    Rect nextRect = nextTv.getClippingRect(mTmpRect2);
                     RecentsConfiguration config = RecentsConfiguration.getInstance();
                     // The hit rects are relative to the task view, which needs to be offset by the
                     // system bar height
@@ -452,9 +564,9 @@
         int minHeight = (int) (mStackRect.height() -
                 (Constants.Values.TaskStackView.StackPeekHeightPct * mStackRect.height()));
         int size = Math.min(minHeight, Math.min(mStackRect.width(), mStackRect.height()));
-        int centerX = mStackRect.centerX();
-        mTaskRect.set(centerX - size / 2, mStackRectSansPeek.top,
-                centerX + size / 2, mStackRectSansPeek.top + size);
+        int left = mStackRect.left + (mStackRect.width() - size) / 2;
+        mTaskRect.set(left, mStackRectSansPeek.top,
+                left + size, mStackRectSansPeek.top + size);
 
         // Update the scroll bounds
         updateMinMaxScroll(false);
@@ -487,8 +599,9 @@
             requestSynchronizeStackViewsWithModel();
             synchronizeStackViewsWithModel();
 
-            // Animate the icon of the first task view
-            if (Constants.Values.TaskView.AnimateFrontTaskIconOnEnterRecents) {
+            // Animate the task bar of the first task view
+            if (config.launchedWithThumbnailAnimation &&
+                    Constants.Values.TaskView.AnimateFrontTaskBarOnEnterRecents) {
                 TaskView tv = (TaskView) getChildAt(getChildCount() - 1);
                 if (tv != null) {
                     tv.animateOnEnterRecents();
@@ -528,9 +641,7 @@
                     mTaskRect.right, mStackRectSansPeek.top + mTaskRect.height());
         }
 
-        if (!mAwaitingFirstLayout) {
-            requestSynchronizeStackViewsWithModel();
-        } else {
+        if (mAwaitingFirstLayout) {
             mAwaitingFirstLayout = false;
         }
     }
@@ -566,17 +677,203 @@
         }
 
         updateMinMaxScroll(true);
-        requestSynchronizeStackViewsWithModel(Constants.Values.TaskStackView.Animation.TaskRemovedReshuffleDuration);
+        int movement = (int) (Constants.Values.TaskStackView.StackOverlapPct * mTaskRect.height());
+        requestSynchronizeStackViewsWithModel(Utilities.calculateTranslationAnimationDuration(movement));
+    }
+
+    /**
+     * Creates the animations for all the children views that need to be removed or to move views
+     * to their un/filtered position when we are un/filtering a stack, and returns the duration
+     * for these animations.
+     */
+    int getExitTransformsForFilterAnimation(ArrayList<Task> curTasks,
+                        ArrayList<TaskViewTransform> curTaskTransforms,
+                        ArrayList<Task> tasks, ArrayList<TaskViewTransform> taskTransforms,
+                        HashMap<TaskView, Pair<Integer, TaskViewTransform>> childViewTransformsOut,
+                        ArrayList<TaskView> childrenToRemoveOut,
+                        RecentsConfiguration config) {
+        // Animate all of the existing views out of view (if they are not in the visible range in
+        // the new stack) or to their final positions in the new stack
+        int movement = 0;
+        int childCount = getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            TaskView tv = (TaskView) getChildAt(i);
+            Task task = tv.getTask();
+            int taskIndex = tasks.indexOf(task);
+            TaskViewTransform toTransform;
+
+            // If the view is no longer visible, then we should just animate it out
+            boolean willBeInvisible = taskIndex < 0 || !taskTransforms.get(taskIndex).visible;
+            if (willBeInvisible) {
+                if (taskIndex < 0) {
+                    toTransform = curTaskTransforms.get(curTasks.indexOf(task));
+                } else {
+                    toTransform = new TaskViewTransform(taskTransforms.get(taskIndex));
+                }
+                tv.prepareTaskTransformForFilterTaskVisible(toTransform);
+                childrenToRemoveOut.add(tv);
+            } else {
+                toTransform = taskTransforms.get(taskIndex);
+                // Use the movement of the visible views to calculate the duration of the animation
+                movement = Math.max(movement, Math.abs(toTransform.translationY -
+                        (int) tv.getTranslationY()));
+            }
+            childViewTransformsOut.put(tv, new Pair(0, toTransform));
+        }
+        return Utilities.calculateTranslationAnimationDuration(movement,
+                config.filteringCurrentViewsMinAnimDuration);
+    }
+
+    /**
+     * Creates the animations for all the children views that need to be animated in when we are
+     * un/filtering a stack, and returns the duration for these animations.
+     */
+    int getEnterTransformsForFilterAnimation(ArrayList<Task> tasks,
+                         ArrayList<TaskViewTransform> taskTransforms,
+                         HashMap<TaskView, Pair<Integer, TaskViewTransform>> childViewTransformsOut,
+                         RecentsConfiguration config) {
+        int offset = 0;
+        int movement = 0;
+        int taskCount = tasks.size();
+        for (int i = taskCount - 1; i >= 0; i--) {
+            Task task = tasks.get(i);
+            TaskViewTransform toTransform = taskTransforms.get(i);
+            if (toTransform.visible) {
+                TaskView tv = getChildViewForTask(task);
+                if (tv == null) {
+                    // For views that are not already visible, animate them in
+                    tv = mViewPool.pickUpViewFromPool(task, task);
+
+                    // Compose a new transform to fade and slide the new task in
+                    TaskViewTransform fromTransform = new TaskViewTransform(toTransform);
+                    tv.prepareTaskTransformForFilterTaskHidden(fromTransform);
+                    tv.updateViewPropertiesToTaskTransform(null, fromTransform, 0);
+
+                    int startDelay = offset *
+                            Constants.Values.TaskStackView.FilterStartDelay;
+                    childViewTransformsOut.put(tv, new Pair(startDelay, toTransform));
+
+                    // Use the movement of the new views to calculate the duration of the animation
+                    movement = Math.max(movement,
+                            Math.abs(toTransform.translationY - fromTransform.translationY));
+                    offset++;
+                }
+            }
+        }
+        return Utilities.calculateTranslationAnimationDuration(movement,
+                config.filteringNewViewsMinAnimDuration);
+    }
+
+    /** Orchestrates the animations of the current child views and any new views. */
+    void doFilteringAnimation(ArrayList<Task> curTasks,
+                              ArrayList<TaskViewTransform> curTaskTransforms,
+                              final ArrayList<Task> tasks,
+                              final ArrayList<TaskViewTransform> taskTransforms) {
+        final RecentsConfiguration config = RecentsConfiguration.getInstance();
+
+        // Calculate the transforms to animate out all the existing views if they are not in the
+        // new visible range (or to their final positions in the stack if they are)
+        final ArrayList<TaskView> childrenToRemove = new ArrayList<TaskView>();
+        final HashMap<TaskView, Pair<Integer, TaskViewTransform>> childViewTransforms =
+                new HashMap<TaskView, Pair<Integer, TaskViewTransform>>();
+        int duration = getExitTransformsForFilterAnimation(curTasks, curTaskTransforms, tasks,
+                taskTransforms, childViewTransforms, childrenToRemove, config);
+
+        // If all the current views are in the visible range of the new stack, then don't wait for
+        // views to animate out and animate all the new views into their place
+        final boolean unifyNewViewAnimation = childrenToRemove.isEmpty();
+        if (unifyNewViewAnimation) {
+            int inDuration = getEnterTransformsForFilterAnimation(tasks, taskTransforms,
+                    childViewTransforms, config);
+            duration = Math.max(duration, inDuration);
+        }
+
+        // Animate all the views to their final transforms
+        for (final TaskView tv : childViewTransforms.keySet()) {
+            Pair<Integer, TaskViewTransform> t = childViewTransforms.get(tv);
+            tv.animate().cancel();
+            tv.animate()
+                    .setStartDelay(t.first)
+                    .withEndAction(new Runnable() {
+                        @Override
+                        public void run() {
+                            childViewTransforms.remove(tv);
+                            if (childViewTransforms.isEmpty()) {
+                                // Return all the removed children to the view pool
+                                for (TaskView tv : childrenToRemove) {
+                                    mViewPool.returnViewToPool(tv);
+                                }
+
+                                if (!unifyNewViewAnimation) {
+                                    // For views that are not already visible, animate them in
+                                    childViewTransforms.clear();
+                                    int duration = getEnterTransformsForFilterAnimation(tasks,
+                                            taskTransforms, childViewTransforms, config);
+                                    for (final TaskView tv : childViewTransforms.keySet()) {
+                                        Pair<Integer, TaskViewTransform> t = childViewTransforms.get(tv);
+                                        tv.animate().setStartDelay(t.first);
+                                        tv.updateViewPropertiesToTaskTransform(null, t.second, duration);
+                                    }
+                                }
+                            }
+                        }
+                    });
+            tv.updateViewPropertiesToTaskTransform(null, t.second, duration);
+        }
     }
 
     @Override
-    public void onStackFiltered(TaskStack stack) {
-        requestSynchronizeStackViewsWithModel();
+    public void onStackFiltered(TaskStack newStack, final ArrayList<Task> curTasks,
+                                Task filteredTask) {
+        // Close any open info panes
+        closeOpenInfoPanes();
+
+        // Stash the scroll and filtered task for us to restore to when we unfilter
+        mStashedScroll = getStackScroll();
+
+        // Calculate the current task transforms
+        ArrayList<TaskViewTransform> curTaskTransforms =
+                getStackTransforms(curTasks, getStackScroll(), null, true);
+
+        // Scroll the item to the top of the stack (sans-peek) rect so that we can see it better
+        updateMinMaxScroll(false);
+        float overlapHeight = Constants.Values.TaskStackView.StackOverlapPct * mTaskRect.height();
+        setStackScrollRaw((int) (newStack.indexOfTask(filteredTask) * overlapHeight));
+        boundScrollRaw();
+
+        // Compute the transforms of the items in the new stack after setting the new scroll
+        final ArrayList<Task> tasks = mStack.getTasks();
+        final ArrayList<TaskViewTransform> taskTransforms =
+                getStackTransforms(mStack.getTasks(), getStackScroll(), null, true);
+
+        // Animate
+        doFilteringAnimation(curTasks, curTaskTransforms, tasks, taskTransforms);
     }
 
     @Override
-    public void onStackUnfiltered(TaskStack stack) {
-        requestSynchronizeStackViewsWithModel();
+    public void onStackUnfiltered(TaskStack newStack, final ArrayList<Task> curTasks) {
+        // Close any open info panes
+        closeOpenInfoPanes();
+
+        // Calculate the current task transforms
+        final ArrayList<TaskViewTransform> curTaskTransforms =
+                getStackTransforms(curTasks, getStackScroll(), null, true);
+
+        // Restore the stashed scroll
+        updateMinMaxScroll(false);
+        setStackScrollRaw(mStashedScroll);
+        boundScrollRaw();
+
+        // Compute the transforms of the items in the new stack after restoring the stashed scroll
+        final ArrayList<Task> tasks = mStack.getTasks();
+        final ArrayList<TaskViewTransform> taskTransforms =
+                getStackTransforms(tasks, getStackScroll(), null, true);
+
+        // Animate
+        doFilteringAnimation(curTasks, curTaskTransforms, tasks, taskTransforms);
+
+        // Clear the saved vars
+        mStashedScroll = 0;
     }
 
     /**** ViewPoolConsumer Implementation ****/
@@ -637,6 +934,9 @@
 
             // Set the callbacks and listeners for this new view
             tv.setOnClickListener(this);
+            if (Constants.DebugFlags.App.EnableInfoPane) {
+                tv.setOnLongClickListener(this);
+            }
             tv.setCallbacks(this);
         } else {
             attachViewToParent(tv, insertIndex, tv.getLayoutParams());
@@ -671,6 +971,24 @@
         }
     }
 
+    @Override
+    public void onTaskInfoPanelShown(TaskView tv) {
+        // Do nothing
+    }
+
+    @Override
+    public void onTaskInfoPanelHidden(TaskView tv) {
+        // Unset the saved scroll
+        mLastInfoPaneStackScroll = -1;
+    }
+
+    @Override
+    public void onTaskAppInfoClicked(TaskView tv) {
+        if (mCb != null) {
+            mCb.onTaskAppInfoLaunched(tv.getTask());
+        }
+    }
+
     /**** View.OnClickListener Implementation ****/
 
     @Override
@@ -680,10 +998,51 @@
         Console.log(Constants.DebugFlags.UI.ClickEvents, "[TaskStack|Clicked|Thumbnail]",
                 task + " cb: " + mCb);
 
+        // Close any open info panes if the user taps on another task
+        if (closeOpenInfoPanes()) {
+            return;
+        }
+
         if (mCb != null) {
             mCb.onTaskLaunched(this, tv, mStack, task);
         }
     }
+
+    @Override
+    public boolean onLongClick(View v) {
+        if (!Constants.DebugFlags.App.EnableInfoPane) return false;
+
+        TaskView tv = (TaskView) v;
+
+        // Close any other task info panels if we launch another info pane
+        closeOpenInfoPanes();
+
+        // Scroll the task view so that it is maximally visible
+        float overlapHeight = Constants.Values.TaskStackView.StackOverlapPct * mTaskRect.height();
+        int taskIndex = mStack.indexOfTask(tv.getTask());
+        int curScroll = getStackScroll();
+        int newScroll = (int) Math.max(mMinScroll, Math.min(mMaxScroll, taskIndex * overlapHeight));
+        TaskViewTransform transform = getStackTransform(taskIndex, curScroll);
+        Rect nonOverlapRect = new Rect(transform.rect);
+        if (taskIndex < (mStack.getTaskCount() - 1)) {
+            nonOverlapRect.bottom = nonOverlapRect.top + (int) overlapHeight;
+        }
+
+        // XXX: Use HW Layers
+        if (transform.t < 0f) {
+            animateScroll(curScroll, newScroll, null);
+        } else if (nonOverlapRect.bottom > mStackRectSansPeek.bottom) {
+            // Check if we are out of bounds, if so, just scroll it in such that the bottom of the
+            // task view is visible
+            newScroll = curScroll - (mStackRectSansPeek.bottom - nonOverlapRect.bottom);
+            animateScroll(curScroll, newScroll, null);
+        }
+        mLastInfoPaneStackScroll = newScroll;
+
+        // Show the info pane for this task view
+        tv.showInfoPane(new Rect(0, 0, 0, (int) overlapHeight));
+        return true;
+    }
 }
 
 /* Handles touch events */
@@ -825,7 +1184,7 @@
             case MotionEvent.ACTION_CANCEL:
             case MotionEvent.ACTION_UP: {
                 // Animate the scroll back if we've cancelled
-                mSv.animateBoundScroll(Constants.Values.TaskStackView.Animation.SnapScrollBackDuration);
+                mSv.animateBoundScroll();
                 // Disable HW layers
                 if (mIsScrolling) {
                     mSv.decHwLayersRefCount("stackScroll");
@@ -845,7 +1204,7 @@
 
     /** Handles touch events once we have intercepted them */
     public boolean onTouchEvent(MotionEvent ev) {
-        Console.log(Constants.DebugFlags.TaskStack.SynchronizeViewsWithModel,
+        Console.log(Constants.DebugFlags.UI.TouchEvents,
                 "[TaskStackViewTouchHandler|touchEvent]",
                 Console.motionEventActionToString(ev.getAction()), Console.AnsiBlue);
 
@@ -898,9 +1257,10 @@
                 int activePointerIndex = ev.findPointerIndex(mActivePointerId);
                 int x = (int) ev.getX(activePointerIndex);
                 int y = (int) ev.getY(activePointerIndex);
+                int yTotal = Math.abs(y - mInitialMotionY);
                 int deltaY = mLastMotionY - y;
                 if (!mIsScrolling) {
-                    if (Math.abs(y - mInitialMotionY) > mScrollTouchSlop) {
+                    if (yTotal > mScrollTouchSlop) {
                         mIsScrolling = true;
                         // Initialize the velocity tracker
                         initOrResetVelocityTracker();
@@ -955,7 +1315,7 @@
                 } else if (mSv.isScrollOutOfBounds()) {
                     // Animate the scroll back into bounds
                     // XXX: Make this animation a function of the velocity OR distance
-                    mSv.animateBoundScroll(Constants.Values.TaskStackView.Animation.SnapScrollBackDuration);
+                    mSv.animateBoundScroll();
                 }
 
                 if (mIsScrolling) {
@@ -989,7 +1349,7 @@
                 if (mSv.isScrollOutOfBounds()) {
                     // Animate the scroll back into bounds
                     // XXX: Make this animation a function of the velocity OR distance
-                    mSv.animateBoundScroll(Constants.Values.TaskStackView.Animation.SnapScrollBackDuration);
+                    mSv.animateBoundScroll();
                 }
                 mActivePointerId = INACTIVE_POINTER_ID;
                 mIsScrolling = false;
@@ -1022,6 +1382,13 @@
         if (parent != null) {
             parent.requestDisallowInterceptTouchEvent(true);
         }
+        // If the info panel is currently showing on this view, then we need to dismiss it
+        if (Constants.DebugFlags.App.EnableInfoPane) {
+            TaskView tv = (TaskView) v;
+            if (tv.isInfoPaneVisible()) {
+                tv.hideInfoPane();
+            }
+        }
     }
 
     @Override
@@ -1038,16 +1405,19 @@
         loader.deleteTaskData(task);
 
         // Remove the task from activity manager
-        final ActivityManager am = (ActivityManager)
-                activity.getSystemService(Context.ACTIVITY_SERVICE);
-        if (am != null) {
-            am.removeTask(tv.getTask().key.id,
-                    ActivityManager.REMOVE_TASK_KILL_PROCESS);
-        }
+        RecentsTaskLoader.getInstance().getSystemServicesProxy().removeTask(tv.getTask().key.id);
 
-        // If there are no remaining tasks, then just close the activity
+        // If there are no remaining tasks, then either unfilter the current stack, or just close
+        // the activity if there are no filtered stacks
         if (mSv.mStack.getTaskCount() == 0) {
-            activity.finish();
+            boolean shouldFinishActivity = true;
+            if (mSv.mStack.hasFilteredTasks()) {
+                mSv.mStack.unfilterTasks();
+                shouldFinishActivity = (mSv.mStack.getTaskCount() == 0);
+            }
+            if (shouldFinishActivity) {
+                activity.finish();
+            }
         }
 
         // Disable HW layers
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index c86b0e1..d3b79d6 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -16,39 +16,55 @@
 
 package com.android.systemui.recents.views;
 
+import android.animation.TimeInterpolator;
+import android.animation.ValueAnimator;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.Path;
+import android.graphics.Point;
 import android.graphics.Rect;
 import android.graphics.RectF;
 import android.util.AttributeSet;
+import android.view.MotionEvent;
 import android.view.View;
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.view.animation.DecelerateInterpolator;
+import android.view.animation.AccelerateInterpolator;
 import android.widget.FrameLayout;
 import com.android.systemui.R;
+import com.android.systemui.recents.BakedBezierInterpolator;
 import com.android.systemui.recents.Constants;
 import com.android.systemui.recents.RecentsConfiguration;
+import com.android.systemui.recents.Utilities;
 import com.android.systemui.recents.model.Task;
 
 
 /* A task view */
-public class TaskView extends FrameLayout implements View.OnClickListener, Task.TaskCallbacks {
+public class TaskView extends FrameLayout implements View.OnClickListener,
+        Task.TaskCallbacks {
     /** The TaskView callbacks */
     interface TaskViewCallbacks {
         public void onTaskIconClicked(TaskView tv);
+        public void onTaskInfoPanelShown(TaskView tv);
+        public void onTaskInfoPanelHidden(TaskView tv);
+        public void onTaskAppInfoClicked(TaskView tv);
+
         // public void onTaskViewReboundToTask(TaskView tv, Task t);
     }
 
+    int mDim;
+    int mMaxDim;
+    TimeInterpolator mDimInterpolator = new AccelerateInterpolator();
+
     Task mTask;
     boolean mTaskDataLoaded;
+    boolean mTaskInfoPaneVisible;
+    Point mLastTouchDown = new Point();
+    Path mRoundedRectClipPath = new Path();
 
     TaskThumbnailView mThumbnailView;
     TaskBarView mBarView;
+    TaskInfoView mInfoView;
     TaskViewCallbacks mCb;
 
-    Path mRoundedRectClipPath = new Path();
-
 
     public TaskView(Context context) {
         this(context, null);
@@ -69,9 +85,14 @@
 
     @Override
     protected void onFinishInflate() {
+        RecentsConfiguration config = RecentsConfiguration.getInstance();
+        mMaxDim = config.taskStackMaxDim;
+
         // Bind the views
         mThumbnailView = (TaskThumbnailView) findViewById(R.id.task_view_thumbnail);
         mBarView = (TaskBarView) findViewById(R.id.task_view_bar);
+        mInfoView = (TaskInfoView) findViewById(R.id.task_view_info_pane);
+
         if (mTaskDataLoaded) {
             onTaskDataLoaded(false);
         }
@@ -83,19 +104,21 @@
 
         // Update the rounded rect clip path
         RecentsConfiguration config = RecentsConfiguration.getInstance();
-        float radius = config.pxFromDp(Constants.Values.TaskView.RoundedCornerRadiusDps);
+        float radius = config.taskViewRoundedCornerRadiusPx;
         mRoundedRectClipPath.reset();
         mRoundedRectClipPath.addRoundRect(new RectF(0, 0, getMeasuredWidth(), getMeasuredHeight()),
                 radius, radius, Path.Direction.CW);
     }
 
     @Override
-    protected void onDraw(Canvas canvas) {
-        if (Constants.Values.TaskView.UseRoundedCorners) {
-            canvas.clipPath(mRoundedRectClipPath);
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        switch (ev.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+            case MotionEvent.ACTION_MOVE:
+                mLastTouchDown.set((int) ev.getX(), (int) ev.getY());
+                break;
         }
-
-        super.onDraw(canvas);
+        return super.onInterceptTouchEvent(ev);
     }
 
     /** Set callback */
@@ -109,25 +132,37 @@
     }
 
     /** Synchronizes this view's properties with the task's transform */
-    void updateViewPropertiesFromTask(TaskViewTransform animateFromTransform,
-                                      TaskViewTransform transform, int duration) {
+    void updateViewPropertiesToTaskTransform(TaskViewTransform animateFromTransform,
+                                             TaskViewTransform toTransform, int duration) {
         if (duration > 0) {
             if (animateFromTransform != null) {
                 setTranslationY(animateFromTransform.translationY);
                 setScaleX(animateFromTransform.scale);
                 setScaleY(animateFromTransform.scale);
+                setAlpha(animateFromTransform.alpha);
             }
-            animate().translationY(transform.translationY)
-                    .scaleX(transform.scale)
-                    .scaleY(transform.scale)
+            animate().translationY(toTransform.translationY)
+                    .scaleX(toTransform.scale)
+                    .scaleY(toTransform.scale)
+                    .alpha(toTransform.alpha)
                     .setDuration(duration)
-                    .setInterpolator(new AccelerateDecelerateInterpolator())
+                    .setInterpolator(BakedBezierInterpolator.INSTANCE)
+                    .withLayer()
+                    .setUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+                        @Override
+                        public void onAnimationUpdate(ValueAnimator animation) {
+                            updateDimOverlayFromScale();
+                        }
+                    })
                     .start();
         } else {
-            setTranslationY(transform.translationY);
-            setScaleX(transform.scale);
-            setScaleY(transform.scale);
+            setTranslationY(toTransform.translationY);
+            setScaleX(toTransform.scale);
+            setScaleY(toTransform.scale);
+            setAlpha(toTransform.alpha);
         }
+        updateDimOverlayFromScale();
+        invalidate();
     }
 
     /** Resets this view's properties */
@@ -137,6 +172,26 @@
         setScaleX(1f);
         setScaleY(1f);
         setAlpha(1f);
+        invalidate();
+    }
+
+    /**
+     * When we are un/filtering, this method will set up the transform that we are animating to,
+     * in order to hide the task.
+     */
+    void prepareTaskTransformForFilterTaskHidden(TaskViewTransform toTransform) {
+        // Fade the view out and slide it away
+        toTransform.alpha = 0f;
+        toTransform.translationY += 200;
+    }
+
+    /**
+     * When we are un/filtering, this method will setup the transform that we are animating from,
+     * in order to show the task.
+     */
+    void prepareTaskTransformForFilterTaskVisible(TaskViewTransform fromTransform) {
+        // Fade the view in
+        fromTransform.alpha = 0f;
     }
 
     /** Animates this task view as it enters recents */
@@ -155,7 +210,8 @@
                 .translationX(0)
                 .translationY(0)
                 .setStartDelay(235)
-                .setDuration(Constants.Values.TaskView.Animation.TaskIconOnEnterDuration)
+                .setInterpolator(BakedBezierInterpolator.INSTANCE)
+                .setDuration(config.taskBarEnterAnimDuration)
                 .withLayer()
                 .start();
     }
@@ -171,29 +227,84 @@
             .translationX(translate / 2)
             .translationY(-translate)
             .setStartDelay(0)
-            .setDuration(Constants.Values.TaskView.Animation.TaskIconOnLeavingDuration)
-            .setInterpolator(new DecelerateInterpolator())
+            .setInterpolator(BakedBezierInterpolator.INSTANCE)
+            .setDuration(Utilities.calculateTranslationAnimationDuration(translate))
             .withLayer()
-            .withEndAction(r)
+            .withEndAction(new Runnable() {
+                @Override
+                public void run() {
+                    post(r);
+                }
+            })
             .start();
     }
 
     /** Returns the rect we want to clip (it may not be the full rect) */
-    Rect getClippingRect(Rect outRect, boolean accountForRoundedRects) {
+    Rect getClippingRect(Rect outRect) {
         getHitRect(outRect);
         // XXX: We should get the hit rect of the thumbnail view and intersect, but this is faster
         outRect.right = outRect.left + mThumbnailView.getRight();
         outRect.bottom = outRect.top + mThumbnailView.getBottom();
-        // We need to shrink the next rect by the rounded corners since those are draw on
-        // top of the current view
-        if (accountForRoundedRects) {
-            RecentsConfiguration config = RecentsConfiguration.getInstance();
-            float radius = config.pxFromDp(Constants.Values.TaskView.RoundedCornerRadiusDps);
-            outRect.inset((int) radius, (int) radius);
-        }
         return outRect;
     }
 
+    /** Returns whether this task has an info pane visible */
+    boolean isInfoPaneVisible() {
+        return mTaskInfoPaneVisible;
+    }
+
+    /** Shows the info pane if it is not visible. */
+    void showInfoPane(Rect taskVisibleRect) {
+        if (mTaskInfoPaneVisible) return;
+
+        // Remove the bar view from the visible rect and update the info pane contents
+        taskVisibleRect.top += mBarView.getMeasuredHeight();
+        mInfoView.updateContents(taskVisibleRect);
+
+        // Show the info pane and animate it into view
+        mInfoView.setVisibility(View.VISIBLE);
+        mInfoView.animateCircularClip(mLastTouchDown, 0f, 1f, null, true);
+        mInfoView.setOnClickListener(this);
+        mTaskInfoPaneVisible = true;
+
+        // Notify any callbacks
+        if (mCb != null) {
+            mCb.onTaskInfoPanelShown(this);
+        }
+    }
+
+    /** Hides the info pane if it is visible. */
+    void hideInfoPane() {
+        if (!mTaskInfoPaneVisible) return;
+        RecentsConfiguration config = RecentsConfiguration.getInstance();
+
+        // Cancel any circular clip animation
+        mInfoView.cancelCircularClipAnimation();
+
+        // Animate the info pane out
+        mInfoView.animate()
+                .alpha(0f)
+                .setDuration(config.taskViewInfoPaneAnimDuration)
+                .setInterpolator(BakedBezierInterpolator.INSTANCE)
+                .withLayer()
+                .withEndAction(new Runnable() {
+                    @Override
+                    public void run() {
+                        mInfoView.setVisibility(View.INVISIBLE);
+                        mInfoView.setOnClickListener(null);
+
+                        mInfoView.setAlpha(1f);
+                    }
+                })
+                .start();
+        mTaskInfoPaneVisible = false;
+
+        // Notify any callbacks
+        if (mCb != null) {
+            mCb.onTaskInfoPanelHidden(this);
+        }
+    }
+
     /** Enable the hw layers on this task view */
     void enableHwLayers() {
         mThumbnailView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
@@ -204,6 +315,29 @@
         mThumbnailView.setLayerType(View.LAYER_TYPE_NONE, null);
     }
 
+    /** Update the dim as a function of the scale of this view. */
+    void updateDimOverlayFromScale() {
+        float minScale = Constants.Values.TaskStackView.StackPeekMinScale;
+        float scaleRange = 1f - minScale;
+        float dim = (1f - getScaleX()) / scaleRange;
+        dim = mDimInterpolator.getInterpolation(Math.min(dim, 1f));
+        mDim = Math.max(0, Math.min(mMaxDim, (int) (dim * 255)));
+        invalidate();
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        // Apply the rounded rect clip path on the whole view
+        canvas.clipPath(mRoundedRectClipPath);
+
+        super.draw(canvas);
+
+        // Apply the dim if necessary
+        if (mDim > 0) {
+            canvas.drawColor(mDim << 24);
+        }
+    }
+
     /**** TaskCallbacks Implementation ****/
 
     /** Binds this task view to the task */
@@ -214,27 +348,39 @@
 
     @Override
     public void onTaskDataLoaded(boolean reloadingTaskData) {
-        if (mThumbnailView != null && mBarView != null) {
+        if (mThumbnailView != null && mBarView != null && mInfoView != null) {
             // Bind each of the views to the new task data
             mThumbnailView.rebindToTask(mTask, reloadingTaskData);
             mBarView.rebindToTask(mTask, reloadingTaskData);
+            // Rebind any listeners
+            mBarView.mApplicationIcon.setOnClickListener(this);
+            mInfoView.mAppInfoButton.setOnClickListener(this);
         }
         mTaskDataLoaded = true;
     }
 
     @Override
     public void onTaskDataUnloaded() {
-        if (mThumbnailView != null && mBarView != null) {
+        if (mThumbnailView != null && mBarView != null && mInfoView != null) {
             // Unbind each of the views from the task data and remove the task callback
             mTask.setCallbacks(null);
             mThumbnailView.unbindFromTask();
             mBarView.unbindFromTask();
+            // Unbind any listeners
+            mBarView.mApplicationIcon.setOnClickListener(null);
+            mInfoView.mAppInfoButton.setOnClickListener(null);
         }
         mTaskDataLoaded = false;
     }
 
     @Override
     public void onClick(View v) {
-        mCb.onTaskIconClicked(this);
+        if (v == mInfoView) {
+            // Do nothing
+        } else if (v == mBarView.mApplicationIcon) {
+            mCb.onTaskIconClicked(this);
+        } else if (v == mInfoView.mAppInfoButton) {
+            mCb.onTaskAppInfoClicked(this);
+        }
     }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewTransform.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewTransform.java
index 66c52a0..0748bbb 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewTransform.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewTransform.java
@@ -23,13 +23,27 @@
 public class TaskViewTransform {
     public int translationY = 0;
     public float scale = 1f;
-    public boolean visible = true;
+    public float alpha = 1f;
+    public boolean visible = false;
     public Rect rect = new Rect();
     float t;
 
+    public TaskViewTransform() {
+        // Do nothing
+    }
+
+    public TaskViewTransform(TaskViewTransform o) {
+        translationY = o.translationY;
+        scale = o.scale;
+        alpha = o.alpha;
+        visible = o.visible;
+        rect.set(o.rect);
+        t = o.t;
+    }
+
     @Override
     public String toString() {
-        return "TaskViewTransform y: " + translationY + " scale: " + scale +
+        return "TaskViewTransform y: " + translationY + " scale: " + scale + " alpha: " + alpha +
                 " visible: " + visible + " rect: " + rect;
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/settings/ToggleSeekBar.java b/packages/SystemUI/src/com/android/systemui/settings/ToggleSeekBar.java
new file mode 100644
index 0000000..a0a5561
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/settings/ToggleSeekBar.java
@@ -0,0 +1,45 @@
+/*
+ * 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.android.systemui.settings;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.widget.SeekBar;
+
+public class ToggleSeekBar extends SeekBar {
+    public ToggleSeekBar(Context context) {
+        super(context);
+    }
+
+    public ToggleSeekBar(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public ToggleSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        if (!isEnabled()) {
+            setEnabled(true);
+        }
+
+        return super.onTouchEvent(event);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java b/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java
index d584043..7d38058 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java
@@ -19,20 +19,18 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.RelativeLayout;
 import android.widget.SeekBar;
+import android.widget.SeekBar.OnSeekBarChangeListener;
 import android.widget.TextView;
 
 import com.android.systemui.R;
 
-public class ToggleSlider extends RelativeLayout
-        implements CompoundButton.OnCheckedChangeListener, SeekBar.OnSeekBarChangeListener {
-    private static final String TAG = "StatusBar.ToggleSlider";
-
+public class ToggleSlider extends RelativeLayout {
     public interface Listener {
         public void onInit(ToggleSlider v);
         public void onChanged(ToggleSlider v, boolean tracking, boolean checked, int value);
@@ -55,20 +53,21 @@
 
     public ToggleSlider(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
+
         View.inflate(context, R.layout.status_bar_toggle_slider, this);
 
         final Resources res = context.getResources();
-        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ToggleSlider,
-                defStyle, 0);
+        final TypedArray a = context.obtainStyledAttributes(
+                attrs, R.styleable.ToggleSlider, defStyle, 0);
 
-        mToggle = (CompoundButton)findViewById(R.id.toggle);
-        mToggle.setOnCheckedChangeListener(this);
-        mToggle.setBackgroundDrawable(res.getDrawable(R.drawable.status_bar_toggle_button));
+        mToggle = (CompoundButton) findViewById(R.id.toggle);
+        mToggle.setOnCheckedChangeListener(mCheckListener);
+        mToggle.setBackground(res.getDrawable(R.drawable.status_bar_toggle_button));
 
-        mSlider = (SeekBar)findViewById(R.id.slider);
-        mSlider.setOnSeekBarChangeListener(this);
+        mSlider = (SeekBar) findViewById(R.id.slider);
+        mSlider.setOnSeekBarChangeListener(mSeekListener);
 
-        mLabel = (TextView)findViewById(R.id.label);
+        mLabel = (TextView) findViewById(R.id.label);
         mLabel.setText(a.getString(R.styleable.ToggleSlider_text));
 
         a.recycle();
@@ -82,50 +81,6 @@
         }
     }
 
-    public void onCheckedChanged(CompoundButton toggle, boolean checked) {
-        Drawable thumb;
-        Drawable slider;
-        final Resources res = getContext().getResources();
-        if (checked) {
-            thumb = res.getDrawable(
-                    com.android.internal.R.drawable.scrubber_control_disabled_holo);
-            slider = res.getDrawable(
-                    R.drawable.status_bar_settings_slider_disabled);
-        } else {
-            thumb = res.getDrawable(
-                    com.android.internal.R.drawable.scrubber_control_selector_holo);
-            slider = res.getDrawable(
-                    com.android.internal.R.drawable.scrubber_progress_horizontal_holo_dark);
-        }
-        mSlider.setThumb(thumb);
-        mSlider.setProgressDrawable(slider);
-
-        if (mListener != null) {
-            mListener.onChanged(this, mTracking, checked, mSlider.getProgress());
-        }
-    }
-
-    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-        if (mListener != null) {
-            mListener.onChanged(this, mTracking, mToggle.isChecked(), progress);
-        }
-    }
-
-    public void onStartTrackingTouch(SeekBar seekBar) {
-        mTracking = true;
-        if (mListener != null) {
-            mListener.onChanged(this, mTracking, mToggle.isChecked(), mSlider.getProgress());
-        }
-        mToggle.setChecked(false);
-    }
-
-    public void onStopTrackingTouch(SeekBar seekBar) {
-        mTracking = false;
-        if (mListener != null) {
-            mListener.onChanged(this, mTracking, mToggle.isChecked(), mSlider.getProgress());
-        }
-    }
-
     public void setOnChangedListener(Listener l) {
         mListener = l;
     }
@@ -145,5 +100,49 @@
     public void setValue(int value) {
         mSlider.setProgress(value);
     }
+
+    private final OnCheckedChangeListener mCheckListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton toggle, boolean checked) {
+            mSlider.setEnabled(!checked);
+
+            if (mListener != null) {
+                mListener.onChanged(
+                        ToggleSlider.this, mTracking, checked, mSlider.getProgress());
+            }
+        }
+    };
+
+    private final OnSeekBarChangeListener mSeekListener = new OnSeekBarChangeListener() {
+        @Override
+        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+            if (mListener != null) {
+                mListener.onChanged(
+                        ToggleSlider.this, mTracking, mToggle.isChecked(), progress);
+            }
+        }
+
+        @Override
+        public void onStartTrackingTouch(SeekBar seekBar) {
+            mTracking = true;
+
+            if (mListener != null) {
+                mListener.onChanged(
+                        ToggleSlider.this, mTracking, mToggle.isChecked(), mSlider.getProgress());
+            }
+
+            mToggle.setChecked(false);
+        }
+
+        @Override
+        public void onStopTrackingTouch(SeekBar seekBar) {
+            mTracking = false;
+
+            if (mListener != null) {
+                mListener.onChanged(
+                        ToggleSlider.this, mTracking, mToggle.isChecked(), mSlider.getProgress());
+            }
+        }
+    };
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/settings/UserSwitcherHostView.java b/packages/SystemUI/src/com/android/systemui/settings/UserSwitcherHostView.java
new file mode 100644
index 0000000..87ebcc1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/settings/UserSwitcherHostView.java
@@ -0,0 +1,172 @@
+/*
+ * 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.android.systemui.settings;
+
+import com.android.systemui.R;
+
+import android.app.ActivityManagerNative;
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.RemoteException;
+import android.os.UserManager;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManagerGlobal;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+/**
+ * A quick and dirty view to show a user switcher.
+ */
+public class UserSwitcherHostView extends FrameLayout implements ListView.OnItemClickListener {
+
+    private static final String TAG = "UserSwitcherDialog";
+
+    private ArrayList<UserInfo> mUserInfo = new ArrayList<UserInfo>();
+    private Adapter mAdapter = new Adapter();
+    private UserManager mUserManager;
+    private Runnable mFinishRunnable;
+    private ListView mListView;
+
+    public UserSwitcherHostView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+
+        if (isInEditMode()) {
+            return;
+        }
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+    }
+
+    public UserSwitcherHostView(Context context, AttributeSet attrs) {
+        this(context, attrs, com.android.internal.R.attr.listViewStyle);
+    }
+
+    public UserSwitcherHostView(Context context) {
+        this(context, null);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mListView = (ListView) findViewById(android.R.id.list);
+        mListView.setAdapter(mAdapter);
+        mListView.setOnItemClickListener(this);
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> l, View v, int position, long id) {
+        int userId = mAdapter.getItem(position).id;
+        try {
+            WindowManagerGlobal.getWindowManagerService().lockNow(null);
+            ActivityManagerNative.getDefault().switchUser(userId);
+            finish();
+        } catch (RemoteException e) {
+            Log.e(TAG, "Couldn't switch user.", e);
+        }
+    }
+
+    private void finish() {
+        if (mFinishRunnable != null) {
+            mFinishRunnable.run();
+        }
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        if (event.getAction() == MotionEvent.ACTION_UP) {
+            finish();
+        }
+        return true;
+    }
+
+    @Override
+    protected void onVisibilityChanged(View changedView, int visibility) {
+        super.onVisibilityChanged(changedView, visibility);
+        // A gross hack to get rid of the switcher when the shade is collapsed.
+        if (visibility != VISIBLE) {
+            finish();
+        }
+    }
+
+    public void setFinishRunnable(Runnable finishRunnable) {
+        mFinishRunnable = finishRunnable;
+    }
+
+    public void refreshUsers() {
+        mUserInfo.clear();
+        mUserInfo.addAll(mUserManager.getUsers(true));
+        mAdapter.notifyDataSetChanged();
+    }
+
+    private class Adapter extends BaseAdapter {
+
+        @Override
+        public int getCount() {
+            return mUserInfo.size();
+        }
+
+        @Override
+        public UserInfo getItem(int position) {
+            return mUserInfo.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return getItem(position).serialNumber;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            if (convertView == null || (!(convertView.getTag() instanceof ViewHolder))) {
+                convertView = createView(parent);
+            }
+            ViewHolder h = (ViewHolder) convertView.getTag();
+            bindView(h, getItem(position));
+            return convertView;
+        }
+
+        private View createView(ViewGroup parent) {
+            View v = LayoutInflater.from(getContext()).inflate(
+                    R.layout.user_switcher_item, parent, false);
+            ViewHolder h = new ViewHolder();
+            h.name = (TextView) v.findViewById(R.id.user_name);
+            h.picture = (ImageView) v.findViewById(R.id.user_picture);
+            v.setTag(h);
+            return v;
+        }
+
+        private void bindView(ViewHolder h, UserInfo item) {
+            h.name.setText(item.name);
+            h.picture.setImageBitmap(mUserManager.getUserIcon(item.id));
+        }
+
+        class ViewHolder {
+            TextView name;
+            ImageView picture;
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 117ae81..2ea5add 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -29,14 +29,9 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.UserInfo;
-import android.content.res.ColorStateList;
 import android.content.res.Configuration;
 import android.database.ContentObserver;
-import android.graphics.Color;
-import android.graphics.PorterDuff;
 import android.graphics.Rect;
-import android.graphics.drawable.AnimationDrawable;
-import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Build;
@@ -52,14 +47,10 @@
 import android.service.dreams.DreamService;
 import android.service.dreams.IDreamManager;
 import android.service.notification.StatusBarNotification;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
 import android.text.TextUtils;
-import android.text.style.TextAppearanceSpan;
 import android.util.Log;
 import android.util.SparseArray;
 import android.util.SparseBooleanArray;
-import android.view.ContextThemeWrapper;
 import android.view.Display;
 import android.view.IWindowManager;
 import android.view.LayoutInflater;
@@ -70,7 +61,6 @@
 import android.view.ViewGroup.LayoutParams;
 import android.view.WindowManager;
 import android.view.WindowManagerGlobal;
-import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.PopupMenu;
@@ -80,21 +70,20 @@
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.statusbar.StatusBarIcon;
 import com.android.internal.statusbar.StatusBarIconList;
+import com.android.internal.util.LegacyNotificationUtil;
 import com.android.internal.widget.SizeAdaptiveLayout;
-import com.android.systemui.ImageUtils;
 import com.android.systemui.R;
 import com.android.systemui.RecentsComponent;
 import com.android.systemui.SearchPanelView;
 import com.android.systemui.SystemUI;
 import com.android.systemui.statusbar.phone.KeyguardTouchDelegate;
-import com.android.systemui.statusbar.policy.NotificationRowLayout;
+import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
 import java.util.ArrayList;
 import java.util.Locale;
-import java.util.Stack;
 
 public abstract class BaseStatusBar extends SystemUI implements
-        CommandQueue.Callbacks {
+        CommandQueue.Callbacks, LatestItemView.OnActivatedListener {
     public static final String TAG = "StatusBar";
     public static final boolean DEBUG = false;
     public static final boolean MULTIUSER_DEBUG = false;
@@ -120,16 +109,13 @@
     public static final int EXPANDED_LEAVE_ALONE = -10000;
     public static final int EXPANDED_FULL_OPEN = -10001;
 
-    private static final String EXTRA_INTERCEPT = "android.intercept";
-    private static final float INTERCEPTED_ALPHA = .2f;
-
     protected CommandQueue mCommandQueue;
     protected IStatusBarService mBarService;
     protected H mHandler = createHandler();
 
     // all notifications
     protected NotificationData mNotificationData = new NotificationData();
-    protected NotificationRowLayout mPile;
+    protected NotificationStackScrollLayout mStackScroller;
 
     protected NotificationData.Entry mInterruptingNotificationEntry;
     protected long mInterruptingNotificationTime;
@@ -143,7 +129,7 @@
     protected PopupMenu mNotificationBlamePopup;
 
     protected int mCurrentUserId = 0;
-    final protected SparseArray<UserInfo> mRelatedUsers = new SparseArray<UserInfo>();
+    final protected SparseArray<UserInfo> mCurrentProfiles = new SparseArray<UserInfo>();
 
     protected int mLayoutDirection = -1; // invalid
     private Locale mLocale;
@@ -152,13 +138,13 @@
 
     protected IDreamManager mDreamManager;
     PowerManager mPowerManager;
-    protected int mRowHeight;
+    protected int mRowMinHeight;
+    protected int mRowMaxHeight;
 
     // public mode, private notifications, etc
     private boolean mLockscreenPublicMode = false;
     private final SparseBooleanArray mUsersAllowingPrivateNotifications = new SparseBooleanArray();
-    private Context mLightThemeContext;
-    private ImageUtils mImageUtils = new ImageUtils();
+    private LegacyNotificationUtil mLegacyNotificationUtil = LegacyNotificationUtil.getInstance();
 
     private UserManager mUserManager;
 
@@ -182,9 +168,8 @@
 
     protected int mZenMode;
 
-    public IStatusBarService getStatusBarService() {
-        return mBarService;
-    }
+    protected boolean mOnKeyguard;
+    protected NotificationOverflowContainer mKeyguardIconOverflowContainer;
 
     public boolean isDeviceProvisioned() {
         return mDeviceProvisioned;
@@ -254,21 +239,21 @@
             String action = intent.getAction();
             if (Intent.ACTION_USER_SWITCHED.equals(action)) {
                 mCurrentUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1);
-                updateRelatedUserCache();
+                updateCurrentProfilesCache();
                 if (true) Log.v(TAG, "userId " + mCurrentUserId + " is in the house");
                 userSwitched(mCurrentUserId);
             } else if (Intent.ACTION_USER_ADDED.equals(action)) {
-                updateRelatedUserCache();
+                updateCurrentProfilesCache();
             }
         }
     };
 
-    private void updateRelatedUserCache() {
-        synchronized (mRelatedUsers) {
-            mRelatedUsers.clear();
+    private void updateCurrentProfilesCache() {
+        synchronized (mCurrentProfiles) {
+            mCurrentProfiles.clear();
             if (mUserManager != null) {
-                for (UserInfo related : mUserManager.getRelatedUsers(mCurrentUserId)) {
-                    mRelatedUsers.put(related.id, related);
+                for (UserInfo user : mUserManager.getProfiles(mCurrentUserId)) {
+                    mCurrentProfiles.put(user.id, user);
                 }
             }
         }
@@ -296,8 +281,6 @@
                 true,
                 mLockscreenSettingsObserver,
                 UserHandle.USER_ALL);
-        mLightThemeContext = new RemoteViewsThemeContextWrapper(mContext,
-                android.R.style.Theme_Holo_Light);
 
         mBarService = IStatusBarService.Stub.asInterface(
                 ServiceManager.getService(Context.STATUS_BAR_SERVICE));
@@ -373,24 +356,23 @@
         filter.addAction(Intent.ACTION_USER_ADDED);
         mContext.registerReceiver(mBroadcastReceiver, filter);
 
-        updateRelatedUserCache();
+        updateCurrentProfilesCache();
     }
 
     public void userSwitched(int newUserId) {
         // should be overridden
     }
 
-    public boolean notificationIsForCurrentOrRelatedUser(StatusBarNotification n) {
+    public boolean notificationIsForCurrentProfiles(StatusBarNotification n) {
         final int thisUserId = mCurrentUserId;
         final int notificationUserId = n.getUserId();
         if (DEBUG && MULTIUSER_DEBUG) {
             Log.v(TAG, String.format("%s: current userid: %d, notification userid: %d",
                     n, thisUserId, notificationUserId));
         }
-        synchronized (mRelatedUsers) {
+        synchronized (mCurrentProfiles) {
             return notificationUserId == UserHandle.USER_ALL
-                    || thisUserId == notificationUserId
-                    || mRelatedUsers.get(notificationUserId) != null;
+                    || mCurrentProfiles.get(notificationUserId) != null;
         }
     }
 
@@ -440,9 +422,9 @@
     }
 
 
-    protected void applyLegacyRowBackground(StatusBarNotification sbn, View content) {
-        if (sbn.getNotification().contentView.getLayoutId() !=
-                com.android.internal.R.layout.notification_template_base) {
+    protected void applyLegacyRowBackground(StatusBarNotification sbn,
+            NotificationData.Entry entry) {
+        if (entry.expanded.getId() != com.android.internal.R.id.status_bar_latest_event_content) {
             int version = 0;
             try {
                 ApplicationInfo info = mContext.getPackageManager().getApplicationInfo(sbn.getPackageName(), 0);
@@ -451,165 +433,15 @@
                 Log.e(TAG, "Failed looking up ApplicationInfo for " + sbn.getPackageName(), ex);
             }
             if (version > 0 && version < Build.VERSION_CODES.GINGERBREAD) {
-                content.setBackgroundResource(R.drawable.notification_row_legacy_bg);
-            } else {
-                content.setBackgroundResource(com.android.internal.R.drawable.notification_bg);
+                entry.row.setBackgroundResource(R.drawable.notification_row_legacy_bg);
+            } else if (version < Build.VERSION_CODES.L) {
+                entry.row.setBackgroundResourceIds(
+                        com.android.internal.R.drawable.notification_bg,
+                        com.android.internal.R.drawable.notification_bg_dim);
             }
         }
     }
 
-    private void processLegacyHoloNotification(StatusBarNotification sbn, View content) {
-
-        // TODO: Also skip processing if it is a holo-style notification.
-        // If the notification is custom, we can't process it.
-        if (!sbn.getNotification().extras.getBoolean(Notification.EXTRA_BUILDER_REMOTE_VIEWS)) {
-            return;
-        }
-
-        processLegacyHoloLargeIcon(content);
-        processLegacyHoloActions(content);
-        processLegacyNotificationIcon(content);
-        processLegacyTextViews(content);
-    }
-
-    /**
-     * @return the context to be used for the inflation of the specified {@code sbn}; this is
-     *      dependent whether the notification is quantum-style or holo-style
-     */
-    private Context getInflationContext(StatusBarNotification sbn) {
-
-        // TODO: Adjust this logic when we change the theme of the status bar windows.
-        if (sbn.getNotification().extras.getBoolean(Notification.EXTRA_BUILDER_REMOTE_VIEWS)) {
-            return mLightThemeContext;
-        } else {
-            return mContext;
-        }
-    }
-
-    private void processLegacyNotificationIcon(View content) {
-        View v = content.findViewById(com.android.internal.R.id.right_icon);
-        if (v != null & v instanceof ImageView) {
-            ImageView iv = (ImageView) v;
-            Drawable d = iv.getDrawable();
-            if (isMonochrome(d)) {
-                d.mutate();
-                d.setColorFilter(mLightThemeContext.getResources().getColor(
-                        R.color.notification_action_legacy_color_filter), PorterDuff.Mode.MULTIPLY);
-            }
-        }
-    }
-
-    private void processLegacyHoloLargeIcon(View content) {
-        View v = content.findViewById(com.android.internal.R.id.icon);
-        if (v != null & v instanceof ImageView) {
-            ImageView iv = (ImageView) v;
-            if (isMonochrome(iv.getDrawable())) {
-                iv.setBackground(mLightThemeContext.getResources().getDrawable(
-                        R.drawable.notification_icon_legacy_bg_inset));
-            }
-        }
-    }
-
-    private boolean isMonochrome(Drawable d) {
-        if (d == null) {
-            return false;
-        } else if (d instanceof BitmapDrawable) {
-            BitmapDrawable bd = (BitmapDrawable) d;
-            return bd.getBitmap() != null && mImageUtils.isGrayscale(bd.getBitmap());
-        } else if (d instanceof AnimationDrawable) {
-            AnimationDrawable ad = (AnimationDrawable) d;
-            int count = ad.getNumberOfFrames();
-            return count > 0 && isMonochrome(ad.getFrame(0));
-        } else {
-            return false;
-        }
-    }
-
-    private void processLegacyHoloActions(View content) {
-        View v = content.findViewById(com.android.internal.R.id.actions);
-        if (v != null & v instanceof ViewGroup) {
-            ViewGroup vg = (ViewGroup) v;
-            int childCount = vg.getChildCount();
-            for (int i = 0; i < childCount; i++) {
-                View child = vg.getChildAt(i);
-                if (child instanceof Button) {
-                    Button button = (Button) child;
-                    Drawable[] compoundDrawables = button.getCompoundDrawablesRelative();
-                    if (isMonochrome(compoundDrawables[0])) {
-                        Drawable d = compoundDrawables[0];
-                        d.mutate();
-                        d.setColorFilter(mLightThemeContext.getResources().getColor(
-                                R.color.notification_action_legacy_color_filter),
-                                PorterDuff.Mode.MULTIPLY);
-                    }
-                }
-            }
-        }
-    }
-
-    private void processLegacyTextViews(View content) {
-        Stack<View> viewStack = new Stack<View>();
-        viewStack.push(content);
-        while(!viewStack.isEmpty()) {
-            View current = viewStack.pop();
-            if(current instanceof ViewGroup){
-                ViewGroup currentGroup = (ViewGroup) current;
-                int numChildren = currentGroup.getChildCount();
-                for(int i=0;i<numChildren;i++){
-                    viewStack.push(currentGroup.getChildAt(i));
-                }
-            }
-            if (current instanceof TextView) {
-                processLegacyTextView((TextView) current);
-            }
-        }
-    }
-
-    private void processLegacyTextView(TextView textView) {
-        if (textView.getText() instanceof Spanned) {
-            Spanned ss = (Spanned) textView.getText();
-            Object[] spans = ss.getSpans(0, ss.length(), Object.class);
-            SpannableStringBuilder builder = new SpannableStringBuilder(ss.toString());
-            for (Object span : spans) {
-                Object resultSpan = span;
-                if (span instanceof TextAppearanceSpan) {
-                    resultSpan = processTextAppearanceSpan((TextAppearanceSpan) span);
-                }
-                builder.setSpan(resultSpan, ss.getSpanStart(span), ss.getSpanEnd(span),
-                        ss.getSpanFlags(span));
-            }
-            textView.setText(builder);
-        }
-    }
-
-    private TextAppearanceSpan processTextAppearanceSpan(TextAppearanceSpan span) {
-        ColorStateList colorStateList = span.getTextColor();
-        if (colorStateList != null) {
-            int[] colors = colorStateList.getColors();
-            boolean changed = false;
-            for (int i = 0; i < colors.length; i++) {
-                if (mImageUtils.isGrayscale(colors[i])) {
-                    colors[i] = processColor(colors[i]);
-                    changed = true;
-                }
-            }
-            if (changed) {
-                return new TextAppearanceSpan(
-                        span.getFamily(), span.getTextStyle(), span.getTextSize(),
-                        new ColorStateList(colorStateList.getStates(), colors),
-                        span.getLinkTextColor());
-            }
-        }
-        return span;
-    }
-
-    private int processColor(int color) {
-        return Color.argb(Color.alpha(color),
-                255 - Color.red(color),
-                255 - Color.green(color),
-                255 - Color.blue(color));
-    }
-
     private void startApplicationDetailsActivity(String packageName) {
         Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                 Uri.fromParts("package", packageName, null));
@@ -947,10 +779,10 @@
         View contentViewLocal = null;
         View bigContentViewLocal = null;
         try {
-            contentViewLocal = contentView.apply(getInflationContext(sbn), expanded,
+            contentViewLocal = contentView.apply(mContext, expanded,
                     mOnClickHandler);
             if (bigContentView != null) {
-                bigContentViewLocal = bigContentView.apply(getInflationContext(sbn), expanded,
+                bigContentViewLocal = bigContentView.apply(mContext, expanded,
                         mOnClickHandler);
             }
         }
@@ -983,8 +815,8 @@
         View publicViewLocal = null;
         if (publicNotification != null) {
             try {
-                publicViewLocal = publicNotification.contentView.apply(getInflationContext(sbn),
-                        expandedPublic, mOnClickHandler);
+                publicViewLocal = publicNotification.contentView.apply(mContext, expandedPublic,
+                        mOnClickHandler);
 
                 if (publicViewLocal != null) {
                     publicViewLocal.setIsRootNamespace(true);
@@ -1005,7 +837,8 @@
         if (publicViewLocal == null) {
             // Add a basic notification template
             publicViewLocal = LayoutInflater.from(mContext).inflate(
-                    com.android.internal.R.layout.notification_template_base, expandedPublic, true);
+                    com.android.internal.R.layout.notification_template_quantum_base,
+                    expandedPublic, true);
 
             final TextView title = (TextView) publicViewLocal.findViewById(com.android.internal.R.id.title);
             try {
@@ -1024,7 +857,12 @@
                     entry.notification.getNotification().number,
                     entry.notification.getNotification().tickerText);
 
-            icon.setImageDrawable(StatusBarIconView.getIcon(mContext, ic));
+            Drawable iconDrawable = StatusBarIconView.getIcon(mContext, ic);
+            icon.setImageDrawable(iconDrawable);
+            if (mLegacyNotificationUtil.isGrayscale(iconDrawable)) {
+                icon.setBackgroundResource(
+                        com.android.internal.R.drawable.notification_icon_legacy_bg_inset);
+            }
 
             final TextView text = (TextView) publicViewLocal.findViewById(com.android.internal.R.id.text);
             text.setText("Unlock your device to see this notification.");
@@ -1034,15 +872,6 @@
 
         row.setDrawingCacheEnabled(true);
 
-        applyLegacyRowBackground(sbn, content);
-        processLegacyHoloNotification(sbn, contentViewLocal);
-        if (bigContentViewLocal != null) {
-            processLegacyHoloNotification(sbn, bigContentViewLocal);
-        }
-        if (publicViewLocal != null) {
-            processLegacyHoloNotification(sbn, publicViewLocal);
-        }
-
         if (MULTIUSER_DEBUG) {
             TextView debug = (TextView) row.findViewById(R.id.debug_info);
             if (debug != null) {
@@ -1051,12 +880,15 @@
             }
         }
         entry.row = row;
-        entry.row.setRowHeight(mRowHeight);
+        entry.row.setHeightRange(mRowMinHeight, mRowMaxHeight);
+        entry.row.setOnActivatedListener(this);
         entry.content = content;
         entry.expanded = contentViewLocal;
         entry.expandedPublic = publicViewLocal;
         entry.setBigContentView(bigContentViewLocal);
 
+        applyLegacyRowBackground(sbn, entry);
+
         return true;
     }
 
@@ -1138,7 +970,11 @@
         if (mPanelSlightlyVisible != visible) {
             mPanelSlightlyVisible = visible;
             try {
-                mBarService.onPanelRevealed();
+                if (visible) {
+                    mBarService.onPanelRevealed();
+                } else {
+                    mBarService.onPanelHidden();
+                }
             } catch (RemoteException ex) {
                 // Won't fail unless the world has ended.
             }
@@ -1170,7 +1006,7 @@
         // Remove the expanded view.
         ViewGroup rowParent = (ViewGroup)entry.row.getParent();
         if (rowParent != null) rowParent.removeView(entry.row);
-        updateExpansionStates();
+        updateRowStates();
         updateNotificationIcons();
 
         return entry.notification;
@@ -1199,7 +1035,7 @@
         }
         // Construct the expanded view.
         NotificationData.Entry entry = new NotificationData.Entry(key, notification, iconView);
-        if (!inflateViews(entry, mPile)) {
+        if (!inflateViews(entry, mStackScroller)) {
             handleNotificationError(key, notification, "Couldn't expand RemoteViews for: "
                     + notification);
             return null;
@@ -1213,8 +1049,7 @@
         if (DEBUG) {
             Log.d(TAG, "addNotificationViews: added at " + pos);
         }
-        updateInterceptedState(entry);
-        updateExpansionStates();
+        updateRowStates();
         updateNotificationIcons();
     }
 
@@ -1222,56 +1057,97 @@
         addNotificationViews(createNotificationViews(key, notification));
     }
 
-    protected void updateExpansionStates() {
-        int N = mNotificationData.size();
-        for (int i = 0; i < N; i++) {
+    /**
+     * @return The number of notifications we show on Keyguard.
+     */
+    protected abstract int getMaxKeyguardNotifications();
+
+    /**
+     * Updates expanded, dimmed and locked states of notification rows.
+     */
+    protected void updateRowStates() {
+        int maxKeyguardNotifications = getMaxKeyguardNotifications();
+        mKeyguardIconOverflowContainer.getIconsView().removeAllViews();
+        int n = mNotificationData.size();
+        int visibleNotifications = 0;
+        for (int i = n-1; i >= 0; i--) {
             NotificationData.Entry entry = mNotificationData.get(i);
-            if (!entry.row.isUserLocked()) {
-                if (i == (N-1)) {
-                    if (DEBUG) Log.d(TAG, "expanding top notification at " + i);
-                    entry.row.setExpanded(true);
-                } else {
-                    if (!entry.row.isUserExpanded()) {
-                        if (DEBUG) Log.d(TAG, "collapsing notification at " + i);
-                        entry.row.setExpanded(false);
-                    } else {
-                        if (DEBUG) Log.d(TAG, "ignoring user-modified notification at " + i);
-                    }
+            if (mOnKeyguard) {
+                entry.row.setSystemExpanded(false);
+            } else {
+                if (!entry.row.isUserLocked()) {
+                    boolean top = (i == n-1);
+                    entry.row.setSystemExpanded(top || entry.row.isUserExpanded());
+                }
+            }
+            entry.row.setDimmed(mOnKeyguard);
+            entry.row.setLocked(mOnKeyguard);
+            boolean showOnKeyguard = shouldShowOnKeyguard(entry.notification);
+            if (mOnKeyguard && (visibleNotifications >= maxKeyguardNotifications
+                    || !showOnKeyguard)) {
+                entry.row.setVisibility(View.GONE);
+                if (showOnKeyguard) {
+                    mKeyguardIconOverflowContainer.getIconsView().addNotification(entry);
                 }
             } else {
-                if (DEBUG) Log.d(TAG, "ignoring notification being held by user at " + i);
+                entry.row.setVisibility(View.VISIBLE);
+                visibleNotifications++;
             }
         }
+
+        if (mOnKeyguard && mKeyguardIconOverflowContainer.getIconsView().getChildCount() > 0) {
+            mKeyguardIconOverflowContainer.setVisibility(View.VISIBLE);
+        } else {
+            mKeyguardIconOverflowContainer.setVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    public void onActivated(View view) {
+        int n = mNotificationData.size();
+        for (int i = 0; i < n; i++) {
+            NotificationData.Entry entry = mNotificationData.get(i);
+            if (entry.row.getVisibility() != View.GONE) {
+                if (view == entry.row) {
+                    entry.row.getActivator().activate();
+                } else {
+                    entry.row.getActivator().activateInverse();
+                }
+            }
+        }
+        if (mKeyguardIconOverflowContainer.getVisibility() != View.GONE) {
+            if (view == mKeyguardIconOverflowContainer) {
+                mKeyguardIconOverflowContainer.getActivator().activate();
+            } else {
+                mKeyguardIconOverflowContainer.getActivator().activateInverse();
+            }
+        }
+    }
+
+    @Override
+    public void onReset(View view) {
+        int n = mNotificationData.size();
+        for (int i = 0; i < n; i++) {
+            NotificationData.Entry entry = mNotificationData.get(i);
+            if (entry.row.getVisibility() != View.GONE) {
+                entry.row.getActivator().reset();
+            }
+        }
+        if (mKeyguardIconOverflowContainer.getVisibility() != View.GONE) {
+            mKeyguardIconOverflowContainer.getActivator().reset();
+        }
+    }
+
+    private boolean shouldShowOnKeyguard(StatusBarNotification sbn) {
+        return sbn.getNotification().priority >= Notification.PRIORITY_LOW;
     }
 
     protected void setZenMode(int mode) {
         if (!isDeviceProvisioned()) return;
-        final boolean change = mZenMode != mode;
         mZenMode = mode;
-        final int N = mNotificationData.size();
-        for (int i = 0; i < N; i++) {
-            final NotificationData.Entry entry = mNotificationData.get(i);
-            if (change && !shouldIntercept()) {
-                entry.notification.getNotification().extras.putBoolean(EXTRA_INTERCEPT, false);
-            }
-            updateInterceptedState(entry);
-        }
         updateNotificationIcons();
     }
 
-    private boolean shouldIntercept() {
-        return mZenMode != Settings.Global.ZEN_MODE_OFF;
-    }
-
-    protected boolean shouldIntercept(Notification n) {
-        return shouldIntercept() && n.extras.getBoolean(EXTRA_INTERCEPT);
-    }
-
-    private void updateInterceptedState(NotificationData.Entry entry) {
-        final boolean intercepted = shouldIntercept(entry.notification.getNotification());
-        entry.row.findViewById(R.id.container).setAlpha(intercepted ? INTERCEPTED_ALPHA : 1);
-    }
-
     protected abstract void haltTicker();
     protected abstract void setAreThereNotifications();
     protected abstract void updateNotificationIcons();
@@ -1395,7 +1271,7 @@
                     handleNotificationError(key, notification, "Couldn't update icon: " + ic);
                     return;
                 }
-                updateExpansionStates();
+                updateRowStates();
             }
             catch (RuntimeException e) {
                 // It failed to add cleanly.  Log, and remove the view from the panel.
@@ -1408,13 +1284,14 @@
             if (DEBUG) Log.d(TAG, "contents was " + (contentsUnchanged ? "unchanged" : "changed"));
             if (DEBUG) Log.d(TAG, "order was " + (orderUnchanged ? "unchanged" : "changed"));
             if (DEBUG) Log.d(TAG, "notification is " + (isTopAnyway ? "top" : "not top"));
-            final boolean wasExpanded = oldEntry.row.isUserExpanded();
             removeNotificationViews(key);
             addNotificationViews(key, notification);  // will also replace the heads up
-            if (wasExpanded) {
-                final NotificationData.Entry newEntry = mNotificationData.findByKey(key);
-                newEntry.row.setExpanded(true);
-                newEntry.row.setUserExpanded(true);
+            final NotificationData.Entry newEntry = mNotificationData.findByKey(key);
+            final boolean userChangedExpansion = oldEntry.row.hasUserChangedExpansion();
+            if (userChangedExpansion) {
+                boolean userExpanded = oldEntry.row.isUserExpanded();
+                newEntry.row.applyExpansionToLayout(userExpanded);
+                newEntry.row.setUserExpanded(userExpanded);
             }
         }
 
@@ -1423,7 +1300,7 @@
         updateNotificationVetoButton(oldEntry.row, notification);
 
         // Is this for you?
-        boolean isForCurrentUser = notificationIsForCurrentOrRelatedUser(notification);
+        boolean isForCurrentUser = notificationIsForCurrentProfiles(notification);
         if (DEBUG) Log.d(TAG, "notification is " + (isForCurrentUser ? "" : "not ") + "for you");
 
         // Restart the ticker if it's still running
@@ -1458,17 +1335,13 @@
                 : null;
 
         // Reapply the RemoteViews
-        contentView.reapply(getInflationContext(notification), entry.expanded, mOnClickHandler);
-        processLegacyHoloNotification(notification, entry.expanded);
+        contentView.reapply(mContext, entry.expanded, mOnClickHandler);
         if (bigContentView != null && entry.getBigContentView() != null) {
-            bigContentView.reapply(getInflationContext(notification), entry.getBigContentView(),
+            bigContentView.reapply(mContext, entry.getBigContentView(),
                     mOnClickHandler);
-            processLegacyHoloNotification(notification, entry.getBigContentView());
         }
         if (publicContentView != null && entry.getPublicContentView() != null) {
-            publicContentView.reapply(getInflationContext(notification),
-                    entry.getPublicContentView(), mOnClickHandler);
-            processLegacyHoloNotification(notification, entry.getPublicContentView());
+            publicContentView.reapply(mContext, entry.getPublicContentView(), mOnClickHandler);
         }
         // update the contentIntent
         final PendingIntent contentIntent = notification.getNotification().contentIntent;
@@ -1480,7 +1353,6 @@
         } else {
             entry.content.setOnClickListener(null);
         }
-        updateInterceptedState(entry);
     }
 
     protected void notifyHeadsUpScreenOn(boolean screenOn) {
@@ -1506,7 +1378,7 @@
         boolean interrupt = (isFullscreen || (isHighPriority && (isNoisy || hasTicker)))
                 && isAllowed
                 && mPowerManager.isScreenOn()
-                && !keyguard.isShowingAndNotHidden()
+                && !keyguard.isShowingAndNotOccluded()
                 && !keyguard.isInputRestricted();
         try {
             interrupt = interrupt && !mDreamManager.isDreaming();
@@ -1539,35 +1411,4 @@
         }
         mContext.unregisterReceiver(mBroadcastReceiver);
     }
-
-    /**
-     * A custom context theme wrapper that applies a platform theme to a created package context.
-     * This is useful if you want to inflate {@link RemoteViews} with a custom theme (normally, the
-     * theme used there is the default platform theme).
-     */
-    private static class RemoteViewsThemeContextWrapper extends ContextThemeWrapper {
-
-        private int mThemeRes;
-
-        private RemoteViewsThemeContextWrapper(Context base, int themeres) {
-            super(base, themeres);
-            mThemeRes = themeres;
-        }
-
-        @Override
-        public Context createPackageContextAsUser(String packageName, int flags, UserHandle user)
-                throws NameNotFoundException {
-            Context c = super.createPackageContextAsUser(packageName, flags, user);
-            c.setTheme(mThemeRes);
-            return c;
-        }
-
-        @Override
-        public Context createPackageContext(String packageName, int flags)
-                throws NameNotFoundException {
-            Context c = super.createPackageContext(packageName, flags);
-            c.setTheme(mThemeRes);
-            return c;
-        }
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 39333d7..bbbe8fa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -21,6 +21,7 @@
 import android.os.Message;
 import android.service.notification.StatusBarNotification;
 
+import com.android.internal.policy.IKeyguardShowCallback;
 import com.android.internal.statusbar.IStatusBar;
 import com.android.internal.statusbar.StatusBarIcon;
 import com.android.internal.statusbar.StatusBarIconList;
@@ -98,6 +99,7 @@
         public void hideSearchPanel();
         public void cancelPreloadRecentApps();
         public void setWindowState(int window, int state);
+
     }
 
     public CommandQueue(Callbacks callbacks, StatusBarIconList list) {
@@ -232,6 +234,7 @@
         }
     }
 
+
     private final class H extends Handler {
         public void handleMessage(Message msg) {
             final int what = msg.what & MSG_MASK;
@@ -295,7 +298,7 @@
                     mCallbacks.topAppWindowChanged(msg.arg1 != 0);
                     break;
                 case MSG_SHOW_IME_BUTTON:
-                    mCallbacks.setImeWindowStatus((IBinder)msg.obj, msg.arg1, msg.arg2);
+                    mCallbacks.setImeWindowStatus((IBinder) msg.obj, msg.arg1, msg.arg2);
                     break;
                 case MSG_SET_HARD_KEYBOARD_STATUS:
                     mCallbacks.setHardKeyboardStatus(msg.arg1 != 0, msg.arg2 != 0);
@@ -312,6 +315,7 @@
                 case MSG_SET_WINDOW_STATE:
                     mCallbacks.setWindowState(msg.arg1, msg.arg2);
                     break;
+
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index b3d8688..fdf4dbf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -22,30 +22,58 @@
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
+import com.android.internal.widget.SizeAdaptiveLayout;
 import com.android.systemui.R;
 
-public class ExpandableNotificationRow extends FrameLayout {
-    private int mRowHeight;
+public class ExpandableNotificationRow extends FrameLayout
+        implements LatestItemView.OnActivatedListener {
+    private int mRowMinHeight;
+    private int mRowMaxHeight;
 
-    /** does this row contain layouts that can adapt to row expansion */
+    /** Does this row contain layouts that can adapt to row expansion */
     private boolean mExpandable;
-    /** has the user manually expanded this row */
+    /** Has the user actively changed the expansion state of this row */
+    private boolean mHasUserChangedExpansion;
+    /** If {@link #mHasUserChangedExpansion}, has the user expanded this row */
     private boolean mUserExpanded;
-    /** is the user touching this row */
+    /** Is the user touching this row */
     private boolean mUserLocked;
-    /** are we showing the "public" version */
+    /** Are we showing the "public" version */
     private boolean mShowingPublic;
 
+    private LatestItemView mLatestItemView;
+
+    /**
+     * Is this notification expanded by the system. The expansion state can be overridden by the
+     * user expansion.
+     */
+    private boolean mIsSystemExpanded;
+    private SizeAdaptiveLayout mPublicLayout;
+    private SizeAdaptiveLayout mPrivateLayout;
+    private int mMaxExpandHeight;
+    private boolean mMaxHeightNeedsUpdate;
+    private NotificationActivator mActivator;
+    private LatestItemView.OnActivatedListener mOnActivatedListener;
+
     public ExpandableNotificationRow(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
 
-    public int getRowHeight() {
-        return mRowHeight;
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mPublicLayout = (SizeAdaptiveLayout) findViewById(R.id.expandedPublic);
+        mPrivateLayout = (SizeAdaptiveLayout) findViewById(R.id.expanded);
+        mLatestItemView = (LatestItemView) findViewById(R.id.container);
+
+        mActivator = new NotificationActivator(this);
+        mLatestItemView.setOnActivatedListener(this);
     }
 
-    public void setRowHeight(int rowHeight) {
-        this.mRowHeight = rowHeight;
+    public void setHeightRange(int rowMinHeight, int rowMaxHeight) {
+        mRowMinHeight = rowMinHeight;
+        mRowMaxHeight = rowMaxHeight;
+        mMaxHeightNeedsUpdate = true;
     }
 
     public boolean isExpandable() {
@@ -56,11 +84,24 @@
         mExpandable = expandable;
     }
 
+    /**
+     * @return whether the user has changed the expansion state
+     */
+    public boolean hasUserChangedExpansion() {
+        return mHasUserChangedExpansion;
+    }
+
     public boolean isUserExpanded() {
         return mUserExpanded;
     }
 
+    /**
+     * Set this notification to be expanded by the user
+     *
+     * @param userExpanded whether the user wants this notification to be expanded
+     */
     public void setUserExpanded(boolean userExpanded) {
+        mHasUserChangedExpansion = true;
         mUserExpanded = userExpanded;
     }
 
@@ -72,25 +113,148 @@
         mUserLocked = userLocked;
     }
 
-    public void setExpanded(boolean expand) {
+    /**
+     * @return has the system set this notification to be expanded
+     */
+    public boolean isSystemExpanded() {
+        return mIsSystemExpanded;
+    }
+
+    /**
+     * Set this notification to be expanded by the system.
+     *
+     * @param expand whether the system wants this notification to be expanded.
+     */
+    public void setSystemExpanded(boolean expand) {
+        mIsSystemExpanded = expand;
+        applyExpansionToLayout(expand);
+    }
+
+    /**
+     * Apply an expansion state to the layout.
+     *
+     * @param expand should the layout be in the expanded state
+     */
+    public void applyExpansionToLayout(boolean expand) {
         ViewGroup.LayoutParams lp = getLayoutParams();
         if (expand && mExpandable) {
             lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
         } else {
-            lp.height = mRowHeight;
+            lp.height = mRowMinHeight;
         }
         setLayoutParams(lp);
     }
 
+    /**
+     * If {@link #isExpanded()} then this is the greatest possible height this view can
+     * get and otherwise it is {@link #mRowMinHeight}.
+     *
+     * @return the maximum allowed expansion height of this view.
+     */
+    public int getMaximumAllowedExpandHeight() {
+        boolean inExpansionState = isExpanded();
+        if (!inExpansionState) {
+            // not expanded, so we return the collapsed size
+            return mRowMinHeight;
+        }
+
+        return mShowingPublic ? mRowMinHeight : getMaxExpandHeight();
+    }
+
+    private void updateMaxExpandHeight() {
+        ViewGroup.LayoutParams lp = getLayoutParams();
+        int oldHeight = lp.height;
+        lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
+        setLayoutParams(lp);
+        measure(View.MeasureSpec.makeMeasureSpec(getMeasuredWidth(), View.MeasureSpec.EXACTLY),
+                View.MeasureSpec.makeMeasureSpec(mRowMaxHeight, View.MeasureSpec.AT_MOST));
+        lp.height = oldHeight;
+        setLayoutParams(lp);
+        mMaxExpandHeight = getMeasuredHeight();
+    }
+
+    /**
+     * Check whether the view state is currently expanded. This is given by the system in {@link
+     * #setSystemExpanded(boolean)} and can be overridden by user expansion or
+     * collapsing in {@link #setUserExpanded(boolean)}. Note that the visual appearance of this
+     * view can differ from this state, if layout params are modified from outside.
+     *
+     * @return whether the view state is currently expanded.
+     */
+    private boolean isExpanded() {
+        return !hasUserChangedExpansion() && isSystemExpanded() || isUserExpanded();
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        super.onLayout(changed, left, top, right, bottom);
+        mMaxHeightNeedsUpdate = true;
+    }
+
     public void setShowingPublic(boolean show) {
         mShowingPublic = show;
-        final ViewGroup publicLayout = (ViewGroup) findViewById(R.id.expandedPublic);
 
         // bail out if no public version
-        if (publicLayout.getChildCount() == 0) return;
+        if (mPublicLayout.getChildCount() == 0) return;
 
         // TODO: animation?
-        publicLayout.setVisibility(show ? View.VISIBLE : View.GONE);
-        findViewById(R.id.expanded).setVisibility(show ? View.GONE : View.VISIBLE);
+        mPublicLayout.setVisibility(show ? View.VISIBLE : View.GONE);
+        mPrivateLayout.setVisibility(show ? View.GONE : View.VISIBLE);
+    }
+
+    /**
+     * Sets the notification as dimmed, meaning that it will appear in a more gray variant.
+     */
+    public void setDimmed(boolean dimmed) {
+        mLatestItemView.setDimmed(dimmed);
+        mActivator.setDimmed(dimmed);
+    }
+
+    public int getMaxExpandHeight() {
+        if (mMaxHeightNeedsUpdate) {
+            updateMaxExpandHeight();
+            mMaxHeightNeedsUpdate = false;
+        }
+        return mMaxExpandHeight;
+    }
+
+    /**
+     * Sets the notification as locked. In the locked state, the first tap will produce a quantum
+     * ripple to make the notification brighter and only the second tap will cause a click.
+     */
+    public void setLocked(boolean locked) {
+        mLatestItemView.setLocked(locked);
+    }
+
+    public void setOnActivatedListener(LatestItemView.OnActivatedListener listener) {
+        mOnActivatedListener = listener;
+    }
+
+    public NotificationActivator getActivator() {
+        return mActivator;
+    }
+
+    @Override
+    public void onActivated(View view) {
+        if (mOnActivatedListener != null) {
+            mOnActivatedListener.onActivated(this);
+        }
+    }
+
+    @Override
+    public void onReset(View view) {
+        if (mOnActivatedListener != null) {
+            mOnActivatedListener.onReset(this);
+        }
+    }
+
+    /**
+     * Sets the resource id for the background of this notification.
+     *
+     * @param bgResId The background resource to use in normal state.
+     * @param dimmedBgResId The background resource to use in dimmed state.
+     */
+    public void setBackgroundResourceIds(int bgResId, int dimmedBgResId) {
+        mLatestItemView.setBackgroundResourceIds(bgResId, dimmedBgResId);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/InterceptedNotifications.java b/packages/SystemUI/src/com/android/systemui/statusbar/InterceptedNotifications.java
new file mode 100644
index 0000000..d563968
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/InterceptedNotifications.java
@@ -0,0 +1,119 @@
+/*
+ * 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.android.systemui.statusbar;
+
+import android.app.Notification;
+import android.content.Context;
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.Process;
+import android.service.notification.StatusBarNotification;
+import android.util.ArrayMap;
+import android.view.View;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.NotificationData.Entry;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
+
+public class InterceptedNotifications {
+    private static final String TAG = "InterceptedNotifications";
+    private static final String EXTRA_INTERCEPT = "android.intercept";
+
+    private final Context mContext;
+    private final PhoneStatusBar mBar;
+    private final ArrayMap<IBinder, StatusBarNotification> mIntercepted
+            = new ArrayMap<IBinder, StatusBarNotification>();
+
+    private Binder mSynKey;
+
+    public InterceptedNotifications(Context context, PhoneStatusBar bar) {
+        mContext = context;
+        mBar = bar;
+    }
+
+    public void releaseIntercepted() {
+        final int n = mIntercepted.size();
+        for (int i = 0; i < n; i++) {
+            final IBinder key = mIntercepted.keyAt(i);
+            final StatusBarNotification sbn = mIntercepted.valueAt(i);
+            sbn.getNotification().extras.putBoolean(EXTRA_INTERCEPT, false);
+            mBar.addNotification(key, sbn);
+        }
+        mIntercepted.clear();
+        updateSyntheticNotification();
+    }
+
+    public boolean tryIntercept(IBinder key, StatusBarNotification notification) {
+        if (!notification.getNotification().extras.getBoolean(EXTRA_INTERCEPT)) return false;
+        mIntercepted.put(key, notification);
+        updateSyntheticNotification();
+        return true;
+    }
+
+    public void remove(IBinder key) {
+        if (mIntercepted.remove(key) != null) {
+            updateSyntheticNotification();
+        }
+    }
+
+    public boolean isSyntheticEntry(Entry ent) {
+        return mSynKey != null && ent.key.equals(mSynKey);
+    }
+
+    public void update(IBinder key, StatusBarNotification notification) {
+        if (mIntercepted.containsKey(key)) {
+            mIntercepted.put(key, notification);
+        }
+    }
+
+    private void updateSyntheticNotification() {
+        if (mIntercepted.isEmpty()) {
+            if (mSynKey != null) {
+                mBar.removeNotification(mSynKey);
+                mSynKey = null;
+            }
+            return;
+        }
+        final Notification n = new Notification.Builder(mContext)
+                .setSmallIcon(R.drawable.stat_sys_zen_limited)
+                .setContentTitle(mContext.getResources().getQuantityString(
+                        R.plurals.zen_mode_notification_title,
+                        mIntercepted.size(), mIntercepted.size()))
+                .setContentText(mContext.getString(R.string.zen_mode_notification_text))
+                .setOngoing(true)
+                .build();
+        final StatusBarNotification sbn = new StatusBarNotification(mContext.getPackageName(),
+                mContext.getBasePackageName(),
+                TAG.hashCode(), TAG, Process.myUid(), Process.myPid(), 0, n,
+                mBar.getCurrentUserHandle());
+        if (mSynKey == null) {
+            mSynKey = new Binder();
+            mBar.addNotification(mSynKey, sbn);
+        } else {
+           mBar.updateNotification(mSynKey, sbn);
+        }
+        final NotificationData.Entry entry = mBar.mNotificationData.findByKey(mSynKey);
+        entry.content.setOnClickListener(mSynClickListener);
+    }
+
+    private final View.OnClickListener mSynClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            releaseIntercepted();
+        }
+    };
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java b/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java
index 6419777..5e90084 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java
@@ -18,15 +18,48 @@
 
 import android.content.Context;
 import android.util.AttributeSet;
+import android.view.MotionEvent;
 import android.view.View;
+import android.view.ViewConfiguration;
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.FrameLayout;
 
+import com.android.internal.R;
+
 public class LatestItemView extends FrameLayout {
+
+    private static final long DOUBLETAP_TIMEOUT_MS = 1000;
+
+    private boolean mDimmed;
+    private boolean mLocked;
+
+    private int mBgResId = R.drawable.notification_quantum_bg;
+    private int mDimmedBgResId = R.drawable.notification_quantum_bg_dim;
+
+    /**
+     * Flag to indicate that the notification has been touched once and the second touch will
+     * click it.
+     */
+    private boolean mActivated;
+
+    private float mDownX;
+    private float mDownY;
+    private final float mTouchSlop;
+
+    private OnActivatedListener mOnActivatedListener;
+
     public LatestItemView(Context context, AttributeSet attrs) {
         super(context, attrs);
+        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
     }
 
+    private final Runnable mTapTimeoutRunnable = new Runnable() {
+        @Override
+        public void run() {
+            makeInactive();
+        }
+    };
+
     @Override
     public void setOnClickListener(OnClickListener l) {
         super.setOnClickListener(l);
@@ -45,4 +78,125 @@
         }
         return false;
     }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        if (mLocked) {
+            return handleTouchEventLocked(event);
+        } else {
+            return super.onTouchEvent(event);
+        }
+    }
+
+    private boolean handleTouchEventLocked(MotionEvent event) {
+        int action = event.getActionMasked();
+        switch (action) {
+            case MotionEvent.ACTION_DOWN:
+                mDownX = event.getX();
+                mDownY = event.getY();
+
+                // Call the listener tentatively directly, even if we don't know whether the user
+                // will stay within the touch slop, as the listener is implemented as a scale
+                // animation, which is cancellable without jarring effects when swiping away
+                // notifications.
+                if (mOnActivatedListener != null) {
+                    mOnActivatedListener.onActivated(this);
+                }
+                break;
+            case MotionEvent.ACTION_MOVE:
+                if (!isWithinTouchSlop(event)) {
+                    makeInactive();
+                    return false;
+                }
+                break;
+            case MotionEvent.ACTION_UP:
+                if (isWithinTouchSlop(event)) {
+                    if (!mActivated) {
+                        makeActive(event.getX(), event.getY());
+                        postDelayed(mTapTimeoutRunnable, DOUBLETAP_TIMEOUT_MS);
+                    } else {
+                        performClick();
+                        makeInactive();
+                    }
+                } else {
+                    makeInactive();
+                }
+                break;
+            case MotionEvent.ACTION_CANCEL:
+                makeInactive();
+                break;
+            default:
+                break;
+        }
+        return true;
+    }
+
+    private void makeActive(float x, float y) {
+        getBackground().setHotspot(0, x, y);
+        mActivated = true;
+    }
+
+    /**
+     * Cancels the hotspot and makes the notification inactive.
+     */
+    private void makeInactive() {
+        if (mActivated) {
+            // Make sure that we clear the hotspot from the center.
+            getBackground().setHotspot(0, getWidth() / 2, getHeight() / 2);
+            getBackground().removeHotspot(0);
+            mActivated = false;
+        }
+        if (mOnActivatedListener != null) {
+            mOnActivatedListener.onReset(this);
+        }
+        removeCallbacks(mTapTimeoutRunnable);
+    }
+
+    private boolean isWithinTouchSlop(MotionEvent event) {
+        return Math.abs(event.getX() - mDownX) < mTouchSlop
+                && Math.abs(event.getY() - mDownY) < mTouchSlop;
+    }
+
+    /**
+     * Sets the notification as dimmed, meaning that it will appear in a more gray variant.
+     */
+    public void setDimmed(boolean dimmed) {
+        if (mDimmed != dimmed) {
+            mDimmed = dimmed;
+            updateBackgroundResource();
+        }
+    }
+
+    /**
+     * Sets the notification as locked. In the locked state, the first tap will produce a quantum
+     * ripple to make the notification brighter and only the second tap will cause a click.
+     */
+    public void setLocked(boolean locked) {
+        mLocked = locked;
+    }
+
+    /**
+     * Sets the resource id for the background of this notification.
+     *
+     * @param bgResId The background resource to use in normal state.
+     * @param dimmedBgResId The background resource to use in dimmed state.
+     */
+    public void setBackgroundResourceIds(int bgResId, int dimmedBgResId) {
+        mBgResId = bgResId;
+        mDimmedBgResId = dimmedBgResId;
+        updateBackgroundResource();
+    }
+
+    private void updateBackgroundResource() {
+        setBackgroundResource(mDimmed ? mDimmedBgResId : mBgResId);
+    }
+
+    public void setOnActivatedListener(OnActivatedListener onActivatedListener) {
+        mOnActivatedListener = onActivatedListener;
+    }
+
+    public interface OnActivatedListener {
+        void onActivated(View view);
+        void onReset(View view);
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationActivator.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationActivator.java
new file mode 100644
index 0000000..620e457
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationActivator.java
@@ -0,0 +1,87 @@
+/*
+ * 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.android.systemui.statusbar;
+
+import android.content.Context;
+import android.view.View;
+import android.view.animation.AnimationUtils;
+import android.view.animation.Interpolator;
+
+import com.android.systemui.R;
+
+/**
+ * A helper class used by both {@link com.android.systemui.statusbar.ExpandableNotificationRow} and
+ * {@link com.android.systemui.statusbar.NotificationOverflowIconsView} to make a notification look
+ * active after tapping it once on the Keyguard.
+ */
+public class NotificationActivator {
+
+    private static final int ANIMATION_LENGTH_MS = 220;
+    private static final float INVERSE_ALPHA = 0.9f;
+    private static final float DIMMED_SCALE = 0.95f;
+
+    private final View mTargetView;
+
+    private final Interpolator mFastOutSlowInInterpolator;
+    private final Interpolator mLinearOutSlowInInterpolator;
+    private final int mTranslationZ;
+
+    public NotificationActivator(View targetView) {
+        mTargetView = targetView;
+        Context ctx = targetView.getContext();
+        mFastOutSlowInInterpolator =
+                AnimationUtils.loadInterpolator(ctx, android.R.interpolator.fast_out_slow_in);
+        mLinearOutSlowInInterpolator =
+                AnimationUtils.loadInterpolator(ctx, android.R.interpolator.linear_out_slow_in);
+        mTranslationZ =
+                ctx.getResources().getDimensionPixelSize(R.dimen.z_distance_between_notifications);
+        mTargetView.animate().setDuration(ANIMATION_LENGTH_MS);
+    }
+
+    public void activateInverse() {
+        mTargetView.animate().withLayer().alpha(INVERSE_ALPHA);
+    }
+
+    public void activate() {
+        mTargetView.animate()
+                .setInterpolator(mLinearOutSlowInInterpolator)
+                .scaleX(1)
+                .scaleY(1)
+                .translationZBy(mTranslationZ);
+    }
+
+    public void reset() {
+        mTargetView.animate()
+                .setInterpolator(mFastOutSlowInInterpolator)
+                .scaleX(DIMMED_SCALE)
+                .scaleY(DIMMED_SCALE)
+                .translationZBy(-mTranslationZ);
+        if (mTargetView.getAlpha() != 1.0f) {
+            mTargetView.animate().withLayer().alpha(1);
+        }
+    }
+
+    public void setDimmed(boolean dimmed) {
+        if (dimmed) {
+            mTargetView.setScaleX(DIMMED_SCALE);
+            mTargetView.setScaleY(DIMMED_SCALE);
+        } else {
+            mTargetView.setScaleX(1);
+            mTargetView.setScaleY(1);
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationOverflowContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationOverflowContainer.java
new file mode 100644
index 0000000..be58dad
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationOverflowContainer.java
@@ -0,0 +1,92 @@
+/*
+ * 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.android.systemui.statusbar;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import com.android.systemui.R;
+
+/**
+ * Container view for overflowing notification icons on Keyguard.
+ */
+public class NotificationOverflowContainer extends FrameLayout
+        implements LatestItemView.OnActivatedListener {
+
+    private NotificationOverflowIconsView mIconsView;
+    private LatestItemView.OnActivatedListener mOnActivatedListener;
+    private NotificationActivator mActivator;
+
+    public NotificationOverflowContainer(Context context) {
+        super(context);
+    }
+
+    public NotificationOverflowContainer(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public NotificationOverflowContainer(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    public NotificationOverflowContainer(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mIconsView = (NotificationOverflowIconsView) findViewById(R.id.overflow_icons_view);
+        mIconsView.setMoreText((TextView) findViewById(R.id.more_text));
+
+        LatestItemView latestItemView = (LatestItemView) findViewById(R.id.container);
+        mActivator = new NotificationActivator(this);
+        mActivator.setDimmed(true);
+        latestItemView.setOnActivatedListener(this);
+        latestItemView.setLocked(true);
+    }
+
+    public NotificationOverflowIconsView getIconsView() {
+        return mIconsView;
+    }
+
+    public void setOnActivatedListener(LatestItemView.OnActivatedListener onActivatedListener) {
+        mOnActivatedListener = onActivatedListener;
+    }
+
+    @Override
+    public void onActivated(View view) {
+        if (mOnActivatedListener != null) {
+            mOnActivatedListener.onActivated(this);
+        }
+    }
+
+    @Override
+    public void onReset(View view) {
+        if (mOnActivatedListener != null) {
+            mOnActivatedListener.onReset(this);
+        }
+    }
+
+    public NotificationActivator getActivator() {
+        return mActivator;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationOverflowIconsView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationOverflowIconsView.java
new file mode 100644
index 0000000..ce31894
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationOverflowIconsView.java
@@ -0,0 +1,69 @@
+/*
+ * 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.android.systemui.statusbar;
+
+import android.app.Notification;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.internal.statusbar.StatusBarIcon;
+import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.IconMerger;
+
+/**
+ * A view to display all the overflowing icons on Keyguard.
+ */
+public class NotificationOverflowIconsView extends IconMerger {
+
+    private TextView mMoreText;
+    private int mTintColor;
+
+    public NotificationOverflowIconsView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mTintColor = getResources().getColor(R.color.keyguard_overflow_content_color);
+    }
+
+    public void setMoreText(TextView moreText) {
+        mMoreText = moreText;
+    }
+
+    public void addNotification(NotificationData.Entry notification) {
+        StatusBarIconView v = new StatusBarIconView(getContext(), "",
+                notification.notification.getNotification());
+        v.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+        v.setColorFilter(mTintColor, PorterDuff.Mode.MULTIPLY);
+        addView(v);
+        v.set(notification.icon.getStatusBarIcon());
+        updateMoreText();
+    }
+
+    private void updateMoreText() {
+        mMoreText.setText(getResources().getQuantityString(
+                R.plurals.keyguard_more_overflow_text, getChildCount(), getChildCount()));
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index f1c8e01..89da08f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -17,6 +17,8 @@
 package com.android.systemui.statusbar;
 
 import android.content.Context;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.View;
@@ -35,11 +37,14 @@
 
     static final boolean DEBUG = false;
     static final String TAG = "SignalClusterView";
+    static final PorterDuffColorFilter PROBLEM_FILTER
+            = new PorterDuffColorFilter(0xffab653b, PorterDuff.Mode.SRC_ATOP);
 
     NetworkController mNC;
 
     private boolean mWifiVisible = false;
     private int mWifiStrengthId = 0;
+    private boolean mInetProblem;
     private boolean mMobileVisible = false;
     private int mMobileStrengthId = 0, mMobileTypeId = 0;
     private boolean mIsAirplaneMode = false;
@@ -96,19 +101,22 @@
     }
 
     @Override
-    public void setWifiIndicators(boolean visible, int strengthIcon, String contentDescription) {
+    public void setWifiIndicators(boolean visible, int strengthIcon, boolean problem,
+            String contentDescription) {
         mWifiVisible = visible;
         mWifiStrengthId = strengthIcon;
+        mInetProblem = problem;
         mWifiDescription = contentDescription;
 
         apply();
     }
 
     @Override
-    public void setMobileDataIndicators(boolean visible, int strengthIcon,
+    public void setMobileDataIndicators(boolean visible, int strengthIcon, boolean problem,
             int typeIcon, String contentDescription, String typeContentDescription) {
         mMobileVisible = visible;
         mMobileStrengthId = strengthIcon;
+        mInetProblem = problem;
         mMobileTypeId = typeIcon;
         mMobileDescription = contentDescription;
         mMobileTypeDescription = typeContentDescription;
@@ -158,13 +166,17 @@
         apply();
     }
 
+    private void applyInetProblem(ImageView iv) {
+        iv.setColorFilter(mInetProblem ? PROBLEM_FILTER : null);
+    }
+
     // Run after each indicator change.
     private void apply() {
         if (mWifiGroup == null) return;
 
         if (mWifiVisible) {
             mWifi.setImageResource(mWifiStrengthId);
-
+            applyInetProblem(mWifi);
             mWifiGroup.setContentDescription(mWifiDescription);
             mWifiGroup.setVisibility(View.VISIBLE);
         } else {
@@ -179,7 +191,7 @@
         if (mMobileVisible && !mIsAirplaneMode) {
             mMobile.setImageResource(mMobileStrengthId);
             mMobileType.setImageResource(mMobileTypeId);
-
+            applyInetProblem(mMobile);
             mMobileGroup.setContentDescription(mMobileTypeDescription + " " + mMobileDescription);
             mMobileGroup.setVisibility(View.VISIBLE);
         } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
new file mode 100644
index 0000000..7cbde36
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -0,0 +1,139 @@
+/*
+ * 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.android.systemui.statusbar.phone;
+
+import android.content.Context;
+import android.os.RemoteException;
+import android.util.Slog;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.internal.policy.IKeyguardShowCallback;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.keyguard.KeyguardHostView;
+import com.android.keyguard.KeyguardViewBase;
+import com.android.keyguard.R;
+import com.android.keyguard.ViewMediatorCallback;
+import com.android.systemui.keyguard.KeyguardViewMediator;
+
+/**
+ * A class which manages the bouncer on the lockscreen.
+ */
+public class KeyguardBouncer {
+
+    private Context mContext;
+    private ViewMediatorCallback mCallback;
+    private LockPatternUtils mLockPatternUtils;
+    private ViewGroup mContainer;
+    private StatusBarWindowManager mWindowManager;
+    private KeyguardViewBase mKeyguardView;
+    private ViewGroup mRoot;
+
+    public KeyguardBouncer(Context context, ViewMediatorCallback callback,
+            LockPatternUtils lockPatternUtils, StatusBarWindowManager windowManager,
+            ViewGroup container) {
+        mContext = context;
+        mCallback = callback;
+        mLockPatternUtils = lockPatternUtils;
+        mContainer = container;
+        mWindowManager = windowManager;
+    }
+
+    public void prepare() {
+        ensureView();
+    }
+
+    public void show() {
+        ensureView();
+
+        // Try to dismiss the Keyguard. If no security pattern is set, this will dismiss the whole
+        // Keyguard. If we need to authenticate, show the bouncer.
+        if (!mKeyguardView.dismiss()) {
+            mRoot.setVisibility(View.VISIBLE);
+            mKeyguardView.requestFocus();
+        }
+    }
+
+    public void hide() {
+        if (mKeyguardView != null) {
+            mKeyguardView.cleanUp();
+        }
+        removeView();
+    }
+
+    /**
+     * Reset the state of the view.
+     */
+    public void reset() {
+        inflateView();
+    }
+
+    public void onScreenTurnedOff() {
+        if (mKeyguardView != null) {
+            mKeyguardView.onScreenTurnedOff();
+        }
+    }
+
+    public void onScreenTurnedOn() {
+        if (mKeyguardView != null) {
+            mKeyguardView.onScreenTurnedOn();
+        }
+    }
+
+    public long getUserActivityTimeout() {
+        if (mKeyguardView != null) {
+            long timeout = mKeyguardView.getUserActivityTimeout();
+            if (timeout >= 0) {
+                return timeout;
+            }
+        }
+        return KeyguardViewMediator.AWAKE_INTERVAL_DEFAULT_MS;
+    }
+
+    public boolean isShowing() {
+        return mRoot != null && mRoot.getVisibility() == View.VISIBLE;
+    }
+
+    private void ensureView() {
+        if (mRoot == null) {
+            inflateView();
+        }
+    }
+
+    private void inflateView() {
+        removeView();
+        mRoot = (ViewGroup) LayoutInflater.from(mContext).inflate(R.layout.keyguard_bouncer, null);
+        mKeyguardView = (KeyguardViewBase) mRoot.findViewById(R.id.keyguard_host_view);
+        mKeyguardView.setLockPatternUtils(mLockPatternUtils);
+        mKeyguardView.setViewMediatorCallback(mCallback);
+        mContainer.addView(mRoot, mContainer.getChildCount());
+        mRoot.setVisibility(View.INVISIBLE);
+        mRoot.setSystemUiVisibility(View.STATUS_BAR_DISABLE_HOME);
+    }
+
+    private void removeView() {
+        if (mRoot != null && mRoot.getParent() == mContainer) {
+            mContainer.removeView(mRoot);
+            mRoot = null;
+        }
+    }
+
+    public boolean onBackPressed() {
+        return mKeyguardView != null && mKeyguardView.handleBackKey();
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java
index 1ea920d..754075a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java
@@ -39,8 +39,8 @@
  */
 public class KeyguardTouchDelegate {
     // TODO: propagate changes to these to {@link KeyguardServiceDelegate}
-    static final String KEYGUARD_PACKAGE = "com.android.keyguard";
-    static final String KEYGUARD_CLASS = "com.android.keyguard.KeyguardService";
+    static final String KEYGUARD_PACKAGE = "com.android.systemui";
+    static final String KEYGUARD_CLASS = "com.android.systemui.keyguard.KeyguardService";
 
     private static KeyguardTouchDelegate sInstance;
     private static final List<OnKeyguardConnectionListener> sConnectionListeners =
@@ -140,16 +140,16 @@
         return false;
     }
 
-    public boolean isShowingAndNotHidden() {
+    public boolean isShowingAndNotOccluded() {
         final IKeyguardService service = mService;
         if (service != null) {
             try {
-                return service.isShowingAndNotHidden();
+                return service.isShowingAndNotOccluded();
             } catch (RemoteException e) {
                 Slog.w(TAG , "Remote Exception", e);
             }
         } else {
-            Slog.w(TAG, "isShowingAndNotHidden(): NO SERVICE!");
+            Slog.w(TAG, "isShowingAndNotOccluded(): NO SERVICE!");
         }
         return false;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java
index a74230b..d26b32f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java
@@ -117,7 +117,7 @@
     @Override
     public void setContentVisible(boolean visible) {
         final float alpha = visible ? 1 : 0;
-        fadeContent(mView.getCameraButton(), alpha);
+        fadeContent(mView.getBackButton(), alpha);
         fadeContent(mView.getSearchLight(), alpha);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index d9e0903..db26a42 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -34,17 +34,23 @@
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.os.Message;
+import android.os.PowerManager;
 import android.os.RemoteException;
+import android.os.UserHandle;
+import android.provider.MediaStore;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.Display;
 import android.view.MotionEvent;
 import android.view.Surface;
 import android.view.View;
+import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.accessibility.AccessibilityManager;
 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.DecelerateInterpolator;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 
@@ -92,12 +98,16 @@
     final static boolean WORKAROUND_INVALID_LAYOUT = true;
     final static int MSG_CHECK_INVALID_LAYOUT = 8686;
 
+    private final float mCameraDragDistance;
+
     // used to disable the camera icon in navbar when disabled by DPM
     private boolean mCameraDisabledByDpm;
 
     // performs manual animation in sync with layout transitions
     private final NavTransitionListener mTransitionListener = new NavTransitionListener();
 
+    private final PowerManager mPowerManager;
+
     private class NavTransitionListener implements TransitionListener {
         private boolean mBackTransitioning;
         private boolean mHomeAppearing;
@@ -155,22 +165,73 @@
         }
     };
 
+    private final int mScaledTouchSlop;
+
     private final OnTouchListener mCameraTouchListener = new OnTouchListener() {
+        private float mStartX;
+        private boolean mTouchSlopReached;
+        private boolean mSkipCancelAnimation;
+
         @Override
-        public boolean onTouch(View cameraButtonView, MotionEvent event) {
+        public boolean onTouch(final View cameraButtonView, MotionEvent event) {
+            float realX = event.getRawX();
             switch (event.getAction()) {
                 case MotionEvent.ACTION_DOWN:
                     // disable search gesture while interacting with camera
                     mDelegateHelper.setDisabled(true);
                     mBarTransitions.setContentVisible(false);
+                    mStartX = realX;
+                    mTouchSlopReached = false;
+                    mSkipCancelAnimation = false;
+                    break;
+                case MotionEvent.ACTION_MOVE:
+                    if (realX > mStartX) {
+                        realX = mStartX;
+                    }
+                    if (realX < mStartX - mCameraDragDistance) {
+                        ((KeyButtonView) cameraButtonView).setPressed(true);
+                        mPowerManager.userActivity(event.getEventTime(), false);
+                    } else {
+                        ((KeyButtonView) cameraButtonView).setPressed(false);
+                    }
+                    if (realX < mStartX - mScaledTouchSlop) {
+                        mTouchSlopReached = true;
+                    }
+                    cameraButtonView.setTranslationX(Math.max(realX - mStartX,
+                            -mCameraDragDistance));
                     break;
                 case MotionEvent.ACTION_UP:
+                    if (realX < mStartX - mCameraDragDistance) {
+                        mContext.startActivityAsUser(
+                                new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE),
+                                UserHandle.CURRENT);
+                    }
+                    if (realX < mStartX - mScaledTouchSlop) {
+                        mTouchSlopReached = true;
+                    }
+                    if (!mTouchSlopReached) {
+                        mSkipCancelAnimation = true;
+                        cameraButtonView.animate().translationX(-mCameraDragDistance / 2).
+                                        setInterpolator(new DecelerateInterpolator()).withEndAction(
+                                new Runnable() {
+                                    @Override
+                                    public void run() {
+                                        cameraButtonView.animate().translationX(0).
+                                                setInterpolator(new AccelerateInterpolator());
+                                    }
+                                });
+                    }
                 case MotionEvent.ACTION_CANCEL:
+                    ((KeyButtonView) cameraButtonView).setPressed(false);
                     mDelegateHelper.setDisabled(false);
                     mBarTransitions.setContentVisible(true);
+                    if (!mSkipCancelAnimation) {
+                        cameraButtonView.animate().translationX(0)
+                                .setInterpolator(new AccelerateInterpolator(2f));
+                    }
                     break;
             }
-            return KeyguardTouchDelegate.getInstance(getContext()).dispatch(event);
+            return true;
         }
     };
 
@@ -235,6 +296,9 @@
         KeyguardTouchDelegate.addListener(mKeyguardConnectionListener);
         mCameraDisabledByDpm = isCameraDisabledByDpm();
         watchForDevicePolicyChanges();
+        mCameraDragDistance = res.getDimension(R.dimen.camera_drag_distance);
+        mScaledTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
+        mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
     }
 
     private void watchForDevicePolicyChanges() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 6be6d4d..6f93bed 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -17,45 +17,51 @@
 package com.android.systemui.statusbar.phone;
 
 import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
-import android.util.EventLog;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
 
-import com.android.systemui.EventLogTags;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.GestureRecorder;
+import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
 public class NotificationPanelView extends PanelView {
     public static final boolean DEBUG_GESTURES = true;
 
-    Drawable mHandleBar;
-    int mHandleBarHeight;
-    View mHandleView;
-    int mFingers;
     PhoneStatusBar mStatusBar;
-    boolean mOkToFlip;
+    private NotificationStackScrollLayout mNotificationStackScroller;
+    private int[] mTempLocation = new int[2];
+    private int[] mTempChildLocation = new int[2];
+    private View mNotificationParent;
+
 
     public NotificationPanelView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
 
     public void setStatusBar(PhoneStatusBar bar) {
+        if (mStatusBar != null) {
+            mStatusBar.setOnFlipRunnable(null);
+        }
         mStatusBar = bar;
+        if (bar != null) {
+            mStatusBar.setOnFlipRunnable(new Runnable() {
+                @Override
+                public void run() {
+                    requestPanelHeightUpdate();
+                }
+            });
+        }
     }
 
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
 
-        Resources resources = getContext().getResources();
-        mHandleBar = resources.getDrawable(R.drawable.status_bar_close);
-        mHandleBarHeight = resources.getDimensionPixelSize(R.dimen.close_handle_height);
-        mHandleView = findViewById(R.id.handle);
+        mNotificationStackScroller = (NotificationStackScrollLayout)
+                findViewById(R.id.notification_stack_scroller);
+        mNotificationParent = findViewById(R.id.notification_container_parent);
     }
 
     @Override
@@ -80,61 +86,99 @@
         return super.dispatchPopulateAccessibilityEvent(event);
     }
 
-    // We draw the handle ourselves so that it's always glued to the bottom of the window.
-    @Override
-    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-        super.onLayout(changed, left, top, right, bottom);
-        if (changed) {
-            final int pl = getPaddingLeft();
-            final int pr = getPaddingRight();
-            mHandleBar.setBounds(pl, 0, getWidth() - pr, (int) mHandleBarHeight);
-        }
-    }
-
-    @Override
-    public void draw(Canvas canvas) {
-        super.draw(canvas);
-        final int off = (int) (getHeight() - mHandleBarHeight - getPaddingBottom());
-        canvas.translate(0, off);
-        mHandleBar.setState(mHandleView.getDrawableState());
-        mHandleBar.draw(canvas);
-        canvas.translate(0, -off);
+    /**
+     * Gets the relative position of a view on the screen in regard to this view.
+     *
+     * @param requestedView the view we want to find the relative position for
+     * @return
+     */
+    private int getRelativeTop(View requestedView) {
+        getLocationOnScreen(mTempLocation);
+        requestedView.getLocationOnScreen(mTempChildLocation);
+        return mTempChildLocation[1] - mTempLocation[1];
     }
 
     @Override
     public boolean onTouchEvent(MotionEvent event) {
-        if (DEBUG_GESTURES) {
-            if (event.getActionMasked() != MotionEvent.ACTION_MOVE) {
-                EventLog.writeEvent(EventLogTags.SYSUI_NOTIFICATIONPANEL_TOUCH,
-                       event.getActionMasked(), (int) event.getX(), (int) event.getY());
-            }
+        // TODO: Handle doublefinger swipe to notifications again. Look at history for a reference
+        // implementation.
+        return super.onTouchEvent(event);
+    }
+
+    @Override
+    protected boolean isScrolledToBottom() {
+        if (!isInSettings()) {
+            return mNotificationStackScroller.isScrolledToBottom();
         }
-        if (PhoneStatusBar.SETTINGS_DRAG_SHORTCUT && mStatusBar.mHasFlipSettings) {
-            switch (event.getActionMasked()) {
-                case MotionEvent.ACTION_DOWN:
-                    mOkToFlip = getExpandedHeight() == 0;
-                    break;
-                case MotionEvent.ACTION_POINTER_DOWN:
-                    if (mOkToFlip) {
-                        float miny = event.getY(0);
-                        float maxy = miny;
-                        for (int i=1; i<event.getPointerCount(); i++) {
-                            final float y = event.getY(i);
-                            if (y < miny) miny = y;
-                            if (y > maxy) maxy = y;
-                        }
-                        if (maxy - miny < mHandleBarHeight) {
-                            if (getMeasuredHeight() < mHandleBarHeight) {
-                                mStatusBar.switchToSettings();
-                            } else {
-                                mStatusBar.flipToSettings();
-                            }
-                            mOkToFlip = false;
-                        }
-                    }
-                    break;
-            }
+        return super.isScrolledToBottom();
+    }
+
+    @Override
+    protected int getMaxPanelHeight() {
+        if (!isInSettings()) {
+            int maxPanelHeight = super.getMaxPanelHeight();
+            int emptyBottomMargin = mNotificationStackScroller.getEmptyBottomMargin();
+            return maxPanelHeight - emptyBottomMargin;
         }
-        return mHandleView.dispatchTouchEvent(event);
+        return super.getMaxPanelHeight();
+    }
+
+    private boolean isInSettings() {
+        return mStatusBar != null && mStatusBar.isFlippedToSettings();
+    }
+
+    @Override
+    protected void onHeightUpdated(float expandedHeight) {
+        updateNotificationStackHeight(expandedHeight);
+    }
+
+    /**
+     * Update the height of the {@link #mNotificationStackScroller} to the new expanded height.
+     * This is much more efficient than doing it over the layout pass.
+     *
+     * @param expandedHeight the new expanded height
+     */
+    private void updateNotificationStackHeight(float expandedHeight) {
+        mNotificationStackScroller.setIsExpanded(expandedHeight > 0.0f);
+        float childOffset = getRelativeTop(mNotificationStackScroller)
+                - mNotificationParent.getTranslationY();
+        int newStackHeight = (int) (expandedHeight - childOffset);
+        int itemHeight = mNotificationStackScroller.getItemHeight();
+        int bottomStackPeekSize = mNotificationStackScroller.getBottomStackPeekSize();
+        int minStackHeight = itemHeight + bottomStackPeekSize;
+        if (newStackHeight >= minStackHeight) {
+            mNotificationParent.setTranslationY(0);
+            mNotificationStackScroller.setCurrentStackHeight(newStackHeight);
+        } else {
+
+            // We did not reach the position yet where we actually start growing,
+            // so we translate the stack upwards.
+            int translationY = (newStackHeight - minStackHeight);
+            // A slight parallax effect is introduced in order for the stack to catch up with
+            // the top card.
+            float partiallyThere = (float) newStackHeight / minStackHeight;
+            partiallyThere = Math.max(0, partiallyThere);
+            translationY += (1 - partiallyThere) * bottomStackPeekSize;
+            mNotificationParent.setTranslationY(translationY);
+            mNotificationStackScroller.setCurrentStackHeight(
+                    (int) (expandedHeight - (childOffset + translationY)));
+        }
+    }
+
+    @Override
+    protected int getDesiredMeasureHeight() {
+        return mMaxPanelHeight;
+    }
+
+    @Override
+    protected void onExpandingStarted() {
+        super.onExpandingStarted();
+        mNotificationStackScroller.onExpansionStarted();
+    }
+
+    @Override
+    protected void onExpandingFinished() {
+        super.onExpandingFinished();
+        mNotificationStackScroller.onExpansionStopped();
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
index a3e35d1..324d6f3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -151,7 +151,8 @@
         if (DEBUG) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName());
         mPanelExpandedFractionSum = 0f;
         for (PanelView pv : mPanels) {
-            final boolean visible = pv.getVisibility() == View.VISIBLE;
+            boolean visible = pv.getExpandedHeight() > 0;
+            pv.setVisibility(visible ? View.VISIBLE : View.GONE);
             // adjust any other panels that may be partially visible
             if (pv.getExpandedHeight() > 0f) {
                 if (mState == STATE_CLOSED) {
@@ -166,11 +167,6 @@
                     if (thisFrac == 1f) fullyOpenedPanel = panel;
                 }
             }
-            if (pv.getExpandedHeight() > 0f) {
-                if (!visible) pv.setVisibility(View.VISIBLE);
-            } else {
-                if (visible) pv.setVisibility(View.GONE);
-            }
         }
         mPanelExpandedFractionSum /= mPanels.size();
         if (fullyOpenedPanel != null && !mTracking) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 4b2c3e1..0266144c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -25,6 +25,7 @@
 import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.ViewConfiguration;
 import android.widget.FrameLayout;
 
 import com.android.systemui.R;
@@ -69,7 +70,7 @@
 
     private View mHandleView;
     private float mPeekHeight;
-    private float mTouchOffset;
+    private float mInitialOffsetOnTouch;
     private float mExpandedFraction = 0;
     private float mExpandedHeight = 0;
     private boolean mJustPeeked;
@@ -77,6 +78,7 @@
     private boolean mRubberbanding;
     private boolean mTracking;
     private int mTrackingPointer;
+    private int mTouchSlop;
 
     private TimeAnimator mTimeAnimator;
     private ObjectAnimator mPeekAnimator;
@@ -198,7 +200,6 @@
         }
     }
 
-    private int[] mAbsPos = new int[2];
     PanelBar mBar;
 
     private final TimeListener mAnimationCallback = new TimeListener() {
@@ -215,12 +216,13 @@
                 mTimeAnimator.end();
                 mRubberbanding = false;
                 mClosing = false;
+                onExpandingFinished();
             }
         }
     };
 
     private float mVel, mAccel;
-    private int mFullHeight = 0;
+    protected int mMaxPanelHeight = 0;
     private String mViewName;
     protected float mInitialTouchY;
     protected float mFinalTouchY;
@@ -229,6 +231,12 @@
         mRubberbandingEnabled = enable;
     }
 
+    protected void onExpandingFinished() {
+    }
+
+    protected void onExpandingStarted() {
+    }
+
     private void runPeekAnimation() {
         if (DEBUG) logf("peek to height=%.1f", mPeekHeight);
         if (mTimeAnimator.isStarted()) {
@@ -253,13 +261,13 @@
             mTimeAnimator.start();
 
             mRubberbanding = mRubberbandingEnabled // is it enabled at all?
-                    && mExpandedHeight > getFullHeight() // are we past the end?
+                    && mExpandedHeight > getMaxPanelHeight() // are we past the end?
                     && mVel >= -mFlingGestureMinDistPx; // was this not possibly a "close" gesture?
             if (mRubberbanding) {
                 mClosing = true;
             } else if (mVel == 0) {
                 // if the panel is less than halfway open, close it
-                mClosing = (mFinalTouchY / getFullHeight()) < 0.5f;
+                mClosing = (mFinalTouchY / getMaxPanelHeight()) < 0.5f;
             } else {
                 mClosing = mExpandedHeight > 0 && mVel < 0;
             }
@@ -268,7 +276,7 @@
             if (DEBUG) logf("tick: v=%.2fpx/s dt=%.4fs", mVel, dt);
             if (DEBUG) logf("tick: before: h=%d", (int) mExpandedHeight);
 
-            final float fh = getFullHeight();
+            final float fh = getMaxPanelHeight();
             boolean braking = false;
             if (BRAKES) {
                 if (mClosing) {
@@ -326,6 +334,7 @@
 
         mTimeAnimator = new TimeAnimator();
         mTimeAnimator.setTimeListener(mAnimationCallback);
+        setOnHierarchyChangeListener(mHierarchyListener);
     }
 
     private void loadDimens() {
@@ -351,6 +360,9 @@
         mPeekHeight = res.getDimension(R.dimen.peek_height)
             + getPaddingBottom() // our window might have a dropshadow
             - (mHandleView == null ? 0 : mHandleView.getPaddingTop()); // the handle might have a topshadow
+
+        final ViewConfiguration configuration = ViewConfiguration.get(getContext());
+        mTouchSlop = configuration.getScaledTouchSlop();
     }
 
     private void trackMovement(MotionEvent event) {
@@ -363,10 +375,231 @@
         event.offsetLocation(-deltaX, -deltaY);
     }
 
-    // Pass all touches along to the handle, allowing the user to drag the panel closed from its interior
     @Override
     public boolean onTouchEvent(MotionEvent event) {
-        return mHandleView.dispatchTouchEvent(event);
+
+        /*
+         * We capture touch events here and update the expand height here in case according to
+         * the users fingers. This also handles multi-touch.
+         *
+         * If the user just clicks shortly, we give him a quick peek of the shade.
+         *
+         * Flinging is also enabled in order to open or close the shade.
+         */
+
+        int pointerIndex = event.findPointerIndex(mTrackingPointer);
+        if (pointerIndex < 0) {
+            pointerIndex = 0;
+            mTrackingPointer = event.getPointerId(pointerIndex);
+        }
+        final float y = event.getY(pointerIndex);
+
+        switch (event.getActionMasked()) {
+            case MotionEvent.ACTION_DOWN:
+                mTracking = true;
+                if (mHandleView != null) {
+                    mHandleView.setPressed(true);
+                    postInvalidate(); // catch the press state change
+                }
+
+                mInitialTouchY = y;
+                initVelocityTracker();
+                trackMovement(event);
+                mTimeAnimator.cancel(); // end any outstanding animations
+                onTrackingStarted();
+                mInitialOffsetOnTouch = mExpandedHeight;
+                if (mExpandedHeight == 0) {
+                    mJustPeeked = true;
+                    runPeekAnimation();
+                }
+                break;
+
+            case MotionEvent.ACTION_POINTER_UP:
+                final int upPointer = event.getPointerId(event.getActionIndex());
+                if (mTrackingPointer == upPointer) {
+                    // gesture is ongoing, find a new pointer to track
+                    final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
+                    final float newY = event.getY(newIndex);
+                    mTrackingPointer = event.getPointerId(newIndex);
+                    mInitialOffsetOnTouch = mExpandedHeight;
+                    mInitialTouchY = newY;
+                }
+                break;
+
+            case MotionEvent.ACTION_MOVE:
+                final float h = y - mInitialTouchY + mInitialOffsetOnTouch;
+                if (h > mPeekHeight) {
+                    if (mPeekAnimator != null && mPeekAnimator.isStarted()) {
+                        mPeekAnimator.cancel();
+                    }
+                    mJustPeeked = false;
+                }
+                if (!mJustPeeked) {
+                    setExpandedHeightInternal(h);
+                    mBar.panelExpansionChanged(PanelView.this, mExpandedFraction);
+                }
+
+                trackMovement(event);
+                break;
+
+            case MotionEvent.ACTION_UP:
+            case MotionEvent.ACTION_CANCEL:
+                mFinalTouchY = y;
+                mTracking = false;
+                mTrackingPointer = -1;
+                if (mHandleView != null) {
+                    mHandleView.setPressed(false);
+                    postInvalidate(); // catch the press state change
+                }
+                onTrackingStopped();
+                trackMovement(event);
+
+                float vel = getCurrentVelocity();
+                fling(vel, true);
+
+                if (mVelocityTracker != null) {
+                    mVelocityTracker.recycle();
+                    mVelocityTracker = null;
+                }
+                break;
+        }
+        return true;
+    }
+
+    protected void onTrackingStopped() {
+        mBar.onTrackingStopped(PanelView.this);
+    }
+
+    protected void onTrackingStarted() {
+        mBar.onTrackingStarted(PanelView.this);
+        onExpandingStarted();
+    }
+
+    private float getCurrentVelocity() {
+        float vel = 0;
+        float yVel = 0, xVel = 0;
+        boolean negative = false;
+
+        // the velocitytracker might be null if we got a bad input stream
+        if (mVelocityTracker == null) {
+            return 0;
+        }
+
+        mVelocityTracker.computeCurrentVelocity(1000);
+
+        yVel = mVelocityTracker.getYVelocity();
+        negative = yVel < 0;
+
+        xVel = mVelocityTracker.getXVelocity();
+        if (xVel < 0) {
+            xVel = -xVel;
+        }
+        if (xVel > mFlingGestureMaxXVelocityPx) {
+            xVel = mFlingGestureMaxXVelocityPx; // limit how much we care about the x axis
+        }
+
+        vel = (float) Math.hypot(yVel, xVel);
+        if (vel > mFlingGestureMaxOutputVelocityPx) {
+            vel = mFlingGestureMaxOutputVelocityPx;
+        }
+
+        // if you've barely moved your finger, we treat the velocity as 0
+        // preventing spurious flings due to touch screen jitter
+        final float deltaY = Math.abs(mFinalTouchY - mInitialTouchY);
+        if (deltaY < mFlingGestureMinDistPx
+                || vel < mFlingExpandMinVelocityPx
+                ) {
+            vel = 0;
+        }
+
+        if (negative) {
+            vel = -vel;
+        }
+
+        if (DEBUG) {
+            logf("gesture: dy=%f vel=(%f,%f) vlinear=%f",
+                    deltaY,
+                    xVel, yVel,
+                    vel);
+        }
+        return vel;
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent event) {
+
+        /*
+         * If the user drags anywhere inside the panel we intercept it if he moves his finger
+         * upwards. This allows closing the shade from anywhere inside the panel.
+         *
+         * We only do this if the current content is scrolled to the bottom,
+         * i.e isScrolledToBottom() is true and therefore there is no conflicting scrolling gesture
+         * possible.
+         */
+        int pointerIndex = event.findPointerIndex(mTrackingPointer);
+        if (pointerIndex < 0) {
+            pointerIndex = 0;
+            mTrackingPointer = event.getPointerId(pointerIndex);
+        }
+        final float y = event.getY(pointerIndex);
+        boolean scrolledToBottom = isScrolledToBottom();
+
+        switch (event.getActionMasked()) {
+            case MotionEvent.ACTION_DOWN:
+                if (mHandleView != null) {
+                    mHandleView.setPressed(true);
+                    // catch the press state change
+                    postInvalidate();
+                }
+                mInitialTouchY = y;
+                initVelocityTracker();
+                trackMovement(event);
+                mTimeAnimator.cancel(); // end any outstanding animations
+                if (mExpandedHeight == 0 || y > getContentHeight()) {
+                    return true;
+                }
+                break;
+            case MotionEvent.ACTION_POINTER_UP:
+                final int upPointer = event.getPointerId(event.getActionIndex());
+                if (mTrackingPointer == upPointer) {
+                    // gesture is ongoing, find a new pointer to track
+                    final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
+                    mTrackingPointer = event.getPointerId(newIndex);
+                    final float newY = event.getY(newIndex);
+                    mInitialTouchY = newY;
+                }
+                break;
+
+            case MotionEvent.ACTION_MOVE:
+                final float h = y - mInitialTouchY;
+                trackMovement(event);
+                if (scrolledToBottom) {
+                    if (h < -mTouchSlop) {
+                        mInitialOffsetOnTouch = mExpandedHeight;
+                        mInitialTouchY = y;
+                        mTracking = true;
+                        onTrackingStarted();
+                        return true;
+                    }
+                }
+                break;
+        }
+        return false;
+    }
+
+    private void initVelocityTracker() {
+        if (mVelocityTracker != null) {
+            mVelocityTracker.recycle();
+        }
+        mVelocityTracker = FlingTracker.obtain();
+    }
+
+    protected boolean isScrolledToBottom() {
+        return false;
+    }
+
+    protected float getContentHeight() {
+        return mExpandedHeight;
     }
 
     @Override
@@ -375,134 +608,6 @@
         mHandleView = findViewById(R.id.handle);
 
         loadDimens();
-
-        if (DEBUG) logf("handle view: " + mHandleView);
-        if (mHandleView != null) {
-            mHandleView.setOnTouchListener(new View.OnTouchListener() {
-                @Override
-                public boolean onTouch(View v, MotionEvent event) {
-                    int pointerIndex = event.findPointerIndex(mTrackingPointer);
-                    if (pointerIndex < 0) {
-                        pointerIndex = 0;
-                        mTrackingPointer = event.getPointerId(pointerIndex);
-                    }
-                    final float y = event.getY(pointerIndex);
-                    final float rawDelta = event.getRawY() - event.getY();
-                    final float rawY = y + rawDelta;
-                    if (DEBUG) logf("handle.onTouch: a=%s p=[%d,%d] y=%.1f rawY=%.1f off=%.1f",
-                            MotionEvent.actionToString(event.getAction()),
-                            mTrackingPointer, pointerIndex,
-                            y, rawY, mTouchOffset);
-                    PanelView.this.getLocationOnScreen(mAbsPos);
-
-                    switch (event.getActionMasked()) {
-                        case MotionEvent.ACTION_DOWN:
-                            mTracking = true;
-                            mHandleView.setPressed(true);
-                            postInvalidate(); // catch the press state change
-                            mInitialTouchY = y;
-                            mVelocityTracker = FlingTracker.obtain();
-                            trackMovement(event);
-                            mTimeAnimator.cancel(); // end any outstanding animations
-                            mBar.onTrackingStarted(PanelView.this);
-                            mTouchOffset = (rawY - mAbsPos[1]) - mExpandedHeight;
-                            if (mExpandedHeight == 0) {
-                                mJustPeeked = true;
-                                runPeekAnimation();
-                            }
-                            break;
-
-                        case MotionEvent.ACTION_POINTER_UP:
-                            final int upPointer = event.getPointerId(event.getActionIndex());
-                            if (mTrackingPointer == upPointer) {
-                                // gesture is ongoing, find a new pointer to track
-                                final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
-                                final float newY = event.getY(newIndex);
-                                final float newRawY = newY + rawDelta;
-                                mTrackingPointer = event.getPointerId(newIndex);
-                                mTouchOffset = (newRawY - mAbsPos[1]) - mExpandedHeight;
-                                mInitialTouchY = newY;
-                            }
-                            break;
-
-                        case MotionEvent.ACTION_MOVE:
-                            final float h = rawY - mAbsPos[1] - mTouchOffset;
-                            if (h > mPeekHeight) {
-                                if (mPeekAnimator != null && mPeekAnimator.isStarted()) {
-                                    mPeekAnimator.cancel();
-                                }
-                                mJustPeeked = false;
-                            }
-                            if (!mJustPeeked) {
-                                PanelView.this.setExpandedHeightInternal(h);
-                                mBar.panelExpansionChanged(PanelView.this, mExpandedFraction);
-                            }
-
-                            trackMovement(event);
-                            break;
-
-                        case MotionEvent.ACTION_UP:
-                        case MotionEvent.ACTION_CANCEL:
-                            mFinalTouchY = y;
-                            mTracking = false;
-                            mTrackingPointer = -1;
-                            mHandleView.setPressed(false);
-                            postInvalidate(); // catch the press state change
-                            mBar.onTrackingStopped(PanelView.this);
-                            trackMovement(event);
-
-                            float vel = 0, yVel = 0, xVel = 0;
-                            boolean negative = false;
-
-                            if (mVelocityTracker != null) {
-                                // the velocitytracker might be null if we got a bad input stream
-                                mVelocityTracker.computeCurrentVelocity(1000);
-
-                                yVel = mVelocityTracker.getYVelocity();
-                                negative = yVel < 0;
-
-                                xVel = mVelocityTracker.getXVelocity();
-                                if (xVel < 0) {
-                                    xVel = -xVel;
-                                }
-                                if (xVel > mFlingGestureMaxXVelocityPx) {
-                                    xVel = mFlingGestureMaxXVelocityPx; // limit how much we care about the x axis
-                                }
-
-                                vel = (float)Math.hypot(yVel, xVel);
-                                if (vel > mFlingGestureMaxOutputVelocityPx) {
-                                    vel = mFlingGestureMaxOutputVelocityPx;
-                                }
-
-                                mVelocityTracker.recycle();
-                                mVelocityTracker = null;
-                            }
-
-                            // if you've barely moved your finger, we treat the velocity as 0
-                            // preventing spurious flings due to touch screen jitter
-                            final float deltaY = Math.abs(mFinalTouchY - mInitialTouchY);
-                            if (deltaY < mFlingGestureMinDistPx
-                                    || vel < mFlingExpandMinVelocityPx
-                                    ) {
-                                vel = 0;
-                            }
-
-                            if (negative) {
-                                vel = -vel;
-                            }
-
-                            if (DEBUG) logf("gesture: dy=%f vel=(%f,%f) vlinear=%f",
-                                    deltaY,
-                                    xVel, yVel,
-                                    vel);
-
-                            fling(vel, true);
-
-                            break;
-                    }
-                    return true;
-                }});
-        }
     }
 
     public void fling(float vel, boolean always) {
@@ -511,6 +616,8 @@
 
         if (always||mVel != 0) {
             animationTick(0); // begin the animation
+        } else {
+            onExpandingFinished();
         }
     }
 
@@ -524,11 +631,6 @@
         return mViewName;
     }
 
-    @Override
-    protected void onViewAdded(View child) {
-        if (DEBUG) logf("onViewAdded: " + child);
-    }
-
     public View getHandle() {
         return mHandleView;
     }
@@ -543,19 +645,24 @@
 
         // Did one of our children change size?
         int newHeight = getMeasuredHeight();
-        if (newHeight != mFullHeight) {
-            mFullHeight = newHeight;
+        if (newHeight != mMaxPanelHeight) {
+            mMaxPanelHeight = newHeight;
             // If the user isn't actively poking us, let's rubberband to the content
             if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted()
-                    && mExpandedHeight > 0 && mExpandedHeight != mFullHeight) {
-                mExpandedHeight = mFullHeight;
+                    && mExpandedHeight > 0 && mExpandedHeight != mMaxPanelHeight
+                    && mMaxPanelHeight > 0) {
+                mExpandedHeight = mMaxPanelHeight;
             }
         }
         heightMeasureSpec = MeasureSpec.makeMeasureSpec(
-                    (int) mExpandedHeight, MeasureSpec.AT_MOST); // MeasureSpec.getMode(heightMeasureSpec));
+                    getDesiredMeasureHeight(), MeasureSpec.AT_MOST);
         setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
     }
 
+    protected int getDesiredMeasureHeight() {
+        return (int) mExpandedHeight;
+    }
+
 
     public void setExpandedHeight(float height) {
         if (DEBUG) logf("setExpandedHeight(%.1f)", height);
@@ -569,8 +676,20 @@
 
     @Override
     protected void onLayout (boolean changed, int left, int top, int right, int bottom) {
-        if (DEBUG) logf("onLayout: changed=%s, bottom=%d eh=%d fh=%d", changed?"T":"f", bottom, (int)mExpandedHeight, mFullHeight);
+        if (DEBUG) logf("onLayout: changed=%s, bottom=%d eh=%d fh=%d", changed?"T":"f", bottom,
+                (int)mExpandedHeight, mMaxPanelHeight);
         super.onLayout(changed, left, top, right, bottom);
+        requestPanelHeightUpdate();
+    }
+
+    protected void requestPanelHeightUpdate() {
+        float currentMaxPanelHeight = getMaxPanelHeight();
+
+        // If the user isn't actively poking us, let's update the height
+        if (!mTracking && !mRubberbanding && !mTimeAnimator.isStarted()
+                && mExpandedHeight > 0 && currentMaxPanelHeight != mExpandedHeight) {
+            setExpandedHeightInternal(currentMaxPanelHeight);
+        }
     }
 
     public void setExpandedHeightInternal(float h) {
@@ -583,7 +702,7 @@
             h = 0;
         }
 
-        float fh = getFullHeight();
+        float fh = getMaxPanelHeight();
         if (fh == 0) {
             // Hmm, full height hasn't been computed yet
         }
@@ -593,9 +712,13 @@
 
         mExpandedHeight = h;
 
-        if (DEBUG) logf("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh, mTracking?"T":"f", mRubberbanding?"T":"f");
+        if (DEBUG) {
+            logf("setExpansion: height=%.1f fh=%.1f tracking=%s rubber=%s", h, fh,
+                    mTracking ? "T" : "f", mRubberbanding ? "T" : "f");
+        }
 
-        requestLayout();
+        onHeightUpdated(mExpandedHeight);
+
 //        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams();
 //        lp.height = (int) mExpandedHeight;
 //        setLayoutParams(lp);
@@ -603,13 +726,23 @@
         mExpandedFraction = Math.min(1f, (fh == 0) ? 0 : h / fh);
     }
 
-    private float getFullHeight() {
-        if (mFullHeight <= 0) {
-            if (DEBUG) logf("Forcing measure() since fullHeight=" + mFullHeight);
+    protected void onHeightUpdated(float expandedHeight) {
+        requestLayout();
+    }
+
+    /**
+     * This returns the maximum height of the panel. Children should override this if their
+     * desired height is not the full height.
+     *
+     * @return the default implementation simply returns the maximum height.
+     */
+    protected int getMaxPanelHeight() {
+        if (mMaxPanelHeight <= 0) {
+            if (DEBUG) logf("Forcing measure() since mMaxPanelHeight=" + mMaxPanelHeight);
             measure(MeasureSpec.makeMeasureSpec(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY),
                     MeasureSpec.makeMeasureSpec(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY));
         }
-        return mFullHeight;
+        return mMaxPanelHeight;
     }
 
     public void setExpandedFraction(float frac) {
@@ -621,7 +754,7 @@
             }
             frac = 0;
         }
-        setExpandedHeight(getFullHeight() * frac);
+        setExpandedHeight(getMaxPanelHeight() * frac);
     }
 
     public float getExpandedHeight() {
@@ -633,7 +766,7 @@
     }
 
     public boolean isFullyExpanded() {
-        return mExpandedHeight >= getFullHeight();
+        return mExpandedHeight >= getMaxPanelHeight();
     }
 
     public boolean isFullyCollapsed() {
@@ -658,6 +791,7 @@
         if (!isFullyCollapsed()) {
             mTimeAnimator.cancel();
             mClosing = true;
+            onExpandingStarted();
             // collapse() should never be a rubberband, even if an animation is already running
             mRubberbanding = false;
             fling(-mSelfCollapseVelocityPx, /*always=*/ true);
@@ -668,6 +802,7 @@
         if (DEBUG) logf("expand: " + this);
         if (isFullyCollapsed()) {
             mBar.startOpeningPanel(this);
+            onExpandingStarted();
             fling(mSelfExpandVelocityPx, /*always=*/ true);
         } else if (DEBUG) {
             if (DEBUG) logf("skipping expansion: is expanded");
@@ -681,12 +816,12 @@
     }
 
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-        pw.println(String.format("[PanelView(%s): expandedHeight=%f fullHeight=%f closing=%s"
+        pw.println(String.format("[PanelView(%s): expandedHeight=%f maxPanelHeight=%d closing=%s"
                 + " tracking=%s rubberbanding=%s justPeeked=%s peekAnim=%s%s timeAnim=%s%s"
                 + "]",
                 this.getClass().getSimpleName(),
                 getExpandedHeight(),
-                getFullHeight(),
+                getMaxPanelHeight(),
                 mClosing?"T":"f",
                 mTracking?"T":"f",
                 mRubberbanding?"T":"f",
@@ -695,4 +830,15 @@
                 mTimeAnimator, ((mTimeAnimator!=null && mTimeAnimator.isStarted())?" (started)":"")
         ));
     }
+
+    private final OnHierarchyChangeListener mHierarchyListener = new OnHierarchyChangeListener() {
+        @Override
+        public void onChildViewAdded(View parent, View child) {
+            if (DEBUG) logf("onViewAdded: " + child);
+        }
+
+        @Override
+        public void onChildViewRemoved(View parent, View child) {
+        }
+    };
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 650c557..1d01f91 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -16,14 +16,16 @@
 
 package com.android.systemui.statusbar.phone;
 
+
 import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
 import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN;
 import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
 import static android.app.StatusBarManager.windowStateToString;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
+import static com.android.systemui.statusbar.stack.NotificationStackScrollLayout.OnChildLocationsChangedListener;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -59,12 +61,14 @@
 import android.os.SystemClock;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.provider.Settings.Global;
 import android.service.notification.StatusBarNotification;
 import android.util.DisplayMetrics;
 import android.util.EventLog;
 import android.util.Log;
 import android.view.Display;
 import android.view.Gravity;
+import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.VelocityTracker;
 import android.view.View;
@@ -80,18 +84,23 @@
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.ScrollView;
 import android.widget.TextView;
 
 import com.android.internal.statusbar.StatusBarIcon;
+import com.android.keyguard.ViewMediatorCallback;
 import com.android.systemui.DemoMode;
 import com.android.systemui.EventLogTags;
 import com.android.systemui.R;
+import com.android.systemui.keyguard.KeyguardViewMediator;
 import com.android.systemui.statusbar.BaseStatusBar;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.GestureRecorder;
+import com.android.systemui.statusbar.InterceptedNotifications;
+import com.android.systemui.statusbar.LatestItemView;
 import com.android.systemui.statusbar.NotificationData;
 import com.android.systemui.statusbar.NotificationData.Entry;
+import com.android.systemui.statusbar.NotificationOverflowContainer;
+import com.android.systemui.statusbar.NotificationOverflowIconsView;
 import com.android.systemui.statusbar.SignalClusterView;
 import com.android.systemui.statusbar.StatusBarIconView;
 import com.android.systemui.statusbar.policy.BatteryController;
@@ -100,9 +109,8 @@
 import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
 import com.android.systemui.statusbar.policy.LocationController;
 import com.android.systemui.statusbar.policy.NetworkController;
-import com.android.systemui.statusbar.policy.NotificationRowLayout;
-import com.android.systemui.statusbar.policy.OnSizeChangedListener;
 import com.android.systemui.statusbar.policy.RotationLockController;
+import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -169,11 +177,12 @@
     Display mDisplay;
     Point mCurrentDisplaySize = new Point();
     private float mHeadsUpVerticalOffset;
-    private int[] mPilePosition = new int[2];
+    private int[] mStackScrollerPosition = new int[2];
 
     StatusBarWindowView mStatusBarWindow;
     PhoneStatusBarView mStatusBarView;
     private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
+    private StatusBarWindowManager mStatusBarWindowManager;
 
     int mPixelFormat;
     Object mQueueLock = new Object();
@@ -195,7 +204,6 @@
 
     // expanded notifications
     NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window
-    ScrollView mScrollView;
     View mExpandedContents;
     int mNotificationPanelGravity;
     int mNotificationPanelMarginBottomPx, mNotificationPanelMarginPx;
@@ -213,9 +221,12 @@
 
     // top bar
     View mNotificationPanelHeader;
+    View mKeyguardStatusView;
+    int mKeyguardMaxNotificationCount;
     View mDateTimeView;
     View mClearButton;
     ImageView mSettingsButton, mNotificationButton;
+    View mKeyguardSettingsFlipButton;
 
     // carrier/wifi label
     private TextView mCarrierLabel;
@@ -338,6 +349,9 @@
     private int mNavigationBarMode;
     private Boolean mScreenOn;
 
+    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
+    private ViewMediatorCallback mKeyguardViewMediatorCallback;
+
     private final Runnable mAutohide = new Runnable() {
         @Override
         public void run() {
@@ -347,12 +361,31 @@
             }
         }};
 
+    private Runnable mOnFlipRunnable;
+    private InterceptedNotifications mIntercepted;
+
+    private final OnChildLocationsChangedListener mOnChildLocationsChangedListener =
+            new OnChildLocationsChangedListener() {
+        @Override
+        public void onChildLocationsChanged(NotificationStackScrollLayout stackScrollLayout) {
+            userActivity();
+        }
+    };
+
+    public void setOnFlipRunnable(Runnable onFlipRunnable) {
+        mOnFlipRunnable = onFlipRunnable;
+    }
+
     @Override
     public void setZenMode(int mode) {
         super.setZenMode(mode);
         if (mModeIcon == null) return;
         if (!isDeviceProvisioned()) return;
-        mModeIcon.setVisibility(mode != Settings.Global.ZEN_MODE_OFF ? View.VISIBLE : View.GONE);
+        final boolean zen = mode != Settings.Global.ZEN_MODE_OFF;
+        mModeIcon.setVisibility(zen ? View.VISIBLE : View.GONE);
+        if (!zen) {
+            mIntercepted.releaseIntercepted();
+        }
     }
 
     @Override
@@ -360,7 +393,7 @@
         mDisplay = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
                 .getDefaultDisplay();
         updateDisplaySize();
-
+        mIntercepted = new InterceptedNotifications(mContext, this);
         super.start(); // calls createAndAddWindows()
 
         addNavigationBar();
@@ -378,6 +411,7 @@
                     Settings.Global.getUriFor(SETTING_HEADS_UP_TICKER), true,
                     mHeadsUpObserver);
         }
+        startKeyguard();
     }
 
     // ================================================================================
@@ -414,7 +448,8 @@
         PanelHolder holder = (PanelHolder) mStatusBarWindow.findViewById(R.id.panel_holder);
         mStatusBarView.setPanelHolder(holder);
 
-        mNotificationPanel = (NotificationPanelView) mStatusBarWindow.findViewById(R.id.notification_panel);
+        mNotificationPanel = (NotificationPanelView) mStatusBarWindow.findViewById(
+                R.id.notification_panel);
         mNotificationPanel.setStatusBar(this);
         mNotificationPanelIsFullScreenWidth =
             (mNotificationPanel.getLayoutParams().width == ViewGroup.LayoutParams.MATCH_PARENT);
@@ -440,7 +475,8 @@
             mHeadsUpNotificationView.setBar(this);
         }
         if (MULTIUSER_DEBUG) {
-            mNotificationPanelDebugText = (TextView) mNotificationPanel.findViewById(R.id.header_debug_info);
+            mNotificationPanelDebugText = (TextView) mNotificationPanel.findViewById(
+                    R.id.header_debug_info);
             mNotificationPanelDebugText.setVisibility(View.VISIBLE);
         }
 
@@ -479,12 +515,21 @@
         mStatusBarContents = (LinearLayout)mStatusBarView.findViewById(R.id.status_bar_contents);
         mTickerView = mStatusBarView.findViewById(R.id.ticker);
 
-        mPile = (NotificationRowLayout)mStatusBarWindow.findViewById(R.id.latestItems);
-        mPile.setLayoutTransitionsEnabled(false);
-        mPile.setLongPressListener(getNotificationLongClicker());
-        mExpandedContents = mPile; // was: expanded.findViewById(R.id.notificationLinearLayout);
+        mStackScroller = (NotificationStackScrollLayout) mStatusBarWindow.findViewById(
+                R.id.notification_stack_scroller);
+        mStackScroller.setLongPressListener(getNotificationLongClicker());
+        mStackScroller.setChildLocationsChangedListener(mOnChildLocationsChangedListener);
+
+        mKeyguardIconOverflowContainer =
+                (NotificationOverflowContainer) LayoutInflater.from(mContext).inflate(
+                        R.layout.status_bar_notification_keyguard_overflow, mStackScroller, false);
+        mKeyguardIconOverflowContainer.setOnActivatedListener(this);
+        mStackScroller.addView(mKeyguardIconOverflowContainer);
+
+        mExpandedContents = mStackScroller;
 
         mNotificationPanelHeader = mStatusBarWindow.findViewById(R.id.header);
+        mKeyguardStatusView = mStatusBarWindow.findViewById(R.id.keyguard_status_view);
 
         mClearButton = mStatusBarWindow.findViewById(R.id.clear_all_button);
         mClearButton.setOnClickListener(mClearButtonListener);
@@ -525,16 +570,15 @@
             }
         }
         if (mHasFlipSettings) {
-            mNotificationButton = (ImageView) mStatusBarWindow.findViewById(R.id.notification_button);
+            mNotificationButton = (ImageView) mStatusBarWindow.findViewById(
+                    R.id.notification_button);
             if (mNotificationButton != null) {
                 mNotificationButton.setOnClickListener(mNotificationButtonListener);
             }
         }
 
-        mScrollView = (ScrollView)mStatusBarWindow.findViewById(R.id.scroll);
-        mScrollView.setVerticalScrollBarEnabled(false); // less drawing during pulldowns
         if (!mNotificationPanelIsFullScreenWidth) {
-            mScrollView.setSystemUiVisibility(
+            mNotificationPanel.setSystemUiVisibility(
                     View.STATUS_BAR_DISABLE_NOTIFICATION_ICONS |
                     View.STATUS_BAR_DISABLE_CLOCK);
         }
@@ -569,17 +613,18 @@
         if (isAPhone) {
             mEmergencyCallLabel =
                     (TextView) mStatusBarWindow.findViewById(R.id.emergency_calls_only);
-            if (mEmergencyCallLabel != null) {
-                mNetworkController.addEmergencyLabelView(mEmergencyCallLabel);
-                mEmergencyCallLabel.setOnClickListener(new View.OnClickListener() {
-                    public void onClick(View v) { }});
-                mEmergencyCallLabel.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
-                    @Override
-                    public void onLayoutChange(View v, int left, int top, int right, int bottom,
-                            int oldLeft, int oldTop, int oldRight, int oldBottom) {
-                        updateCarrierLabelVisibility(false);
-                    }});
-            }
+            // TODO: Uncomment when correctly positioned
+//            if (mEmergencyCallLabel != null) {
+//                mNetworkController.addEmergencyLabelView(mEmergencyCallLabel);
+//                mEmergencyCallLabel.setOnClickListener(new View.OnClickListener() {
+//                    public void onClick(View v) { }});
+//                mEmergencyCallLabel.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
+//                    @Override
+//                    public void onLayoutChange(View v, int left, int top, int right, int bottom,
+//                            int oldLeft, int oldTop, int oldRight, int oldBottom) {
+//                        updateCarrierLabelVisibility(false);
+//                    }});
+//            }
         }
 
         mCarrierLabel = (TextView)mStatusBarWindow.findViewById(R.id.carrier_label);
@@ -597,12 +642,12 @@
             }
 
             // set up the dynamic hide/show of the label
-            mPile.setOnSizeChangedListener(new OnSizeChangedListener() {
-                @Override
-                public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
-                    updateCarrierLabelVisibility(false);
-                }
-            });
+            // TODO: uncomment, handle this for the Stack scroller aswell
+//                ((NotificationRowLayout) mStackScroller)
+// .setOnSizeChangedListener(new OnSizeChangedListener() {
+//                @Override
+//                public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
+//                    updateCarrierLabelVisibility(false);
         }
 
         // Quick Settings (where available, some restrictions apply)
@@ -674,6 +719,13 @@
         return mStatusBarView;
     }
 
+    private void startKeyguard() {
+        KeyguardViewMediator keyguardViewMediator = getComponent(KeyguardViewMediator.class);
+        mStatusBarKeyguardViewManager = keyguardViewMediator.registerStatusBar(this,
+                mStatusBarWindow, mStatusBarWindowManager);
+        mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback();
+    }
+
     @Override
     protected void onShowSearchPanel() {
         if (mNavigationBarView != null) {
@@ -751,10 +803,6 @@
         }
     }
 
-    protected int getStatusBarGravity() {
-        return Gravity.TOP | Gravity.FILL_HORIZONTAL;
-    }
-
     public int getStatusBarHeight() {
         if (mNaturalBarHeight < 0) {
             final Resources res = mContext.getResources();
@@ -923,49 +971,54 @@
         mStatusIcons.removeViewAt(viewIndex);
     }
 
+    public UserHandle getCurrentUserHandle() {
+        return new UserHandle(mCurrentUserId);
+    }
+
     public void addNotification(IBinder key, StatusBarNotification notification) {
         if (DEBUG) Log.d(TAG, "addNotification score=" + notification.getScore());
         Entry shadeEntry = createNotificationViews(key, notification);
         if (shadeEntry == null) {
             return;
         }
-        if (!shouldIntercept(notification.getNotification())) {
-            if (mUseHeadsUp && shouldInterrupt(notification)) {
-                if (DEBUG) Log.d(TAG, "launching notification in heads up mode");
-                Entry interruptionCandidate = new Entry(key, notification, null);
-                ViewGroup holder = mHeadsUpNotificationView.getHolder();
-                if (inflateViewsForHeadsUp(interruptionCandidate, holder)) {
-                    mInterruptingNotificationTime = System.currentTimeMillis();
-                    mInterruptingNotificationEntry = interruptionCandidate;
-                    shadeEntry.setInterruption();
+        if (mZenMode != Global.ZEN_MODE_OFF && mIntercepted.tryIntercept(key, notification)) {
+            return;
+        }
+        if (mUseHeadsUp && shouldInterrupt(notification)) {
+            if (DEBUG) Log.d(TAG, "launching notification in heads up mode");
+            Entry interruptionCandidate = new Entry(key, notification, null);
+            ViewGroup holder = mHeadsUpNotificationView.getHolder();
+            if (inflateViewsForHeadsUp(interruptionCandidate, holder)) {
+                mInterruptingNotificationTime = System.currentTimeMillis();
+                mInterruptingNotificationEntry = interruptionCandidate;
+                shadeEntry.setInterruption();
 
-                    // 1. Populate mHeadsUpNotificationView
-                    mHeadsUpNotificationView.setNotification(mInterruptingNotificationEntry);
+                // 1. Populate mHeadsUpNotificationView
+                mHeadsUpNotificationView.setNotification(mInterruptingNotificationEntry);
 
-                    // 2. Animate mHeadsUpNotificationView in
-                    mHandler.sendEmptyMessage(MSG_SHOW_HEADS_UP);
+                // 2. Animate mHeadsUpNotificationView in
+                mHandler.sendEmptyMessage(MSG_SHOW_HEADS_UP);
 
-                    // 3. Set alarm to age the notification off
-                    resetHeadsUpDecayTimer();
-                }
-            } else if (notification.getNotification().fullScreenIntent != null) {
-                // Stop screensaver if the notification has a full-screen intent.
-                // (like an incoming phone call)
-                awakenDreams();
+                // 3. Set alarm to age the notification off
+                resetHeadsUpDecayTimer();
+            }
+        } else if (notification.getNotification().fullScreenIntent != null) {
+            // Stop screensaver if the notification has a full-screen intent.
+            // (like an incoming phone call)
+            awakenDreams();
 
-                // not immersive & a full-screen alert should be shown
-                if (DEBUG) Log.d(TAG, "Notification has fullScreenIntent; sending fullScreenIntent");
-                try {
-                    notification.getNotification().fullScreenIntent.send();
-                } catch (PendingIntent.CanceledException e) {
-                }
-            } else {
-                // usual case: status bar visible & not immersive
+            // not immersive & a full-screen alert should be shown
+            if (DEBUG) Log.d(TAG, "Notification has fullScreenIntent; sending fullScreenIntent");
+            try {
+                notification.getNotification().fullScreenIntent.send();
+            } catch (PendingIntent.CanceledException e) {
+            }
+        } else {
+            // usual case: status bar visible & not immersive
 
-                // show the ticker if there isn't already a heads up
-                if (mInterruptingNotificationEntry == null) {
-                    tick(null, notification, true);
-                }
+            // show the ticker if there isn't already a heads up
+            if (mInterruptingNotificationEntry == null) {
+                tick(null, notification, true);
             }
         }
         addNotificationViews(shadeEntry);
@@ -983,6 +1036,12 @@
         }
     }
 
+    @Override
+    public void updateNotification(IBinder key, StatusBarNotification notification) {
+        super.updateNotification(key, notification);
+        mIntercepted.update(key, notification);
+    }
+
     public void removeNotification(IBinder key) {
         StatusBarNotification old = removeNotificationViews(key);
         if (SPEW) Log.d(TAG, "removeNotification key=" + key + " old=" + old);
@@ -1000,11 +1059,11 @@
             }
 
             if (CLOSE_PANEL_WHEN_EMPTIED && mNotificationData.size() == 0
-                    && !mNotificationPanel.isTracking()) {
+                    && !mNotificationPanel.isTracking() && !mOnKeyguard) {
                 animateCollapsePanels();
             }
         }
-
+        mIntercepted.remove(key);
         setAreThereNotifications();
     }
 
@@ -1041,7 +1100,7 @@
     }
 
     private void loadNotificationShade() {
-        if (mPile == null) return;
+        if (mStackScroller == null) return;
 
         int N = mNotificationData.size();
 
@@ -1053,8 +1112,8 @@
             Entry ent = mNotificationData.get(N-i-1);
             if (!(provisioned || showNotificationEvenIfUnprovisioned(ent.notification))) continue;
 
-            // TODO How do we want to badge notifcations from related users.
-            if (!notificationIsForCurrentOrRelatedUser(ent.notification)) continue;
+            // TODO How do we want to badge notifcations from profiles.
+            if (!notificationIsForCurrentProfiles(ent.notification)) continue;
 
             final int vis = ent.notification.getNotification().visibility;
             if (vis != Notification.VISIBILITY_SECRET) {
@@ -1067,21 +1126,21 @@
         }
 
         ArrayList<View> toRemove = new ArrayList<View>();
-        for (int i=0; i<mPile.getChildCount(); i++) {
-            View child = mPile.getChildAt(i);
-            if (!toShow.contains(child)) {
+        for (int i=0; i< mStackScroller.getChildCount(); i++) {
+            View child = mStackScroller.getChildAt(i);
+            if (!toShow.contains(child) && child != mKeyguardIconOverflowContainer) {
                 toRemove.add(child);
             }
         }
 
         for (View remove : toRemove) {
-            mPile.removeView(remove);
+            mStackScroller.removeView(remove);
         }
 
         for (int i=0; i<toShow.size(); i++) {
             View v = toShow.get(i);
             if (v.getParent() == null) {
-                mPile.addView(v, i);
+                mStackScroller.addView(v, i);
             }
         }
 
@@ -1113,7 +1172,7 @@
             Entry ent = mNotificationData.get(N-i-1);
             if (!((provisioned && ent.notification.getScore() >= HIDE_ICONS_BELOW_SCORE)
                     || showNotificationEvenIfUnprovisioned(ent.notification))) continue;
-            if (!notificationIsForCurrentOrRelatedUser(ent.notification)) continue;
+            if (!notificationIsForCurrentProfiles(ent.notification)) continue;
             if (isLockscreenPublicMode()
                     && ent.notification.getNotification().visibility
                             == Notification.VISIBILITY_SECRET
@@ -1121,7 +1180,7 @@
                 // in "public" mode (atop a secure keyguard), secret notifs are totally hidden
                 continue;
             }
-            if (shouldIntercept(ent.notification.getNotification())) {
+            if (mIntercepted.isSyntheticEntry(ent)) {
                 continue;
             }
             toShow.add(ent.icon);
@@ -1148,19 +1207,22 @@
     }
 
     protected void updateCarrierLabelVisibility(boolean force) {
+        // TODO: Handle this for the notification stack scroller as well
         if (!mShowCarrierInPanel) return;
         // The idea here is to only show the carrier label when there is enough room to see it,
         // i.e. when there aren't enough notifications to fill the panel.
         if (SPEW) {
-            Log.d(TAG, String.format("pileh=%d scrollh=%d carrierh=%d",
-                    mPile.getHeight(), mScrollView.getHeight(), mCarrierLabelHeight));
+            Log.d(TAG, String.format("stackScrollerh=%d scrollh=%d carrierh=%d",
+                    mStackScroller.getHeight(), mStackScroller.getHeight(),
+                    mCarrierLabelHeight));
         }
 
         final boolean emergencyCallsShownElsewhere = mEmergencyCallLabel != null;
         final boolean makeVisible =
             !(emergencyCallsShownElsewhere && mNetworkController.isEmergencyOnly())
-            && mPile.getHeight() < (mNotificationPanel.getHeight() - mCarrierLabelHeight - mNotificationHeaderHeight)
-            && mScrollView.getVisibility() == View.VISIBLE;
+            && mStackScroller.getHeight() < (mNotificationPanel.getHeight()
+                    - mCarrierLabelHeight - mNotificationHeaderHeight)
+            && mStackScroller.getVisibility() == View.VISIBLE;
 
         if (force || mCarrierLabelVisible != makeVisible) {
             mCarrierLabelVisible = makeVisible;
@@ -1203,7 +1265,7 @@
         if (mHasFlipSettings
                 && mFlipSettingsView != null
                 && mFlipSettingsView.getVisibility() == View.VISIBLE
-                && mScrollView.getVisibility() != View.VISIBLE) {
+                && mStackScroller.getVisibility() != View.VISIBLE) {
             // the flip settings panel is unequivocally showing; we should not be shown
             mClearButton.setVisibility(View.INVISIBLE);
         } else if (mClearButton.isShown()) {
@@ -1457,7 +1519,6 @@
         }
 
         mExpandedVisible = true;
-        mPile.setLayoutTransitionsEnabled(true);
         if (mNavigationBarView != null)
             mNavigationBarView.setSlippery(true);
 
@@ -1467,26 +1528,13 @@
 
         // Expand the window to encompass the full screen in anticipation of the drag.
         // This is only possible to do atomically because the status bar is at the top of the screen!
-        WindowManager.LayoutParams lp = (WindowManager.LayoutParams) mStatusBarWindow.getLayoutParams();
-        lp.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-        lp.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-        lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
-        mWindowManager.updateViewLayout(mStatusBarWindow, lp);
+        mStatusBarWindowManager.setStatusBarExpanded(true);
 
         visibilityChanged(true);
 
         setInteracting(StatusBarManager.WINDOW_STATUS_BAR, true);
     }
 
-    private void releaseFocus() {
-        if (mStatusBarWindow == null) return;
-        WindowManager.LayoutParams lp =
-                (WindowManager.LayoutParams) mStatusBarWindow.getLayoutParams();
-        lp.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-        lp.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-        mWindowManager.updateViewLayout(mStatusBarWindow, lp);
-    }
-
     public void animateCollapsePanels() {
         animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
     }
@@ -1498,9 +1546,6 @@
                     + " flags=" + flags);
         }
 
-        // release focus immediately to kick off focus change transition
-        releaseFocus();
-
         if ((flags & CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL) == 0) {
             mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL);
             mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL);
@@ -1512,6 +1557,10 @@
         }
 
         if (mStatusBarWindow != null) {
+
+            // release focus immediately to kick off focus change transition
+            mStatusBarWindowManager.setStatusBarFocusable(false);
+
             mStatusBarWindow.cancelExpandHelper();
             mStatusBarView.collapseAllPanels(true);
         }
@@ -1572,7 +1621,7 @@
         }
 
         mNotificationPanel.expand();
-        if (mHasFlipSettings && mScrollView.getVisibility() != View.VISIBLE) {
+        if (mHasFlipSettings && mStackScroller.getVisibility() != View.VISIBLE) {
             flipToNotifications();
         }
 
@@ -1586,11 +1635,11 @@
         if (mNotificationButtonAnim != null) mNotificationButtonAnim.cancel();
         if (mClearButtonAnim != null) mClearButtonAnim.cancel();
 
-        mScrollView.setVisibility(View.VISIBLE);
+        mStackScroller.setVisibility(View.VISIBLE);
         mScrollViewAnim = start(
             startDelay(FLIP_DURATION_OUT,
                 interpolator(mDecelerateInterpolator,
-                    ObjectAnimator.ofFloat(mScrollView, View.SCALE_X, 0f, 1f)
+                    ObjectAnimator.ofFloat(mStackScroller, View.SCALE_X, 0f, 1f)
                         .setDuration(FLIP_DURATION_IN)
                     )));
         mFlipSettingsViewAnim = start(
@@ -1617,6 +1666,9 @@
                 updateCarrierLabelVisibility(false);
             }
         }, FLIP_DURATION - 150);
+        if (mOnFlipRunnable != null) {
+            mOnFlipRunnable.run();
+        }
     }
 
     @Override
@@ -1648,11 +1700,21 @@
         mFlipSettingsView.setScaleX(1f);
         mFlipSettingsView.setVisibility(View.VISIBLE);
         mSettingsButton.setVisibility(View.GONE);
-        mScrollView.setVisibility(View.GONE);
-        mScrollView.setScaleX(0f);
+        mStackScroller.setVisibility(View.GONE);
+        mStackScroller.setScaleX(0f);
         mNotificationButton.setVisibility(View.VISIBLE);
         mNotificationButton.setAlpha(1f);
         mClearButton.setVisibility(View.GONE);
+        if (mOnFlipRunnable != null) {
+            mOnFlipRunnable.run();
+        }
+    }
+
+    public boolean isFlippedToSettings() {
+        if (mFlipSettingsView != null) {
+            return mFlipSettingsView.getVisibility() == View.VISIBLE;
+        }
+        return false;
     }
 
     public void flipToSettings() {
@@ -1676,15 +1738,15 @@
         mScrollViewAnim = start(
             setVisibilityWhenDone(
                 interpolator(mAccelerateInterpolator,
-                        ObjectAnimator.ofFloat(mScrollView, View.SCALE_X, 1f, 0f)
+                        ObjectAnimator.ofFloat(mStackScroller, View.SCALE_X, 1f, 0f)
                         )
                     .setDuration(FLIP_DURATION_OUT),
-                mScrollView, View.INVISIBLE));
+                    mStackScroller, View.INVISIBLE));
         mSettingsButtonAnim = start(
             setVisibilityWhenDone(
                 ObjectAnimator.ofFloat(mSettingsButton, View.ALPHA, 0f)
                     .setDuration(FLIP_DURATION),
-                    mScrollView, View.INVISIBLE));
+                    mStackScroller, View.INVISIBLE));
         mNotificationButton.setVisibility(View.VISIBLE);
         mNotificationButtonAnim = start(
             ObjectAnimator.ofFloat(mNotificationButton, View.ALPHA, 1f)
@@ -1699,6 +1761,9 @@
                 updateCarrierLabelVisibility(false);
             }
         }, FLIP_DURATION - 150);
+        if (mOnFlipRunnable != null) {
+            mOnFlipRunnable.run();
+        }
     }
 
     public void flipPanels() {
@@ -1738,8 +1803,8 @@
             if (mNotificationButtonAnim != null) mNotificationButtonAnim.cancel();
             if (mClearButtonAnim != null) mClearButtonAnim.cancel();
 
-            mScrollView.setScaleX(1f);
-            mScrollView.setVisibility(View.VISIBLE);
+            mStackScroller.setScaleX(1f);
+            mStackScroller.setVisibility(View.VISIBLE);
             mSettingsButton.setAlpha(1f);
             mSettingsButton.setVisibility(View.VISIBLE);
             mNotificationPanel.setVisibility(View.GONE);
@@ -1749,17 +1814,12 @@
         }
 
         mExpandedVisible = false;
-        mPile.setLayoutTransitionsEnabled(false);
         if (mNavigationBarView != null)
             mNavigationBarView.setSlippery(false);
         visibilityChanged(false);
 
         // Shrink the window to the size of the status bar only
-        WindowManager.LayoutParams lp = (WindowManager.LayoutParams) mStatusBarWindow.getLayoutParams();
-        lp.height = getStatusBarHeight();
-        lp.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-        lp.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-        mWindowManager.updateViewLayout(mStatusBarWindow, lp);
+        mStatusBarWindowManager.setStatusBarExpanded(false);
 
         if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) {
             setNotificationIconVisibility(true, com.android.internal.R.anim.fade_in);
@@ -1774,53 +1834,8 @@
         }
 
         setInteracting(StatusBarManager.WINDOW_STATUS_BAR, false);
-    }
 
-    /**
-     * Enables or disables layers on the children of the notifications pile.
-     *
-     * When layers are enabled, this method attempts to enable layers for the minimal
-     * number of children. Only children visible when the notification area is fully
-     * expanded will receive a layer. The technique used in this method might cause
-     * more children than necessary to get a layer (at most one extra child with the
-     * current UI.)
-     *
-     * @param layerType {@link View#LAYER_TYPE_NONE} or {@link View#LAYER_TYPE_HARDWARE}
-     */
-    private void setPileLayers(int layerType) {
-        final int count = mPile.getChildCount();
-
-        switch (layerType) {
-            case View.LAYER_TYPE_NONE:
-                for (int i = 0; i < count; i++) {
-                    mPile.getChildAt(i).setLayerType(layerType, null);
-                }
-                break;
-            case View.LAYER_TYPE_HARDWARE:
-                final int[] location = new int[2];
-                mNotificationPanel.getLocationInWindow(location);
-
-                final int left = location[0];
-                final int top = location[1];
-                final int right = left + mNotificationPanel.getWidth();
-                final int bottom = top + getExpandedViewMaxHeight();
-
-                final Rect childBounds = new Rect();
-
-                for (int i = 0; i < count; i++) {
-                    final View view = mPile.getChildAt(i);
-                    view.getLocationInWindow(location);
-
-                    childBounds.set(location[0], location[1],
-                            location[0] + view.getWidth(), location[1] + view.getHeight());
-
-                    if (childBounds.intersects(left, top, right, bottom)) {
-                        view.setLayerType(layerType, null);
-                    }
-                }
-
-                break;
-        }
+        showBouncer();
     }
 
     public boolean interceptTouchEvent(MotionEvent event) {
@@ -2120,7 +2135,7 @@
         if (!isDeviceProvisioned()) return;
 
         // not for you
-        if (!notificationIsForCurrentOrRelatedUser(n)) return;
+        if (!notificationIsForCurrentProfiles(n)) return;
 
         // Show the ticker if one is requested. Also don't do this
         // until status bar window is attached to the window manager,
@@ -2200,10 +2215,11 @@
             pw.println("  mTicking=" + mTicking);
             pw.println("  mTracking=" + mTracking);
             pw.println("  mDisplayMetrics=" + mDisplayMetrics);
-            pw.println("  mPile: " + viewInfo(mPile));
+            pw.println("  mStackScroller: " + viewInfo(mStackScroller));
             pw.println("  mTickerView: " + viewInfo(mTickerView));
-            pw.println("  mScrollView: " + viewInfo(mScrollView)
-                    + " scroll " + mScrollView.getScrollX() + "," + mScrollView.getScrollY());
+            pw.println("  mStackScroller: " + viewInfo(mStackScroller)
+                    + " scroll " + mStackScroller.getScrollX()
+                    + "," + mStackScroller.getScrollY());
         }
 
         pw.print("  mInteractingWindows="); pw.println(mInteractingWindows);
@@ -2308,30 +2324,9 @@
     }
 
     private void addStatusBarWindow() {
-        // Put up the view
-        final int height = getStatusBarHeight();
-
-        // Now that the status bar window encompasses the sliding panel and its
-        // translucent backdrop, the entire thing is made TRANSLUCENT and is
-        // hardware-accelerated.
-        final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
-                ViewGroup.LayoutParams.MATCH_PARENT,
-                height,
-                WindowManager.LayoutParams.TYPE_STATUS_BAR,
-                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-                    | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING
-                    | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH
-                    | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
-                PixelFormat.TRANSLUCENT);
-
-        lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
-
-        lp.gravity = getStatusBarGravity();
-        lp.setTitle("StatusBar");
-        lp.packageName = mContext.getPackageName();
-
         makeStatusBarView();
-        mWindowManager.addView(mStatusBarWindow, lp);
+        mStatusBarWindowManager = new StatusBarWindowManager(mContext);
+        mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
     }
 
     void setNotificationIconVisibility(boolean visible, int anim) {
@@ -2378,8 +2373,8 @@
 
         if (ENABLE_HEADS_UP && mHeadsUpNotificationView != null) {
             mHeadsUpNotificationView.setMargin(mNotificationPanelMarginPx);
-            mPile.getLocationOnScreen(mPilePosition);
-            mHeadsUpVerticalOffset = mPilePosition[1] - mNaturalBarHeight;
+            mStackScroller.getLocationOnScreen(mStackScrollerPosition);
+            mHeadsUpVerticalOffset = mStackScrollerPosition[1] - mNaturalBarHeight;
         }
 
         updateCarrierLabelVisibility(false);
@@ -2398,77 +2393,21 @@
     private View.OnClickListener mClearButtonListener = new View.OnClickListener() {
         public void onClick(View v) {
             synchronized (mNotificationData) {
-                // animate-swipe all dismissable notifications, then animate the shade closed
-                int numChildren = mPile.getChildCount();
-
-                int scrollTop = mScrollView.getScrollY();
-                int scrollBottom = scrollTop + mScrollView.getHeight();
-                final ArrayList<View> snapshot = new ArrayList<View>(numChildren);
-                for (int i=0; i<numChildren; i++) {
-                    final View child = mPile.getChildAt(i);
-                    if (mPile.canChildBeDismissed(child) && child.getBottom() > scrollTop &&
-                            child.getTop() < scrollBottom) {
-                        snapshot.add(child);
-                    }
-                }
-                if (snapshot.isEmpty()) {
-                    animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
-                    return;
-                }
-                new Thread(new Runnable() {
+                mPostCollapseCleanup = new Runnable() {
                     @Override
                     public void run() {
-                        // Decrease the delay for every row we animate to give the sense of
-                        // accelerating the swipes
-                        final int ROW_DELAY_DECREMENT = 10;
-                        int currentDelay = 140;
-                        int totalDelay = 0;
-
-                        // Set the shade-animating state to avoid doing other work during
-                        // all of these animations. In particular, avoid layout and
-                        // redrawing when collapsing the shade.
-                        mPile.setViewRemoval(false);
-
-                        mPostCollapseCleanup = new Runnable() {
-                            @Override
-                            public void run() {
-                                if (DEBUG) {
-                                    Log.v(TAG, "running post-collapse cleanup");
-                                }
-                                try {
-                                    mPile.setViewRemoval(true);
-                                    mBarService.onClearAllNotifications(mCurrentUserId);
-                                } catch (Exception ex) { }
-                            }
-                        };
-
-                        View sampleView = snapshot.get(0);
-                        int width = sampleView.getWidth();
-                        final int dir = sampleView.isLayoutRtl() ? -1 : +1;
-                        final int velocity = dir * width * 8; // 1000/8 = 125 ms duration
-                        for (final View _v : snapshot) {
-                            mHandler.postDelayed(new Runnable() {
-                                @Override
-                                public void run() {
-                                    mPile.dismissRowAnimated(_v, velocity);
-                                }
-                            }, totalDelay);
-                            currentDelay = Math.max(50, currentDelay - ROW_DELAY_DECREMENT);
-                            totalDelay += currentDelay;
+                        if (DEBUG) {
+                            Log.v(TAG, "running post-collapse cleanup");
                         }
-                        // Delay the collapse animation until after all swipe animations have
-                        // finished. Provide some buffer because there may be some extra delay
-                        // before actually starting each swipe animation. Ideally, we'd
-                        // synchronize the end of those animations with the start of the collaps
-                        // exactly.
-                        mHandler.postDelayed(new Runnable() {
-                            @Override
-                            public void run() {
-                                animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
-                            }
-                        }, totalDelay + 225);
+                        try {
+                            mBarService.onClearAllNotifications(mCurrentUserId);
+                        } catch (Exception ex) { }
                     }
-                }).start();
+                };
+
+                animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
+                return;
+                // TODO: Handle this better with notification stack scroller
             }
         }
     };
@@ -2525,8 +2464,6 @@
             }
             else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
                 mScreenOn = false;
-                // no waiting!
-                makeExpandedInvisible();
                 notifyNavigationBarScreenOn(false);
                 notifyHeadsUpScreenOn(false);
                 finishBarAnimations();
@@ -2702,7 +2639,10 @@
         }
 
         mHeadsUpNotificationDecay = res.getInteger(R.integer.heads_up_notification_decay);
-        mRowHeight =  res.getDimensionPixelSize(R.dimen.notification_row_min_height);
+        mRowMinHeight =  res.getDimensionPixelSize(R.dimen.notification_row_min_height);
+        mRowMaxHeight =  res.getDimensionPixelSize(R.dimen.notification_row_max_height);
+
+        mKeyguardMaxNotificationCount = res.getInteger(R.integer.keyguard_max_notification_count);
 
         if (false) Log.v(TAG, "updateResources");
     }
@@ -2875,4 +2815,126 @@
             ((DemoMode)v).dispatchDemoCommand(command, args);
         }
     }
+
+    public boolean isOnKeyguard() {
+        return mOnKeyguard;
+    }
+
+    public void showKeyguard() {
+        mOnKeyguard = true;
+        instantExpandNotificationsPanel();
+        if (isFlippedToSettings()) {
+            flipToNotifications();
+        }
+        mStatusBarWindow.setSystemUiVisibility(View.STATUS_BAR_DISABLE_HOME);
+        mKeyguardStatusView.setVisibility(View.VISIBLE);
+        mNotificationPanelHeader.setVisibility(View.GONE);
+        if (mKeyguardSettingsFlipButton == null) {
+            ViewStub flipStub = (ViewStub) mStatusBarWindow.findViewById(R.id.keyguard_flip_stub);
+            mKeyguardSettingsFlipButton = flipStub.inflate();
+            installSettingsButton(mKeyguardSettingsFlipButton);
+        }
+        mKeyguardSettingsFlipButton.setVisibility(View.VISIBLE);
+        mKeyguardSettingsFlipButton.findViewById(R.id.settings_button).setVisibility(View.VISIBLE);
+        mKeyguardSettingsFlipButton.findViewById(R.id.notification_button)
+                .setVisibility(View.INVISIBLE);
+        updateRowStates();
+    }
+
+    public void hideKeyguard() {
+        mOnKeyguard = false;
+        mStatusBarWindow.setSystemUiVisibility(0);
+        mKeyguardStatusView.setVisibility(View.GONE);
+        mNotificationPanelHeader.setVisibility(View.VISIBLE);
+        mKeyguardSettingsFlipButton.setVisibility(View.GONE);
+        updateRowStates();
+    }
+
+    public void userActivity() {
+        if (mOnKeyguard) {
+            mKeyguardViewMediatorCallback.userActivity();
+        }
+    }
+
+    public boolean onBackPressed() {
+        if (mOnKeyguard) {
+            return mStatusBarKeyguardViewManager.onBackPressed();
+        } else {
+            animateCollapsePanels();
+            return true;
+        }
+    }
+
+    private void showBouncer() {
+        if (mOnKeyguard) {
+            mStatusBarKeyguardViewManager.dismiss();
+        }
+    }
+
+    private void instantExpandNotificationsPanel() {
+        mExpandedVisible = true;
+        mNotificationPanel.setExpandedFraction(1);
+    }
+
+    @Override
+    public void onActivated(View view) {
+        userActivity();
+        super.onActivated(view);
+    }
+
+    @Override
+    protected int getMaxKeyguardNotifications() {
+        return mKeyguardMaxNotificationCount;
+    }
+
+    /**
+     * @return a ViewGroup that spans the entire panel which contains the quick settings
+     */
+    public ViewGroup getQuickSettingsOverlayParent() {
+        if (mHasSettingsPanel) {
+            if (mHasFlipSettings) {
+                return mNotificationPanel;
+            } else {
+                return mSettingsPanel;
+            }
+        } else {
+            return null;
+        }
+    }
+
+    private void installSettingsButton(View parent) {
+        final ImageView settingsButton =
+                (ImageView) mStatusBarWindow.findViewById(R.id.settings_button);
+        final ImageView notificationButton =
+                (ImageView) mStatusBarWindow.findViewById(R.id.notification_button);
+        if (settingsButton != null) {
+            settingsButton.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    animateExpandSettingsPanel();
+                    v.setVisibility(View.INVISIBLE);
+                    notificationButton.setVisibility(View.VISIBLE);
+                }
+            });
+            settingsButton.setVisibility(View.VISIBLE);
+            if (mHasSettingsPanel) {
+                // the settings panel is hiding behind this button
+                settingsButton.setImageResource(R.drawable.ic_notify_quicksettings);
+            } else {
+                // no settings panel, go straight to settings
+                settingsButton.setImageResource(R.drawable.ic_notify_settings);
+            }
+        }
+        if (notificationButton != null) {
+            notificationButton.setVisibility(View.INVISIBLE);
+            notificationButton.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    flipToNotifications();
+                    v.setVisibility(View.INVISIBLE);
+                    settingsButton.setVisibility(View.VISIBLE);
+                }
+            });
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index d9e3fdf..583fc3e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -37,6 +37,7 @@
 
     PhoneStatusBar mBar;
     int mScrimColor;
+    int mScrimColorKeyguard;
     float mSettingsPanelDragzoneFrac;
     float mSettingsPanelDragzoneMin;
 
@@ -52,6 +53,7 @@
 
         Resources res = getContext().getResources();
         mScrimColor = res.getColor(R.color.notification_panel_scrim_color);
+        mScrimColorKeyguard = res.getColor(R.color.notification_panel_scrim_color_keyguard);
         mSettingsPanelDragzoneMin = res.getDimension(R.dimen.settings_panel_dragzone_min);
         try {
             mSettingsPanelDragzoneFrac = res.getFraction(R.dimen.settings_panel_dragzone_fraction, 1, 1);
@@ -217,6 +219,7 @@
         if (panel == mFadingPanel && mScrimColor != 0 && ActivityManager.isHighEndGfx()
                 && mBar.mStatusBarWindow != null) {
             if (mShouldFade) {
+                int scrimColor = mBar.isOnKeyguard() ? mScrimColorKeyguard : mScrimColor;
                 frac = mPanelExpandedFractionSum; // don't judge me
                 // let's start this 20% of the way down the screen
                 frac = frac * 1.2f - 0.2f;
@@ -226,7 +229,7 @@
                     // woo, special effects
                     final float k = (float)(1f-0.5f*(1f-Math.cos(3.14159f * Math.pow(1f-frac, 2f))));
                     // attenuate background color alpha by k
-                    final int color = (int) ((mScrimColor >>> 24) * k) << 24 | (mScrimColor & 0xFFFFFF);
+                    final int color = (int) ((scrimColor >>> 24) * k) << 24 | (scrimColor & 0xFFFFFF);
                     mBar.mStatusBarWindow.setBackgroundColor(color);
                 }
             }
@@ -249,5 +252,6 @@
         mBar.animateHeadsUp(mNotificationPanel == panel, mPanelExpandedFractionSum);
 
         mBar.updateCarrierLabelVisibility(false);
+        mBar.userActivity();
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index aed9a71..b3fba76 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -71,6 +71,7 @@
 
 import com.android.internal.app.MediaRouteDialogPresenter;
 import com.android.systemui.R;
+import com.android.systemui.settings.UserSwitcherHostView;
 import com.android.systemui.statusbar.phone.QuickSettingsModel.ActivityState;
 import com.android.systemui.statusbar.phone.QuickSettingsModel.BluetoothState;
 import com.android.systemui.statusbar.phone.QuickSettingsModel.RSSIState;
@@ -310,30 +311,28 @@
         collapsePanels();
     }
 
-    private void addUserTiles(ViewGroup parent, LayoutInflater inflater) {
+    private void addUserTiles(final ViewGroup parent, final LayoutInflater inflater) {
         QuickSettingsTileView userTile = (QuickSettingsTileView)
                 inflater.inflate(R.layout.quick_settings_tile, parent, false);
         userTile.setContent(R.layout.quick_settings_tile_user, inflater);
         userTile.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                collapsePanels();
                 final UserManager um = UserManager.get(mContext);
                 if (um.isUserSwitcherEnabled()) {
-                    // Since keyguard and systemui were merged into the same process to save
-                    // memory, they share the same Looper and graphics context.  As a result,
-                    // there's no way to allow concurrent animation while keyguard inflates.
-                    // The workaround is to add a slight delay to allow the animation to finish.
-                    mHandler.postDelayed(new Runnable() {
+                    final ViewGroup switcherParent = getService().getQuickSettingsOverlayParent();
+                    final UserSwitcherHostView switcher = (UserSwitcherHostView) inflater.inflate(
+                            R.layout.user_switcher_host, switcherParent, false);
+                    switcher.setFinishRunnable(new Runnable() {
+                        @Override
                         public void run() {
-                            try {
-                                WindowManagerGlobal.getWindowManagerService().lockNow(null);
-                            } catch (RemoteException e) {
-                                Log.e(TAG, "Couldn't show user switcher", e);
-                            }
+                            switcherParent.removeView(switcher);
                         }
-                    }, 400); // TODO: ideally this would be tied to the collapse of the panel
+                    });
+                    switcher.refreshUsers();
+                    switcherParent.addView(switcher);
                 } else {
+                    collapsePanels();
                     Intent intent = ContactsContract.QuickContact.composeQuickContactsIntent(
                             mContext, v, ContactsContract.Profile.CONTENT_URI,
                             ContactsContract.QuickContact.MODE_LARGE, null);
@@ -911,6 +910,7 @@
                 d.getWindow().setAttributes(lp);
             }
         };
+        v.setAutoActivate(true);
         v.setAdapter(new ZenModeViewAdapter(mContext) {
             @Override
             public void configure() {
@@ -928,7 +928,6 @@
         d.create();
         d.getWindow().setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY);
         WindowManager.LayoutParams lp = d.getWindow().getAttributes();
-        lp.horizontalMargin = 0;
         lp.width = mContext.getResources().getDimensionPixelSize(R.dimen.zen_mode_dialog_width);
         d.getWindow().setAttributes(lp);
         d.show();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
new file mode 100644
index 0000000..b8592c3
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -0,0 +1,194 @@
+/*
+ * 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.android.systemui.statusbar.phone;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Log;
+import android.util.Slog;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+
+import com.android.internal.policy.IKeyguardShowCallback;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.keyguard.KeyguardHostView;
+import com.android.keyguard.KeyguardSimpleHostView;
+import com.android.keyguard.R;
+import com.android.keyguard.ViewMediatorCallback;
+import com.android.systemui.keyguard.KeyguardViewMediator;
+
+/**
+ * Manages creating, showing, hiding and resetting the keyguard within the status bar. Calls back
+ * via {@link ViewMediatorCallback} to poke the wake lock and report that the keyguard is done,
+ * which is in turn, reported to this class by the current
+ * {@link com.android.keyguard.KeyguardViewBase}.
+ */
+public class StatusBarKeyguardViewManager {
+    private static String TAG = "StatusBarKeyguardViewManager";
+
+    private final Context mContext;
+
+    private LockPatternUtils mLockPatternUtils;
+    private ViewMediatorCallback mViewMediatorCallback;
+    private PhoneStatusBar mPhoneStatusBar;
+
+    private ViewGroup mContainer;
+    private StatusBarWindowManager mStatusBarWindowManager;
+
+    private boolean mScreenOn = false;
+    private KeyguardBouncer mBouncer;
+    private boolean mShowing;
+
+    public StatusBarKeyguardViewManager(Context context, ViewMediatorCallback callback,
+            LockPatternUtils lockPatternUtils) {
+        mContext = context;
+        mViewMediatorCallback = callback;
+        mLockPatternUtils = lockPatternUtils;
+    }
+
+    public void registerStatusBar(PhoneStatusBar phoneStatusBar,
+            ViewGroup container, StatusBarWindowManager statusBarWindowManager) {
+        mPhoneStatusBar = phoneStatusBar;
+        mContainer = container;
+        mStatusBarWindowManager = statusBarWindowManager;
+        mBouncer = new KeyguardBouncer(mContext, mViewMediatorCallback, mLockPatternUtils,
+                mStatusBarWindowManager, container);
+    }
+
+    /**
+     * Show the keyguard.  Will handle creating and attaching to the view manager
+     * lazily.
+     */
+    public void show(Bundle options) {
+        mShowing = true;
+        mStatusBarWindowManager.setKeyguardShowing(true);
+        mPhoneStatusBar.showKeyguard();
+        mBouncer.prepare();
+        updateBackButtonState();
+    }
+
+    public void showBouncer() {
+        mBouncer.show();
+        updateBackButtonState();
+    }
+
+    /**
+     * Reset the state of the view.
+     */
+    public void reset() {
+        mBouncer.reset();
+        mPhoneStatusBar.showKeyguard();
+        updateBackButtonState();
+    }
+
+    public void onScreenTurnedOff() {
+        mScreenOn = false;
+        mBouncer.onScreenTurnedOff();
+    }
+
+    public void onScreenTurnedOn(final IKeyguardShowCallback callback) {
+        mScreenOn = true;
+        mBouncer.onScreenTurnedOn();
+        if (callback != null) {
+            callbackAfterDraw(callback);
+        }
+    }
+
+    private void callbackAfterDraw(final IKeyguardShowCallback callback) {
+        mContainer.post(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    callback.onShown(mContainer.getWindowToken());
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Exception calling onShown():", e);
+                }
+            }
+        });
+    }
+
+    public void verifyUnlock() {
+        dismiss();
+    }
+
+    public void setNeedsInput(boolean needsInput) {
+        mStatusBarWindowManager.setKeyguardNeedsInput(needsInput);
+    }
+
+    public void updateUserActivityTimeout() {
+        mStatusBarWindowManager.setKeyguardUserActivityTimeout(mBouncer.getUserActivityTimeout());
+    }
+
+    public void setOccluded(boolean occluded) {
+        mStatusBarWindowManager.setKeyguardOccluded(occluded);
+    }
+
+    /**
+     * Hides the keyguard view
+     */
+    public void hide() {
+        mShowing = false;
+        mPhoneStatusBar.hideKeyguard();
+        mStatusBarWindowManager.setKeyguardShowing(false);
+        mBouncer.hide();
+        mViewMediatorCallback.keyguardGone();
+    }
+
+    /**
+     * Dismisses the keyguard by going to the next screen or making it gone.
+     */
+    public void dismiss() {
+        if (mScreenOn) {
+            showBouncer();
+        }
+    }
+
+    /**
+     * @return Whether the keyguard is showing
+     */
+    public boolean isShowing() {
+        return mShowing;
+    }
+
+    /**
+     * Notifies this manager that the back button has been pressed.
+     *
+     * @return whether the back press has been handled
+     */
+    public boolean onBackPressed() {
+        if (mBouncer.isShowing()) {
+            mBouncer.hide();
+            mPhoneStatusBar.showKeyguard();
+            updateBackButtonState();
+            return true;
+        }
+        return false;
+    }
+
+    private void updateBackButtonState() {
+        int vis = mContainer.getSystemUiVisibility();
+        if (mBouncer.isShowing()) {
+            mContainer.setSystemUiVisibility(vis & ~View.STATUS_BAR_DISABLE_BACK);
+        } else {
+            mContainer.setSystemUiVisibility(vis | View.STATUS_BAR_DISABLE_BACK);
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
new file mode 100644
index 0000000..6153cde
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
@@ -0,0 +1,200 @@
+/*
+ * 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.android.systemui.statusbar.phone;
+
+import android.app.ActionBar;
+import android.content.Context;
+import android.content.pm.ActivityInfo;
+import android.content.res.Resources;
+import android.graphics.PixelFormat;
+import android.os.SystemProperties;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+
+import com.android.keyguard.R;
+
+/**
+ * Encapsulates all logic for the status bar window state management.
+ */
+public class StatusBarWindowManager {
+
+    private final Context mContext;
+    private final WindowManager mWindowManager;
+    private View mStatusBarView;
+    private WindowManager.LayoutParams mLp;
+    private int mBarHeight;
+    private final boolean mKeyguardScreenRotation;
+
+    private final State mCurrentState = new State();
+
+    public StatusBarWindowManager(Context context) {
+        mContext = context;
+        mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+        mKeyguardScreenRotation = shouldEnableKeyguardScreenRotation();
+    }
+
+    private boolean shouldEnableKeyguardScreenRotation() {
+        Resources res = mContext.getResources();
+        return SystemProperties.getBoolean("lockscreen.rot_override", false)
+                || res.getBoolean(R.bool.config_enableLockScreenRotation);
+    }
+
+    /**
+     * Adds the status bar view to the window manager.
+     *
+     * @param statusBarView The view to add.
+     * @param barHeight The height of the status bar in collapsed state.
+     */
+    public void add(View statusBarView, int barHeight) {
+
+        // Now that the status bar window encompasses the sliding panel and its
+        // translucent backdrop, the entire thing is made TRANSLUCENT and is
+        // hardware-accelerated.
+        mLp = new WindowManager.LayoutParams(
+                ViewGroup.LayoutParams.MATCH_PARENT,
+                barHeight,
+                WindowManager.LayoutParams.TYPE_STATUS_BAR,
+                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+                        | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING
+                        | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH
+                        | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
+                        | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION
+                        | WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
+                PixelFormat.TRANSLUCENT);
+
+        mLp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
+        mLp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
+        mLp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
+        mLp.setTitle("StatusBar");
+        mLp.packageName = mContext.getPackageName();
+        mStatusBarView = statusBarView;
+        mBarHeight = barHeight;
+        mWindowManager.addView(mStatusBarView, mLp);
+    }
+
+    private void applyKeyguardFlags(State state) {
+        if (state.keyguardShowing) {
+            mLp.flags |= WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+            mLp.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
+        } else {
+            mLp.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+            mLp.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
+        }
+    }
+
+    private void adjustScreenOrientation(State state) {
+        if (!state.isKeyguardShowingAndNotOccluded() || mKeyguardScreenRotation) {
+            mLp.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_USER;
+        } else {
+            mLp.screenOrientation =  ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
+        }
+    }
+
+    private void applyFocusableFlag(State state) {
+        if (state.isKeyguardShowingAndNotOccluded() && state.keyguardNeedsInput) {
+            mLp.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+            mLp.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
+        } else if (state.isKeyguardShowingAndNotOccluded() || state.statusBarFocusable) {
+            mLp.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+            mLp.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
+        } else {
+            mLp.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+            mLp.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
+        }
+    }
+
+    private void applyHeight(State state) {
+        boolean expanded = state.isKeyguardShowingAndNotOccluded() || state.statusBarExpanded;
+        if (expanded) {
+            mLp.height = ViewGroup.LayoutParams.MATCH_PARENT;
+        } else {
+            mLp.height = mBarHeight;
+        }
+    }
+
+    private void applyUserActivityTimeout(State state) {
+        if (state.isKeyguardShowingAndNotOccluded()) {
+            mLp.userActivityTimeout = state.keyguardUserActivityTimeout;
+        } else {
+            mLp.userActivityTimeout = -1;
+        }
+    }
+
+    private void applyInputFeatures(State state) {
+        if (state.isKeyguardShowingAndNotOccluded()) {
+            mLp.inputFeatures |= WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY;
+        } else {
+            mLp.inputFeatures &= ~WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY;
+        }
+    }
+
+    private void apply(State state) {
+        applyKeyguardFlags(state);
+        applyFocusableFlag(state);
+        adjustScreenOrientation(state);
+        applyHeight(state);
+        applyUserActivityTimeout(state);
+        applyInputFeatures(state);
+        mWindowManager.updateViewLayout(mStatusBarView, mLp);
+    }
+
+    public void setKeyguardShowing(boolean showing) {
+        mCurrentState.keyguardShowing = showing;
+        apply(mCurrentState);
+    }
+
+    public void setKeyguardOccluded(boolean occluded) {
+        mCurrentState.keyguardOccluded = occluded;
+        apply(mCurrentState);
+    }
+
+    public void setKeyguardNeedsInput(boolean needsInput) {
+        mCurrentState.keyguardNeedsInput = needsInput;
+        apply(mCurrentState);
+    }
+
+    public void setStatusBarExpanded(boolean expanded) {
+        mCurrentState.statusBarExpanded = expanded;
+        mCurrentState.statusBarFocusable = expanded;
+        apply(mCurrentState);
+    }
+
+    public void setStatusBarFocusable(boolean focusable) {
+        mCurrentState.statusBarFocusable = focusable;
+        apply(mCurrentState);
+    }
+
+    public void setKeyguardUserActivityTimeout(long timeout) {
+        mCurrentState.keyguardUserActivityTimeout = timeout;
+        apply(mCurrentState);
+    }
+
+    private static class State {
+        boolean keyguardShowing;
+        boolean keyguardOccluded;
+        boolean keyguardNeedsInput;
+        boolean statusBarExpanded;
+        boolean statusBarFocusable;
+        long keyguardUserActivityTimeout;
+
+        private boolean isKeyguardShowingAndNotOccluded() {
+            return keyguardShowing && !keyguardOccluded;
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 7b03195..dd89f47 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -26,12 +26,12 @@
 import android.view.View;
 import android.view.ViewRootImpl;
 import android.widget.FrameLayout;
-import android.widget.ScrollView;
 
 import com.android.systemui.ExpandHelper;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.BaseStatusBar;
-import com.android.systemui.statusbar.policy.NotificationRowLayout;
+import com.android.systemui.statusbar.policy.ScrollAdapter;
+import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
 
 public class StatusBarWindowView extends FrameLayout
@@ -40,9 +40,8 @@
     public static final boolean DEBUG = BaseStatusBar.DEBUG;
 
     private ExpandHelper mExpandHelper;
-    private NotificationRowLayout latestItems;
+    private NotificationStackScrollLayout mStackScrollLayout;
     private NotificationPanelView mNotificationPanel;
-    private ScrollView mScrollView;
 
     PhoneStatusBar mService;
 
@@ -55,14 +54,16 @@
     @Override
     protected void onAttachedToWindow () {
         super.onAttachedToWindow();
-        latestItems = (NotificationRowLayout) findViewById(R.id.latestItems);
-        mScrollView = (ScrollView) findViewById(R.id.scroll);
+
+        mStackScrollLayout = (NotificationStackScrollLayout) findViewById(
+                R.id.notification_stack_scroller);
         mNotificationPanel = (NotificationPanelView) findViewById(R.id.notification_panel);
         int minHeight = getResources().getDimensionPixelSize(R.dimen.notification_row_min_height);
         int maxHeight = getResources().getDimensionPixelSize(R.dimen.notification_row_max_height);
-        mExpandHelper = new ExpandHelper(getContext(), latestItems, minHeight, maxHeight);
+        mExpandHelper = new ExpandHelper(getContext(), mStackScrollLayout,
+                minHeight, maxHeight);
         mExpandHelper.setEventSource(this);
-        mExpandHelper.setScrollView(mScrollView);
+        mExpandHelper.setScrollAdapter(mStackScrollLayout);
 
         // We really need to be able to animate while window animations are going on
         // so that activities may be started asynchronously from panel animations
@@ -78,7 +79,7 @@
         switch (event.getKeyCode()) {
         case KeyEvent.KEYCODE_BACK:
             if (!down) {
-                mService.animateCollapsePanels();
+                mService.onBackPressed();
             }
             return true;
         }
@@ -88,7 +89,9 @@
     @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {
         boolean intercept = false;
-        if (mNotificationPanel.isFullyExpanded() && mScrollView.getVisibility() == View.VISIBLE) {
+        if (mNotificationPanel.isFullyExpanded()
+                && mStackScrollLayout.getVisibility() == View.VISIBLE
+                && !mService.isOnKeyguard()) {
             intercept = mExpandHelper.onInterceptTouchEvent(ev);
         }
         if (!intercept) {
@@ -97,7 +100,7 @@
         if (intercept) {
             MotionEvent cancellation = MotionEvent.obtain(ev);
             cancellation.setAction(MotionEvent.ACTION_CANCEL);
-            latestItems.onInterceptTouchEvent(cancellation);
+            mStackScrollLayout.onInterceptTouchEvent(cancellation);
             cancellation.recycle();
         }
         return intercept;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java
index d1a9d57..49cf78b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java
@@ -16,11 +16,8 @@
 
 package com.android.systemui.statusbar.phone;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
 import android.content.Context;
-import android.graphics.Paint;
 import android.graphics.PorterDuff.Mode;
 import android.graphics.Typeface;
 import android.graphics.drawable.ShapeDrawable;
@@ -39,14 +36,12 @@
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.FrameLayout;
-import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.Switch;
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.systemui.R;
 import com.android.systemui.statusbar.phone.ZenModeView.Adapter.ExitCondition;
 
 public class ZenModeView extends RelativeLayout {
@@ -63,20 +58,21 @@
 
     private static final long DURATION = new ValueAnimator().getDuration();
     private static final long PAGER_DURATION = DURATION / 2;
-    private static final float BOUNCE_SCALE = 0.8f;
     private static final long CLOSE_DELAY = 600;
+    private static final long AUTO_ACTIVATE_DELAY = 100;
 
     private final Context mContext;
-    private final Paint mPathPaint;
-    private final ImageView mSettingsButton;
     private final TextView mModeText;
     private final Switch mModeSwitch;
     private final View mDivider;
     private final UntilPager mUntilPager;
     private final ProgressDots mProgressDots;
+    private final View mDivider2;
+    private final TextView mSettingsButton;
 
     private Adapter mAdapter;
     private boolean mInit;
+    private boolean mAutoActivate;
 
     public ZenModeView(Context context) {
         this(context, null);
@@ -90,29 +86,9 @@
         final int iconSize = mContext.getResources()
                 .getDimensionPixelSize(com.android.internal.R.dimen.notification_large_icon_width);
         final int topRowSize = iconSize * 2 / 3;
-        final int p = topRowSize / 7;
+        final int p = topRowSize / 3;
 
-        mPathPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
-        mPathPaint.setStyle(Paint.Style.STROKE);
-        mPathPaint.setColor(GRAY);
-        mPathPaint.setStrokeWidth(p / 2);
-
-        mSettingsButton = new ImageView(mContext);
-        mSettingsButton.setPadding(p, p, p, p);
-        mSettingsButton.setImageResource(R.drawable.ic_notify_settings_normal);
-        LayoutParams lp = new LayoutParams(topRowSize, topRowSize);
-        lp.topMargin = p;
-        lp.leftMargin = p;
-        addView(mSettingsButton, lp);
-        mSettingsButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mAdapter != null) {
-                    mAdapter.configure();
-                }
-                bounce(mSettingsButton, null);
-            }
-        });
+        LayoutParams lp = null;
 
         mModeText = new TextView(mContext);
         mModeText.setText(MODE_LABEL);
@@ -120,11 +96,10 @@
         mModeText.setTextColor(GRAY);
         mModeText.setTypeface(CONDENSED);
         mModeText.setAllCaps(true);
-        mModeText.setGravity(Gravity.CENTER);
-        mModeText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mModeText.getTextSize() * 1.1f);
+        mModeText.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
+        mModeText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mModeText.getTextSize() * 1.5f);
         lp = new LayoutParams(LayoutParams.WRAP_CONTENT, topRowSize);
-        lp.topMargin = p;
-        lp.addRule(CENTER_HORIZONTAL);
+        lp.leftMargin = p;
         addView(mModeText, lp);
 
         mModeSwitch = new Switch(mContext);
@@ -132,6 +107,7 @@
         mModeSwitch.setSwitchTypeface(CONDENSED);
         lp = new LayoutParams(LayoutParams.WRAP_CONTENT, topRowSize);
         lp.topMargin = p;
+        lp.rightMargin = p;
         lp.addRule(ALIGN_PARENT_RIGHT);
         lp.addRule(ALIGN_BASELINE, mModeText.getId());
         addView(mModeSwitch, lp);
@@ -154,11 +130,10 @@
         mDivider.setBackgroundColor(GRAY);
         lp = new LayoutParams(LayoutParams.MATCH_PARENT, 2);
         lp.addRule(BELOW, mModeText.getId());
-        lp.topMargin = p;
-        lp.bottomMargin = p * 2;
+        lp.bottomMargin = p;
         addView(mDivider, lp);
 
-        mUntilPager = new UntilPager(mContext, mPathPaint, iconSize * 3 / 4);
+        mUntilPager = new UntilPager(mContext, iconSize * 3 / 4);
         mUntilPager.setId(android.R.id.tabhost);
         lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
         lp.leftMargin = lp.rightMargin = iconSize / 2;
@@ -167,10 +142,41 @@
         addView(mUntilPager, lp);
 
         mProgressDots = new ProgressDots(mContext, iconSize / 5);
+        mProgressDots.setId(android.R.id.progress);
         lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
         lp.addRule(CENTER_HORIZONTAL);
         lp.addRule(BELOW, mUntilPager.getId());
         addView(mProgressDots, lp);
+
+        mDivider2 = new View(mContext);
+        mDivider2.setId(android.R.id.widget_frame);
+        mDivider2.setBackgroundColor(GRAY);
+        lp = new LayoutParams(LayoutParams.MATCH_PARENT, 2);
+        lp.addRule(BELOW, mProgressDots.getId());
+        addView(mDivider2, lp);
+
+        mSettingsButton = new TextView(mContext);
+        mSettingsButton.setTypeface(CONDENSED);
+        mSettingsButton.setTextSize(TypedValue.COMPLEX_UNIT_PX, mSettingsButton.getTextSize() * 1.3f);
+        mSettingsButton.setPadding(p, p, p, p);
+        mSettingsButton.setText("More settings...");
+        lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+        lp.addRule(BELOW, mDivider2.getId());
+        addView(mSettingsButton, lp);
+        mSettingsButton.setOnTouchListener(new OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                if (event.getAction() == MotionEvent.ACTION_DOWN) {
+                    mSettingsButton.setBackgroundColor(DARK_GRAY);
+                } else if (event.getAction() == MotionEvent.ACTION_UP) {
+                    mSettingsButton.setBackground(null);
+                    if (mAdapter != null) {
+                        mAdapter.configure();
+                    }
+                }
+                return true;
+            }
+        });
     }
 
     public void setAdapter(Adapter adapter) {
@@ -189,6 +195,27 @@
         updateState(false);
     }
 
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        if (mAutoActivate) {
+            mAutoActivate = false;
+            postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    if (!mModeSwitch.isChecked()) {
+                        mInit = false;
+                        mModeSwitch.setChecked(true);
+                    }
+                }
+            }, AUTO_ACTIVATE_DELAY);
+        }
+    }
+
+    public void setAutoActivate(boolean value) {
+        mAutoActivate = value;
+    }
+
     private void updateState(boolean animate) {
         mUntilPager.updateState();
         mModeSwitch.setChecked(mAdapter.getMode());
@@ -199,23 +226,6 @@
         Log.d(TAG, args == null || args.length == 0 ? msg : String.format(msg, args));
     }
 
-    private static void bounce(final View v, final Runnable midBounce) {
-        v.animate().scaleX(BOUNCE_SCALE).scaleY(BOUNCE_SCALE).setDuration(DURATION / 3)
-            .setListener(new AnimatorListenerAdapter() {
-                private boolean mFired;
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    if (!mFired) {
-                        mFired = true;
-                        if (midBounce != null) {
-                            midBounce.run();
-                        }
-                        v.animate().scaleX(1).scaleY(1).setListener(null).start();
-                    }
-                }
-            }).start();
-    }
-
     private final class UntilView extends FrameLayout {
         private static final boolean SUPPORT_LINKS = false;
 
@@ -223,7 +233,7 @@
         public UntilView(Context context) {
             super(context);
             mText = new TextView(mContext);
-            mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mText.getTextSize() * 1.2f);
+            mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mText.getTextSize() * 1.3f);
             mText.setTypeface(CONDENSED);
             mText.setTextColor(GRAY);
             mText.setGravity(Gravity.CENTER);
@@ -284,7 +294,7 @@
         private int mCurrent;
         private float mDownX;
 
-        public UntilPager(Context context, Paint pathPaint, int iconSize) {
+        public UntilPager(Context context, int iconSize) {
             super(context);
             mViews = new UntilView[3];
             for (int i = 0; i < mViews.length; i++) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
index 79932a7..2dba669 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
@@ -78,7 +78,7 @@
         }
 
         if (mHeadsUp != null) {
-            mHeadsUp.row.setExpanded(true);
+            mHeadsUp.row.setSystemExpanded(true);
             mHeadsUp.row.setShowingPublic(false);
             if (mContentHolder == null) {
                 // too soon!
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
index 09f1695..92c008e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
@@ -126,6 +126,7 @@
     private int mConnectedNetworkType = ConnectivityManager.TYPE_NONE;
     private String mConnectedNetworkTypeName;
     private int mInetCondition = 0;
+    private int mLastInetCondition = 0;
     private static final int INET_CONDITION_THRESHOLD = 50;
 
     private boolean mAirplaneMode = false;
@@ -156,9 +157,9 @@
     boolean mDataAndWifiStacked = false;
 
     public interface SignalCluster {
-        void setWifiIndicators(boolean visible, int strengthIcon,
+        void setWifiIndicators(boolean visible, int strengthIcon, boolean problem,
                 String contentDescription);
-        void setMobileDataIndicators(boolean visible, int strengthIcon,
+        void setMobileDataIndicators(boolean visible, int strengthIcon, boolean problem,
                 int typeIcon, String contentDescription, String typeContentDescription);
         void setIsAirplaneMode(boolean is, int airplaneIcon);
     }
@@ -288,6 +289,7 @@
                 // only show wifi in the cluster if connected or if wifi-only
                 mWifiEnabled && (mWifiConnected || !mHasMobileDataFeature),
                 mWifiIconId,
+                mInetCondition == 0,
                 mContentDescriptionWifi);
 
         if (mIsWimaxEnabled && mWimaxConnected) {
@@ -295,6 +297,7 @@
             cluster.setMobileDataIndicators(
                     true,
                     mAlwaysShowCdmaRssi ? mPhoneSignalIconId : mWimaxIconId,
+                    mInetCondition == 0,
                     mDataTypeIconId,
                     mContentDescriptionWimax,
                     mContentDescriptionDataType);
@@ -303,6 +306,7 @@
             cluster.setMobileDataIndicators(
                     mHasMobileDataFeature,
                     mShowPhoneRSSIForData ? mPhoneSignalIconId : mDataSignalIconId,
+                    mInetCondition == 0,
                     mDataTypeIconId,
                     mContentDescriptionPhoneSignal,
                     mContentDescriptionDataType);
@@ -1145,6 +1149,7 @@
 
         if (mLastPhoneSignalIconId          != mPhoneSignalIconId
          || mLastWifiIconId                 != mWifiIconId
+         || mLastInetCondition              != mInetCondition
          || mLastWimaxIconId                != mWimaxIconId
          || mLastDataTypeIconId             != mDataTypeIconId
          || mLastAirplaneMode               != mAirplaneMode
@@ -1179,6 +1184,10 @@
             mLastWifiIconId = mWifiIconId;
         }
 
+        if (mLastInetCondition != mInetCondition) {
+            mLastInetCondition = mInetCondition;
+        }
+
         // the wimax icon on phones
         if (mLastWimaxIconId != mWimaxIconId) {
             mLastWimaxIconId = mWimaxIconId;
@@ -1424,6 +1433,7 @@
                     cluster.setWifiIndicators(
                             show,
                             iconId,
+                            mDemoInetCondition == 0,
                             "Demo");
                 }
             }
@@ -1456,6 +1466,7 @@
                     cluster.setMobileDataIndicators(
                             show,
                             iconId,
+                            mDemoInetCondition == 0,
                             mDemoDataTypeIconId,
                             "Demo",
                             "Demo");
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ScrollAdapter.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ScrollAdapter.java
new file mode 100644
index 0000000..f35e22d
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ScrollAdapter.java
@@ -0,0 +1,40 @@
+/*
+ * 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.android.systemui.statusbar.policy;
+
+import android.view.View;
+
+/**
+ * A scroll adapter which can be queried for meta information about the scroll state
+ */
+public interface ScrollAdapter {
+
+    /**
+     * @return Whether the view returned by {@link #getHostView()} is scrolled to the top
+     */
+    public boolean isScrolledToTop();
+
+    /**
+     * @return Whether the view returned by {@link #getHostView()} is scrolled to the bottom
+     */
+    public boolean isScrolledToBottom();
+
+    /**
+     * @return The view in which the scrolling is performed
+     */
+    public View getHostView();
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
new file mode 100644
index 0000000..9800bc9
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -0,0 +1,891 @@
+/*
+ * 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.android.systemui.statusbar.stack;
+
+import android.content.Context;
+import android.content.res.Configuration;
+
+import android.graphics.Canvas;
+import android.graphics.Outline;
+import android.graphics.Paint;
+
+import android.util.AttributeSet;
+import android.util.Log;
+
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewGroup;
+import android.widget.OverScroller;
+
+import com.android.systemui.ExpandHelper;
+import com.android.systemui.R;
+import com.android.systemui.SwipeHelper;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
+import com.android.systemui.statusbar.stack.StackScrollState.ViewState;
+import com.android.systemui.statusbar.policy.ScrollAdapter;
+
+/**
+ * A layout which handles a dynamic amount of notifications and presents them in a scrollable stack.
+ */
+public class NotificationStackScrollLayout extends ViewGroup
+        implements SwipeHelper.Callback, ExpandHelper.Callback, ScrollAdapter {
+
+    private static final String TAG = "NotificationStackScrollLayout";
+    private static final boolean DEBUG = false;
+
+    /**
+     * Sentinel value for no current active pointer. Used by {@link #mActivePointerId}.
+     */
+    private static final int INVALID_POINTER = -1;
+
+    private SwipeHelper mSwipeHelper;
+    private boolean mSwipingInProgress = true;
+    private int mCurrentStackHeight = Integer.MAX_VALUE;
+    private int mOwnScrollY;
+    private int mMaxLayoutHeight;
+
+    private VelocityTracker mVelocityTracker;
+    private OverScroller mScroller;
+    private int mTouchSlop;
+    private int mMinimumVelocity;
+    private int mMaximumVelocity;
+    private int mOverscrollDistance;
+    private int mOverflingDistance;
+    private boolean mIsBeingDragged;
+    private int mLastMotionY;
+    private int mActivePointerId;
+
+    private int mSidePaddings;
+    private Paint mDebugPaint;
+    private int mBackgroundRoundedRectCornerRadius;
+    private int mContentHeight;
+    private int mCollapsedSize;
+    private int mBottomStackPeekSize;
+    private int mEmptyMarginBottom;
+    private int mPaddingBetweenElements;
+
+    /**
+     * The algorithm which calculates the properties for our children
+     */
+    private StackScrollAlgorithm mStackScrollAlgorithm;
+
+    /**
+     * The current State this Layout is in
+     */
+    private final StackScrollState mCurrentStackScrollState = new StackScrollState(this);
+
+    private OnChildLocationsChangedListener mListener;
+
+    public NotificationStackScrollLayout(Context context) {
+        this(context, null);
+    }
+
+    public NotificationStackScrollLayout(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public NotificationStackScrollLayout(Context context, AttributeSet attrs, int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public NotificationStackScrollLayout(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        initView(context);
+        if (DEBUG) {
+            setWillNotDraw(false);
+            mDebugPaint = new Paint();
+            mDebugPaint.setColor(0xffff0000);
+            mDebugPaint.setStrokeWidth(2);
+            mDebugPaint.setStyle(Paint.Style.STROKE);
+        }
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        if (DEBUG) {
+            int y = mCollapsedSize;
+            canvas.drawLine(0, y, getWidth(), y, mDebugPaint);
+            y = (int) (getLayoutHeight() - mBottomStackPeekSize - mCollapsedSize);
+            canvas.drawLine(0, y, getWidth(), y, mDebugPaint);
+            y = (int) getLayoutHeight();
+            canvas.drawLine(0, y, getWidth(), y, mDebugPaint);
+        }
+    }
+
+    private void initView(Context context) {
+        mScroller = new OverScroller(getContext());
+        setFocusable(true);
+        setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);
+        final ViewConfiguration configuration = ViewConfiguration.get(context);
+        mTouchSlop = configuration.getScaledTouchSlop();
+        mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
+        mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
+        mOverscrollDistance = configuration.getScaledOverscrollDistance();
+        mOverflingDistance = configuration.getScaledOverflingDistance();
+        float densityScale = getResources().getDisplayMetrics().density;
+        float pagingTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop();
+        mSwipeHelper = new SwipeHelper(SwipeHelper.X, this, densityScale, pagingTouchSlop);
+
+        mSidePaddings = context.getResources()
+                .getDimensionPixelSize(R.dimen.notification_side_padding);
+        mBackgroundRoundedRectCornerRadius = context.getResources()
+                .getDimensionPixelSize(
+                        com.android.internal.R.dimen.notification_quantum_rounded_rect_radius);
+        mCollapsedSize = context.getResources()
+                .getDimensionPixelSize(R.dimen.notification_row_min_height);
+        mBottomStackPeekSize = context.getResources()
+                .getDimensionPixelSize(R.dimen.bottom_stack_peek_amount);
+        mEmptyMarginBottom = context.getResources().getDimensionPixelSize(
+                R.dimen.notification_stack_margin_bottom);
+        // currently the padding is in the elements themself
+        mPaddingBetweenElements = 0;
+        mStackScrollAlgorithm = new StackScrollAlgorithm(context);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        int mode = MeasureSpec.getMode(widthMeasureSpec);
+        int size = MeasureSpec.getSize(widthMeasureSpec);
+        int childMeasureSpec = MeasureSpec.makeMeasureSpec(size - 2 * mSidePaddings, mode);
+        measureChildren(childMeasureSpec, heightMeasureSpec);
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+
+        // we layout all our children centered on the top
+        float centerX = getWidth() / 2.0f;
+        for (int i = 0; i < getChildCount(); i++) {
+            View child = getChildAt(i);
+            float width = child.getMeasuredWidth();
+            float height = child.getMeasuredHeight();
+            int oldWidth = child.getWidth();
+            int oldHeight = child.getHeight();
+            child.layout((int) (centerX - width / 2.0f),
+                    0,
+                    (int) (centerX + width / 2.0f),
+                    (int) height);
+            updateChildOutline(child, width, height, oldWidth, oldHeight);
+        }
+        setMaxLayoutHeight(getHeight() - mEmptyMarginBottom);
+        updateScrollPositionIfNecessary();
+        updateChildren();
+        updateContentHeight();
+    }
+
+    public void setChildLocationsChangedListener(OnChildLocationsChangedListener listener) {
+        mListener = listener;
+    }
+
+    /**
+     * Returns the location the given child is currently rendered at.
+     *
+     * @param child the child to get the location for
+     * @return one of {@link ViewState}'s <code>LOCATION_*</code> constants
+     */
+    public int getChildLocation(View child) {
+        ViewState childViewState = mCurrentStackScrollState.getViewStateForView(child);
+        if (childViewState == null) {
+            return ViewState.LOCATION_UNKNOWN;
+        }
+        return childViewState.location;
+    }
+
+    private void setMaxLayoutHeight(int maxLayoutHeight) {
+        mMaxLayoutHeight = maxLayoutHeight;
+        updateAlgorithmHeight();
+    }
+
+    private void updateAlgorithmHeight() {
+        mStackScrollAlgorithm.setLayoutHeight(getLayoutHeight());
+    }
+
+    /**
+     * Updates the children views according to the stack scroll algorithm. Call this whenever
+     * modifications to {@link #mOwnScrollY} are performed to reflect it in the view layout.
+     */
+    private void updateChildren() {
+        if (!isCurrentlyAnimating()) {
+            mCurrentStackScrollState.setScrollY(mOwnScrollY);
+            mStackScrollAlgorithm.getStackScrollState(mCurrentStackScrollState);
+            mCurrentStackScrollState.apply();
+            mOwnScrollY = mCurrentStackScrollState.getScrollY();
+            if (mListener != null) {
+                mListener.onChildLocationsChanged(this);
+            }
+        } else {
+            // TODO: handle animation
+        }
+    }
+
+    private boolean isCurrentlyAnimating() {
+        return false;
+    }
+
+    private void updateChildOutline(View child,
+                                    float width,
+                                    float height,
+                                    int oldWidth,
+                                    int oldHeight) {
+        // The children currently have paddings inside themselfs because of the expansion
+        // visualization. In order for the shadows to work correctly we have to set the correct
+        // outline.
+        View container = child.findViewById(R.id.container);
+        if (container != null && (oldWidth != width || oldHeight != height)) {
+            Outline outline = getOutlineForSize(container.getLeft(),
+                    container.getTop(),
+                    container.getWidth(),
+                    container.getHeight());
+            child.setOutline(outline);
+        }
+    }
+
+    private Outline getOutlineForSize(int leftInset, int topInset, int width, int height) {
+        Outline result = new Outline();
+        result.setRoundRect(leftInset, topInset, leftInset + width, topInset + height,
+                mBackgroundRoundedRectCornerRadius);
+        return result;
+    }
+
+    private void updateScrollPositionIfNecessary() {
+        int scrollRange = getScrollRange();
+        if (scrollRange < mOwnScrollY) {
+            mOwnScrollY = scrollRange;
+        }
+    }
+
+    public void setCurrentStackHeight(int currentStackHeight) {
+        this.mCurrentStackHeight = currentStackHeight;
+        updateAlgorithmHeight();
+        updateChildren();
+    }
+
+    /**
+     * Get the current height of the view. This is at most the msize of the view given by a the
+     * layout but it can also be made smaller by setting {@link #mCurrentStackHeight}
+     *
+     * @return either the layout height or the externally defined height, whichever is smaller
+     */
+    private float getLayoutHeight() {
+        return Math.min(mMaxLayoutHeight, mCurrentStackHeight);
+    }
+
+    public int getItemHeight() {
+        return mCollapsedSize;
+    }
+
+    public int getBottomStackPeekSize() {
+        return mBottomStackPeekSize;
+    }
+
+    public void setLongPressListener(View.OnLongClickListener listener) {
+        mSwipeHelper.setLongPressListener(listener);
+    }
+
+    public void onChildDismissed(View v) {
+        if (DEBUG) Log.v(TAG, "onChildDismissed: " + v);
+        final View veto = v.findViewById(R.id.veto);
+        if (veto != null && veto.getVisibility() != View.GONE) {
+            veto.performClick();
+        }
+        setSwipingInProgress(false);
+    }
+
+    public void onBeginDrag(View v) {
+        setSwipingInProgress(true);
+    }
+
+    public void onDragCancelled(View v) {
+        setSwipingInProgress(false);
+    }
+
+    public View getChildAtPosition(MotionEvent ev) {
+        return getChildAtPosition(ev.getX(), ev.getY());
+    }
+
+    public View getChildAtRawPosition(float touchX, float touchY) {
+        int[] location = new int[2];
+        getLocationOnScreen(location);
+        return getChildAtPosition(touchX - location[0],touchY - location[1]);
+    }
+
+    public View getChildAtPosition(float touchX, float touchY) {
+        // find the view under the pointer, accounting for GONE views
+        final int count = getChildCount();
+        for (int childIdx = 0; childIdx < count; childIdx++) {
+            View slidingChild = getChildAt(childIdx);
+            if (slidingChild.getVisibility() == GONE) {
+                continue;
+            }
+            float top = slidingChild.getTranslationY();
+            float bottom = top + slidingChild.getHeight();
+            int left = slidingChild.getLeft();
+            int right = slidingChild.getRight();
+
+            if (touchY >= top && touchY <= bottom && touchX >= left && touchX <= right) {
+                return slidingChild;
+            }
+        }
+        return null;
+    }
+
+    public boolean canChildBeExpanded(View v) {
+        return v instanceof ExpandableNotificationRow
+                && ((ExpandableNotificationRow) v).isExpandable();
+    }
+
+    public void setUserExpandedChild(View v, boolean userExpanded) {
+        if (v instanceof ExpandableNotificationRow) {
+            ((ExpandableNotificationRow) v).setUserExpanded(userExpanded);
+        }
+    }
+
+    public void setUserLockedChild(View v, boolean userLocked) {
+        if (v instanceof ExpandableNotificationRow) {
+            ((ExpandableNotificationRow) v).setUserLocked(userLocked);
+        }
+    }
+
+    public View getChildContentView(View v) {
+        return v;
+    }
+
+    public boolean canChildBeDismissed(View v) {
+        final View veto = v.findViewById(R.id.veto);
+        return (veto != null && veto.getVisibility() != View.GONE);
+    }
+
+    private void setSwipingInProgress(boolean isSwiped) {
+        mSwipingInProgress = isSwiped;
+        if(isSwiped) {
+            requestDisallowInterceptTouchEvent(true);
+        }
+    }
+
+    @Override
+    protected void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        float densityScale = getResources().getDisplayMetrics().density;
+        mSwipeHelper.setDensityScale(densityScale);
+        float pagingTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop();
+        mSwipeHelper.setPagingTouchSlop(pagingTouchSlop);
+        initView(getContext());
+    }
+
+    public void dismissRowAnimated(View child, int vel) {
+        mSwipeHelper.dismissChild(child, vel);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        boolean scrollerWantsIt = false;
+        if (!mSwipingInProgress) {
+            scrollerWantsIt = onScrollTouch(ev);
+        }
+        boolean horizontalSwipeWantsIt = false;
+        if (!mIsBeingDragged) {
+            horizontalSwipeWantsIt = mSwipeHelper.onTouchEvent(ev);
+        }
+        return horizontalSwipeWantsIt || scrollerWantsIt || super.onTouchEvent(ev);
+    }
+
+    private boolean onScrollTouch(MotionEvent ev) {
+        initVelocityTrackerIfNotExists();
+        mVelocityTracker.addMovement(ev);
+
+        final int action = ev.getAction();
+
+        switch (action & MotionEvent.ACTION_MASK) {
+            case MotionEvent.ACTION_DOWN: {
+                if (getChildCount() == 0) {
+                    return false;
+                }
+                boolean isBeingDragged = !mScroller.isFinished();
+                setIsBeingDragged(isBeingDragged);
+
+                /*
+                 * If being flinged and user touches, stop the fling. isFinished
+                 * will be false if being flinged.
+                 */
+                if (!mScroller.isFinished()) {
+                    mScroller.abortAnimation();
+                }
+
+                // Remember where the motion event started
+                mLastMotionY = (int) ev.getY();
+                mActivePointerId = ev.getPointerId(0);
+                break;
+            }
+            case MotionEvent.ACTION_MOVE:
+                final int activePointerIndex = ev.findPointerIndex(mActivePointerId);
+                if (activePointerIndex == -1) {
+                    Log.e(TAG, "Invalid pointerId=" + mActivePointerId + " in onTouchEvent");
+                    break;
+                }
+
+                final int y = (int) ev.getY(activePointerIndex);
+                int deltaY = mLastMotionY - y;
+                if (!mIsBeingDragged && Math.abs(deltaY) > mTouchSlop) {
+                    setIsBeingDragged(true);
+                    if (deltaY > 0) {
+                        deltaY -= mTouchSlop;
+                    } else {
+                        deltaY += mTouchSlop;
+                    }
+                }
+                if (mIsBeingDragged) {
+                    // Scroll to follow the motion event
+                    mLastMotionY = y;
+
+                    final int oldX = mScrollX;
+                    final int oldY = mOwnScrollY;
+                    final int range = getScrollRange();
+                    final int overscrollMode = getOverScrollMode();
+                    final boolean canOverscroll = overscrollMode == OVER_SCROLL_ALWAYS ||
+                            (overscrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS && range > 0);
+
+                    // Calling overScrollBy will call onOverScrolled, which
+                    // calls onScrollChanged if applicable.
+                    if (overScrollBy(0, deltaY, 0, mOwnScrollY,
+                            0, range, 0, mOverscrollDistance, true)) {
+                        // Break our velocity if we hit a scroll barrier.
+                        mVelocityTracker.clear();
+                    }
+                    // TODO: Overscroll
+//                    if (canOverscroll) {
+//                        final int pulledToY = oldY + deltaY;
+//                        if (pulledToY < 0) {
+//                            mEdgeGlowTop.onPull((float) deltaY / getHeight());
+//                            if (!mEdgeGlowBottom.isFinished()) {
+//                                mEdgeGlowBottom.onRelease();
+//                            }
+//                        } else if (pulledToY > range) {
+//                            mEdgeGlowBottom.onPull((float) deltaY / getHeight());
+//                            if (!mEdgeGlowTop.isFinished()) {
+//                                mEdgeGlowTop.onRelease();
+//                            }
+//                        }
+//                        if (mEdgeGlowTop != null
+//                                && (!mEdgeGlowTop.isFinished() || !mEdgeGlowBottom.isFinished())){
+//                            postInvalidateOnAnimation();
+//                        }
+//                    }
+                }
+                break;
+            case MotionEvent.ACTION_UP:
+                if (mIsBeingDragged) {
+                    final VelocityTracker velocityTracker = mVelocityTracker;
+                    velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
+                    int initialVelocity = (int) velocityTracker.getYVelocity(mActivePointerId);
+
+                    if (getChildCount() > 0) {
+                        if ((Math.abs(initialVelocity) > mMinimumVelocity)) {
+                            fling(-initialVelocity);
+                        } else {
+                            if (mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0,
+                                    getScrollRange())) {
+                                postInvalidateOnAnimation();
+                            }
+                        }
+                    }
+
+                    mActivePointerId = INVALID_POINTER;
+                    endDrag();
+                }
+                break;
+            case MotionEvent.ACTION_CANCEL:
+                if (mIsBeingDragged && getChildCount() > 0) {
+                    if (mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0, getScrollRange())) {
+                        postInvalidateOnAnimation();
+                    }
+                    mActivePointerId = INVALID_POINTER;
+                    endDrag();
+                }
+                break;
+            case MotionEvent.ACTION_POINTER_DOWN: {
+                final int index = ev.getActionIndex();
+                mLastMotionY = (int) ev.getY(index);
+                mActivePointerId = ev.getPointerId(index);
+                break;
+            }
+            case MotionEvent.ACTION_POINTER_UP:
+                onSecondaryPointerUp(ev);
+                mLastMotionY = (int) ev.getY(ev.findPointerIndex(mActivePointerId));
+                break;
+        }
+        return true;
+    }
+
+    private void onSecondaryPointerUp(MotionEvent ev) {
+        final int pointerIndex = (ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >>
+                MotionEvent.ACTION_POINTER_INDEX_SHIFT;
+        final int pointerId = ev.getPointerId(pointerIndex);
+        if (pointerId == mActivePointerId) {
+            // This was our active pointer going up. Choose a new
+            // active pointer and adjust accordingly.
+            // TODO: Make this decision more intelligent.
+            final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
+            mLastMotionY = (int) ev.getY(newPointerIndex);
+            mActivePointerId = ev.getPointerId(newPointerIndex);
+            if (mVelocityTracker != null) {
+                mVelocityTracker.clear();
+            }
+        }
+    }
+
+    private void initVelocityTrackerIfNotExists() {
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        }
+    }
+
+    private void recycleVelocityTracker() {
+        if (mVelocityTracker != null) {
+            mVelocityTracker.recycle();
+            mVelocityTracker = null;
+        }
+    }
+
+    private void initOrResetVelocityTracker() {
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        } else {
+            mVelocityTracker.clear();
+        }
+    }
+
+    @Override
+    public void computeScroll() {
+        if (mScroller.computeScrollOffset()) {
+            // This is called at drawing time by ViewGroup.
+            int oldX = mScrollX;
+            int oldY = mOwnScrollY;
+            int x = mScroller.getCurrX();
+            int y = mScroller.getCurrY();
+
+            if (oldX != x || oldY != y) {
+                final int range = getScrollRange();
+                final int overscrollMode = getOverScrollMode();
+                final boolean canOverscroll = overscrollMode == OVER_SCROLL_ALWAYS ||
+                        (overscrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS && range > 0);
+
+                overScrollBy(x - oldX, y - oldY, oldX, oldY, 0, range,
+                        0, mOverflingDistance, false);
+                onScrollChanged(mScrollX, mOwnScrollY, oldX, oldY);
+
+                if (canOverscroll) {
+                    // TODO: Overscroll
+//                    if (y < 0 && oldY >= 0) {
+//                        mEdgeGlowTop.onAbsorb((int) mScroller.getCurrVelocity());
+//                    } else if (y > range && oldY <= range) {
+//                        mEdgeGlowBottom.onAbsorb((int) mScroller.getCurrVelocity());
+//                    }
+                }
+                updateChildren();
+            }
+
+            // Keep on drawing until the animation has finished.
+            postInvalidateOnAnimation();
+        }
+    }
+
+    public void customScrollBy(int y) {
+        mOwnScrollY += y;
+        updateChildren();
+    }
+
+    public void customScrollTo(int y) {
+        mOwnScrollY = y;
+        updateChildren();
+    }
+
+    @Override
+    protected void onOverScrolled(int scrollX, int scrollY,
+                                  boolean clampedX, boolean clampedY) {
+        // Treat animating scrolls differently; see #computeScroll() for why.
+        if (!mScroller.isFinished()) {
+            final int oldX = mScrollX;
+            final int oldY = mOwnScrollY;
+            mScrollX = scrollX;
+            mOwnScrollY = scrollY;
+            invalidateParentIfNeeded();
+            onScrollChanged(mScrollX, mOwnScrollY, oldX, oldY);
+            if (clampedY) {
+                mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0, getScrollRange());
+            }
+            updateChildren();
+        } else {
+            customScrollTo(scrollY);
+            scrollTo(scrollX, mScrollY);
+        }
+    }
+
+    private int getScrollRange() {
+        int scrollRange = 0;
+        if (getChildCount() > 0) {
+            int contentHeight = getContentHeight();
+            scrollRange = Math.max(0,
+                    contentHeight - mMaxLayoutHeight + mBottomStackPeekSize);
+        }
+        return scrollRange;
+    }
+
+    private int getContentHeight() {
+        return mContentHeight;
+    }
+
+    private void updateContentHeight() {
+        int height = 0;
+        for (int i = 0; i < getChildCount(); i++) {
+            View child = getChildAt(i);
+            if (child.getVisibility() != View.GONE) {
+                height += child.getHeight();
+                if (i < getChildCount()-1) {
+                    height += mPaddingBetweenElements;
+                }
+            }
+        }
+        mContentHeight = height;
+    }
+
+    /**
+     * Fling the scroll view
+     *
+     * @param velocityY The initial velocity in the Y direction. Positive
+     *                  numbers mean that the finger/cursor is moving down the screen,
+     *                  which means we want to scroll towards the top.
+     */
+    private void fling(int velocityY) {
+        if (getChildCount() > 0) {
+            int height = (int) getLayoutHeight();
+            int bottom = getContentHeight();
+
+            mScroller.fling(mScrollX, mOwnScrollY, 0, velocityY, 0, 0, 0,
+                    Math.max(0, bottom - height), 0, height/2);
+
+            postInvalidateOnAnimation();
+        }
+    }
+
+    private void endDrag() {
+        setIsBeingDragged(false);
+
+        recycleVelocityTracker();
+
+        // TODO: Overscroll
+//        if (mEdgeGlowTop != null) {
+//            mEdgeGlowTop.onRelease();
+//            mEdgeGlowBottom.onRelease();
+//        }
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        boolean scrollWantsIt = false;
+        if (!mSwipingInProgress) {
+            scrollWantsIt = onInterceptTouchEventScroll(ev);
+        }
+        boolean swipeWantsIt = false;
+        if (!mIsBeingDragged) {
+            swipeWantsIt = mSwipeHelper.onInterceptTouchEvent(ev);
+        }
+        return swipeWantsIt || scrollWantsIt ||
+                super.onInterceptTouchEvent(ev);
+    }
+
+    @Override
+    protected void onViewRemoved(View child) {
+        super.onViewRemoved(child);
+        mCurrentStackScrollState.removeViewStateForView(child);
+        mStackScrollAlgorithm.notifyChildrenChanged(this);
+    }
+
+    @Override
+    protected void onViewAdded(View child) {
+        super.onViewAdded(child);
+        mStackScrollAlgorithm.notifyChildrenChanged(this);
+    }
+
+    private boolean onInterceptTouchEventScroll(MotionEvent ev) {
+        /*
+         * This method JUST determines whether we want to intercept the motion.
+         * If we return true, onMotionEvent will be called and we do the actual
+         * scrolling there.
+         */
+
+        /*
+        * Shortcut the most recurring case: the user is in the dragging
+        * state and he is moving his finger.  We want to intercept this
+        * motion.
+        */
+        final int action = ev.getAction();
+        if ((action == MotionEvent.ACTION_MOVE) && (mIsBeingDragged)) {
+            return true;
+        }
+
+        /*
+         * Don't try to intercept touch if we can't scroll anyway.
+         */
+        if (mOwnScrollY == 0 && getScrollRange() == 0) {
+            return false;
+        }
+
+        switch (action & MotionEvent.ACTION_MASK) {
+            case MotionEvent.ACTION_MOVE: {
+                /*
+                 * mIsBeingDragged == false, otherwise the shortcut would have caught it. Check
+                 * whether the user has moved far enough from his original down touch.
+                 */
+
+                /*
+                * Locally do absolute value. mLastMotionY is set to the y value
+                * of the down event.
+                */
+                final int activePointerId = mActivePointerId;
+                if (activePointerId == INVALID_POINTER) {
+                    // If we don't have a valid id, the touch down wasn't on content.
+                    break;
+                }
+
+                final int pointerIndex = ev.findPointerIndex(activePointerId);
+                if (pointerIndex == -1) {
+                    Log.e(TAG, "Invalid pointerId=" + activePointerId
+                            + " in onInterceptTouchEvent");
+                    break;
+                }
+
+                final int y = (int) ev.getY(pointerIndex);
+                final int yDiff = Math.abs(y - mLastMotionY);
+                if (yDiff > mTouchSlop) {
+                    setIsBeingDragged(true);
+                    mLastMotionY = y;
+                    initVelocityTrackerIfNotExists();
+                    mVelocityTracker.addMovement(ev);
+                }
+                break;
+            }
+
+            case MotionEvent.ACTION_DOWN: {
+                final int y = (int) ev.getY();
+                if (getChildAtPosition(ev.getX(), y) == null) {
+                    setIsBeingDragged(false);
+                    recycleVelocityTracker();
+                    break;
+                }
+
+                /*
+                 * Remember location of down touch.
+                 * ACTION_DOWN always refers to pointer index 0.
+                 */
+                mLastMotionY = y;
+                mActivePointerId = ev.getPointerId(0);
+
+                initOrResetVelocityTracker();
+                mVelocityTracker.addMovement(ev);
+                /*
+                * If being flinged and user touches the screen, initiate drag;
+                * otherwise don't.  mScroller.isFinished should be false when
+                * being flinged.
+                */
+                boolean isBeingDragged = !mScroller.isFinished();
+                setIsBeingDragged(isBeingDragged);
+                break;
+            }
+
+            case MotionEvent.ACTION_CANCEL:
+            case MotionEvent.ACTION_UP:
+                /* Release the drag */
+                setIsBeingDragged(false);
+                mActivePointerId = INVALID_POINTER;
+                recycleVelocityTracker();
+                if (mScroller.springBack(mScrollX, mOwnScrollY, 0, 0, 0, getScrollRange())) {
+                    postInvalidateOnAnimation();
+                }
+                break;
+            case MotionEvent.ACTION_POINTER_UP:
+                onSecondaryPointerUp(ev);
+                break;
+        }
+
+        /*
+        * The only time we want to intercept motion events is if we are in the
+        * drag mode.
+        */
+        return mIsBeingDragged;
+    }
+
+    private void setIsBeingDragged(boolean isDragged) {
+        mIsBeingDragged = isDragged;
+        if (isDragged) {
+            requestDisallowInterceptTouchEvent(true);
+            mSwipeHelper.removeLongPressCallback();
+        }
+    }
+
+    @Override
+    public void onWindowFocusChanged(boolean hasWindowFocus) {
+        super.onWindowFocusChanged(hasWindowFocus);
+        if (!hasWindowFocus) {
+            mSwipeHelper.removeLongPressCallback();
+        }
+    }
+
+    @Override
+    public boolean isScrolledToTop() {
+        return mOwnScrollY == 0;
+    }
+
+    @Override
+    public boolean isScrolledToBottom() {
+        return mOwnScrollY >= getScrollRange();
+    }
+
+    @Override
+    public View getHostView() {
+        return this;
+    }
+
+    public int getEmptyBottomMargin() {
+        return Math.max(getHeight() - mContentHeight, 0);
+    }
+
+    public void onExpansionStarted() {
+        mStackScrollAlgorithm.onExpansionStarted(mCurrentStackScrollState);
+    }
+
+    public void onExpansionStopped() {
+        mStackScrollAlgorithm.onExpansionStopped();
+    }
+
+    public void setIsExpanded(boolean isExpanded) {
+        mStackScrollAlgorithm.setIsExpanded(isExpanded);
+        if (!isExpanded) {
+            mOwnScrollY = 0;
+        }
+    }
+
+    /**
+     * A listener that is notified when some child locations might have changed.
+     */
+    public interface OnChildLocationsChangedListener {
+        public void onChildLocationsChanged(NotificationStackScrollLayout stackScrollLayout);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/PiecewiseLinearIndentationFunctor.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/PiecewiseLinearIndentationFunctor.java
new file mode 100644
index 0000000..38b544f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/PiecewiseLinearIndentationFunctor.java
@@ -0,0 +1,112 @@
+/*
+ * 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.android.systemui.statusbar.stack;
+
+import java.util.ArrayList;
+
+/**
+ * A Functor which interpolates the stack distance linearly based on base values.
+ * The base values are based on an interpolation between a linear function and a
+ * quadratic function
+ */
+public class PiecewiseLinearIndentationFunctor extends StackIndentationFunctor {
+
+    private final ArrayList<Float> mBaseValues;
+    private final float mLinearPart;
+
+    /**
+     * @param maxItemsInStack The maximum number of items which should be visible at the same time,
+     *                        i.e the function returns totalTransitionDistance for the element with
+     *                        index maxItemsInStack
+     * @param peekSize The visual appearance of this is how far the cards in the stack peek
+     *                 out below the top card and it is measured in real pixels.
+     *                 Note that the visual appearance does not necessarily always correspond to
+     *                 the actual visual distance below the top card but is a maximum,
+     *                 achieved when the next card just starts transitioning into the stack and
+     *                 the stack is full.
+     *                 If totalTransitionDistance is equal to this, we directly start at the peek,
+     *                 otherwise the first element transitions between 0 and
+     *                 totalTransitionDistance - peekSize.
+     *                 Visualization:
+     *           ---------------------------------------------------   ---
+     *          |                                                   |   |
+     *          |                  FIRST ITEM                       |   | <- totalTransitionDistance
+     *          |                                                   |   |
+     *          |---------------------------------------------------|   |   ---
+     *          |__________________SECOND ITEM______________________|   |    |  <- peekSize
+     *          |===================================================|  _|_  _|_
+     *
+     * @param totalTransitionDistance The total transition distance an element has to go through
+     * @param linearPart The interpolation factor between the linear and the quadratic amount taken.
+     *                   This factor must be somewhere in [0 , 1]
+     */
+    PiecewiseLinearIndentationFunctor(int maxItemsInStack,
+                                      int peekSize,
+                                      int totalTransitionDistance,
+                                      float linearPart) {
+        super(maxItemsInStack, peekSize, totalTransitionDistance);
+        mBaseValues = new ArrayList<Float>(maxItemsInStack+1);
+        initBaseValues();
+        mLinearPart = linearPart;
+    }
+
+    private void initBaseValues() {
+        int sumOfSquares = getSumOfSquares(mMaxItemsInStack-1);
+        int totalWeight = 0;
+        mBaseValues.add(0.0f);
+        for (int i = 0; i < mMaxItemsInStack - 1; i++) {
+            totalWeight += (mMaxItemsInStack - i - 1) * (mMaxItemsInStack - i - 1);
+            mBaseValues.add((float) totalWeight / sumOfSquares);
+        }
+    }
+
+    /**
+     * Get the sum of squares up to and including n, i.e sum(i * i, 1, n)
+     *
+     * @param n the maximum square to include
+     * @return
+     */
+    private int getSumOfSquares(int n) {
+        return n * (n + 1) * (2 * n + 1) / 6;
+    }
+
+    @Override
+    public float getValue(float itemsBefore) {
+        if (mStackStartsAtPeek) {
+            // We directly start at the stack, so no initial interpolation.
+            itemsBefore++;
+        }
+        if (itemsBefore < 0) {
+            return 0;
+        } else if (itemsBefore >= mMaxItemsInStack) {
+            return mTotalTransitionDistance;
+        }
+        int below = (int) itemsBefore;
+        float partialIn = itemsBefore - below;
+
+        if (below == 0) {
+            return mDistanceToPeekStart * partialIn;
+        } else {
+            float result = mDistanceToPeekStart;
+            float progress = mBaseValues.get(below - 1) * (1 - partialIn)
+                    + mBaseValues.get(below) * partialIn;
+            result += (progress * (1 - mLinearPart)
+                    + (itemsBefore - 1) / (mMaxItemsInStack - 1)  * mLinearPart) * mPeekSize;
+            return result;
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackIndentationFunctor.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackIndentationFunctor.java
new file mode 100644
index 0000000..f72947a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackIndentationFunctor.java
@@ -0,0 +1,74 @@
+/*
+ * 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.android.systemui.statusbar.stack;
+
+/**
+ * A functor which can be queried for offset given the number of items before it.
+ */
+public abstract class StackIndentationFunctor {
+
+    protected final int mTotalTransitionDistance;
+    protected final int mDistanceToPeekStart;
+    protected int mMaxItemsInStack;
+    protected int mPeekSize;
+    protected boolean mStackStartsAtPeek;
+
+    /**
+     * @param maxItemsInStack The maximum number of items which should be visible at the same time,
+     *                        i.e the function returns totalTransitionDistance for the element with
+     *                        index maxItemsInStack
+     * @param peekSize The visual appearance of this is how far the cards in the stack peek
+     *                 out below the top card and it is measured in real pixels.
+     *                 Note that the visual appearance does not necessarily always correspond to
+     *                 the actual visual distance below the top card but is a maximum,
+     *                 achieved when the next card just starts transitioning into the stack and
+     *                 the stack is full.
+     *                 If totalTransitionDistance is equal to this, we directly start at the peek,
+     *                 otherwise the first element transitions between 0 and
+     *                 totalTransitionDistance - peekSize.
+     *                 Visualization:
+     *           ---------------------------------------------------   ---
+     *          |                                                   |   |
+     *          |                  FIRST ITEM                       |   | <- totalTransitionDistance
+     *          |                                                   |   |
+     *          |---------------------------------------------------|   |   ---
+     *          |__________________SECOND ITEM______________________|   |    |  <- peekSize
+     *          |===================================================|  _|_  _|_
+     *
+     * @param totalTransitionDistance The total transition distance an element has to go through
+     */
+    StackIndentationFunctor(int maxItemsInStack, int peekSize, int totalTransitionDistance) {
+        mTotalTransitionDistance = totalTransitionDistance;
+        mDistanceToPeekStart = mTotalTransitionDistance - peekSize;
+        mStackStartsAtPeek = mDistanceToPeekStart == 0;
+        mMaxItemsInStack = maxItemsInStack;
+        mPeekSize = peekSize;
+
+    }
+
+    public void setPeekSize(int mPeekSize) {
+        this.mPeekSize = mPeekSize;
+    }
+
+    /**
+     * Gets the offset of this Functor given a the quantity of items before it
+     *
+     * @param itemsBefore how many items are already in the stack before this element
+     * @return the offset
+     */
+    public abstract float getValue(float itemsBefore);
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
new file mode 100644
index 0000000..431f6fe
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
@@ -0,0 +1,538 @@
+/*
+ * 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.android.systemui.statusbar.stack;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import com.android.systemui.R;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
+
+import java.util.ArrayList;
+
+/**
+ * The Algorithm of the {@link com.android.systemui.statusbar.stack
+ * .NotificationStackScrollLayout} which can be queried for {@link com.android.systemui.statusbar
+ * .stack.StackScrollState}
+ */
+public class StackScrollAlgorithm {
+
+    private static final String LOG_TAG = "StackScrollAlgorithm";
+
+    private static final int MAX_ITEMS_IN_BOTTOM_STACK = 3;
+    private static final int MAX_ITEMS_IN_TOP_STACK = 3;
+
+    private int mPaddingBetweenElements;
+    private int mCollapsedSize;
+    private int mTopStackPeekSize;
+    private int mBottomStackPeekSize;
+    private int mZDistanceBetweenElements;
+    private int mZBasicHeight;
+
+    private StackIndentationFunctor mTopStackIndentationFunctor;
+    private StackIndentationFunctor mBottomStackIndentationFunctor;
+
+    private float mLayoutHeight;
+    private StackScrollAlgorithmState mTempAlgorithmState = new StackScrollAlgorithmState();
+    private boolean mIsExpansionChanging;
+    private int mFirstChildMaxHeight;
+    private boolean mIsExpanded;
+    private View mFirstChildWhileExpanding;
+    private boolean mExpandedOnStart;
+
+    public StackScrollAlgorithm(Context context) {
+        initConstants(context);
+    }
+
+    private void initConstants(Context context) {
+
+        // currently the padding is in the elements themself
+        mPaddingBetweenElements = 0;
+        mCollapsedSize = context.getResources()
+                .getDimensionPixelSize(R.dimen.notification_row_min_height);
+        mTopStackPeekSize = context.getResources()
+                .getDimensionPixelSize(R.dimen.top_stack_peek_amount);
+        mBottomStackPeekSize = context.getResources()
+                .getDimensionPixelSize(R.dimen.bottom_stack_peek_amount);
+        mZDistanceBetweenElements = context.getResources()
+                .getDimensionPixelSize(R.dimen.z_distance_between_notifications);
+        mZBasicHeight = (MAX_ITEMS_IN_BOTTOM_STACK + 1) * mZDistanceBetweenElements;
+
+        mTopStackIndentationFunctor = new PiecewiseLinearIndentationFunctor(
+                MAX_ITEMS_IN_TOP_STACK,
+                mTopStackPeekSize,
+                mCollapsedSize + mPaddingBetweenElements,
+                0.5f);
+        mBottomStackIndentationFunctor = new PiecewiseLinearIndentationFunctor(
+                MAX_ITEMS_IN_BOTTOM_STACK,
+                mBottomStackPeekSize,
+                mBottomStackPeekSize,
+                0.5f);
+    }
+
+
+    public void getStackScrollState(StackScrollState resultState) {
+        // The state of the local variables are saved in an algorithmState to easily subdivide it
+        // into multiple phases.
+        StackScrollAlgorithmState algorithmState = mTempAlgorithmState;
+
+        // First we reset the view states to their default values.
+        resultState.resetViewStates();
+
+        // The first element is always in there so it's initialized with 1.0f;
+        algorithmState.itemsInTopStack = 1.0f;
+        algorithmState.partialInTop = 0.0f;
+        algorithmState.lastTopStackIndex = 0;
+        algorithmState.scrollY = resultState.getScrollY();
+        algorithmState.itemsInBottomStack = 0.0f;
+        updateVisibleChildren(resultState, algorithmState);
+
+        // Phase 1:
+        findNumberOfItemsInTopStackAndUpdateState(resultState, algorithmState);
+
+        // Phase 2:
+        updatePositionsForState(resultState, algorithmState);
+
+        // Phase 3:
+        updateZValuesForState(resultState, algorithmState);
+
+        // write the algorithm state to the result
+        resultState.setScrollY(algorithmState.scrollY);
+    }
+
+    /**
+     * Update the visible children on the state.
+     */
+    private void updateVisibleChildren(StackScrollState resultState,
+            StackScrollAlgorithmState state) {
+        ViewGroup hostView = resultState.getHostView();
+        int childCount = hostView.getChildCount();
+        state.visibleChildren.clear();
+        state.visibleChildren.ensureCapacity(childCount);
+        for (int i = 0; i < childCount; i++) {
+            View v = hostView.getChildAt(i);
+            if (v.getVisibility() != View.GONE) {
+                state.visibleChildren.add(v);
+            }
+        }
+    }
+
+    /**
+     * Determine the positions for the views. This is the main part of the algorithm.
+     *
+     * @param resultState The result state to update if a change to the properties of a child occurs
+     * @param algorithmState The state in which the current pass of the algorithm is currently in
+     *                       and which will be updated
+     */
+    private void updatePositionsForState(StackScrollState resultState,
+            StackScrollAlgorithmState algorithmState) {
+        float stackHeight = getLayoutHeight();
+
+        // The starting position of the bottom stack peek
+        float bottomPeekStart = stackHeight - mBottomStackPeekSize;
+
+        // The position where the bottom stack starts.
+        float transitioningPositionStart = bottomPeekStart - mCollapsedSize;
+
+        // The y coordinate of the current child.
+        float currentYPosition = 0.0f;
+
+        // How far in is the element currently transitioning into the bottom stack.
+        float yPositionInScrollView = 0.0f;
+
+        int childCount = algorithmState.visibleChildren.size();
+        int numberOfElementsCompletelyIn = (int) algorithmState.itemsInTopStack;
+        for (int i = 0; i < childCount; i++) {
+            View child = algorithmState.visibleChildren.get(i);
+            StackScrollState.ViewState childViewState = resultState.getViewStateForView(child);
+            childViewState.yTranslation = currentYPosition;
+            childViewState.location = StackScrollState.ViewState.LOCATION_UNKNOWN;
+            int childHeight = child.getHeight();
+            // The y position after this element
+            float nextYPosition = currentYPosition + childHeight + mPaddingBetweenElements;
+            float yPositionInScrollViewAfterElement = yPositionInScrollView
+                    + childHeight
+                    + mPaddingBetweenElements;
+            float scrollOffset = yPositionInScrollViewAfterElement - algorithmState.scrollY;
+            if (i < algorithmState.lastTopStackIndex) {
+                // Case 1:
+                // We are in the top Stack
+                nextYPosition = updateStateForTopStackChild(algorithmState,
+                        numberOfElementsCompletelyIn,
+                        i, childViewState);
+            } else if (i == algorithmState.lastTopStackIndex) {
+                // Case 2:
+                // First element of regular scrollview comes next, so the position is just the
+                // scrolling position
+                nextYPosition = updateStateForFirstScrollingChild(transitioningPositionStart,
+                        childViewState, scrollOffset);
+            } else if (nextYPosition >= transitioningPositionStart) {
+                if (currentYPosition >= transitioningPositionStart) {
+                    // Case 3:
+                    // According to the regular scroll view we are fully translated out of the
+                    // bottom of the screen so we are fully in the bottom stack
+                    nextYPosition = updateStateForChildFullyInBottomStack(algorithmState,
+                            transitioningPositionStart, childViewState, childHeight);
+                } else {
+                    // Case 4:
+                    // According to the regular scroll view we are currently translating out of /
+                    // into the bottom of the screen
+                    nextYPosition = updateStateForChildTransitioningInBottom(
+                            algorithmState, stackHeight, transitioningPositionStart,
+                            currentYPosition, childViewState,
+                            childHeight, nextYPosition);
+                }
+            } else {
+                childViewState.location = StackScrollState.ViewState.LOCATION_MAIN_AREA;
+            }
+            // The first card is always rendered.
+            if (i == 0) {
+                childViewState.alpha = 1.0f;
+                childViewState.location = StackScrollState.ViewState.LOCATION_FIRST_CARD;
+            }
+            if (childViewState.location == StackScrollState.ViewState.LOCATION_UNKNOWN) {
+                Log.wtf(LOG_TAG, "Failed to assign location for child " + i);
+            }
+            nextYPosition = Math.max(0, nextYPosition);
+            currentYPosition = nextYPosition;
+            yPositionInScrollView = yPositionInScrollViewAfterElement;
+        }
+    }
+
+    /**
+     * Update the state for the first child which is in the regular scrolling area.
+     *
+     * @param transitioningPositionStart the transition starting position of the bottom stack
+     * @param childViewState the view state of the child
+     * @param scrollOffset the position in the regular scroll view after this child
+     * @return the next child position
+     */
+    private float updateStateForFirstScrollingChild(float transitioningPositionStart,
+            StackScrollState.ViewState childViewState, float scrollOffset) {
+        childViewState.location = StackScrollState.ViewState.LOCATION_TOP_STACK_PEEKING;
+        if (scrollOffset < transitioningPositionStart) {
+            return scrollOffset;
+        } else {
+            return transitioningPositionStart;
+        }
+    }
+
+    private int getMaxAllowedChildHeight(View child) {
+        if (child instanceof ExpandableNotificationRow) {
+            ExpandableNotificationRow row = (ExpandableNotificationRow) child;
+            return row.getMaximumAllowedExpandHeight();
+        }
+        return child.getHeight();
+    }
+
+    private float updateStateForChildTransitioningInBottom(StackScrollAlgorithmState algorithmState,
+            float stackHeight, float transitioningPositionStart, float currentYPosition,
+            StackScrollState.ViewState childViewState, int childHeight, float nextYPosition) {
+        float newSize = transitioningPositionStart + mCollapsedSize - currentYPosition;
+        newSize = Math.min(childHeight, newSize);
+        // Transitioning element on top of bottom stack:
+        algorithmState.partialInBottom = 1.0f - (
+                (stackHeight - mBottomStackPeekSize - nextYPosition) / mCollapsedSize);
+        // Our element can be expanded, so we might even have to scroll further than
+        // mCollapsedSize
+        algorithmState.partialInBottom = Math.min(1.0f, algorithmState.partialInBottom);
+        float offset = mBottomStackIndentationFunctor.getValue(
+                algorithmState.partialInBottom);
+        nextYPosition = transitioningPositionStart + offset;
+        algorithmState.itemsInBottomStack += algorithmState.partialInBottom;
+        // TODO: only temporarily collapse
+        if (childHeight != (int) newSize) {
+            childViewState.height = (int) newSize;
+        }
+        childViewState.location = StackScrollState.ViewState.LOCATION_MAIN_AREA;
+
+        return nextYPosition;
+    }
+
+    private float updateStateForChildFullyInBottomStack(StackScrollAlgorithmState algorithmState,
+            float transitioningPositionStart, StackScrollState.ViewState childViewState,
+            int childHeight) {
+
+        float nextYPosition;
+        algorithmState.itemsInBottomStack += 1.0f;
+        if (algorithmState.itemsInBottomStack < MAX_ITEMS_IN_BOTTOM_STACK) {
+            // We are visually entering the bottom stack
+            nextYPosition = transitioningPositionStart
+                    + mBottomStackIndentationFunctor.getValue(
+                            algorithmState.itemsInBottomStack);
+            childViewState.location = StackScrollState.ViewState.LOCATION_BOTTOM_STACK_PEEKING;
+        } else {
+            // we are fully inside the stack
+            if (algorithmState.itemsInBottomStack > MAX_ITEMS_IN_BOTTOM_STACK + 2) {
+                childViewState.alpha = 0.0f;
+            } else if (algorithmState.itemsInBottomStack
+                    > MAX_ITEMS_IN_BOTTOM_STACK + 1) {
+                childViewState.alpha = 1.0f - algorithmState.partialInBottom;
+            }
+            childViewState.location = StackScrollState.ViewState.LOCATION_BOTTOM_STACK_HIDDEN;
+            nextYPosition = transitioningPositionStart + mBottomStackPeekSize;
+        }
+        // TODO: only temporarily collapse
+        if (childHeight != mCollapsedSize) {
+            childViewState.height = mCollapsedSize;
+        }
+        return nextYPosition;
+    }
+
+    private float updateStateForTopStackChild(StackScrollAlgorithmState algorithmState,
+            int numberOfElementsCompletelyIn, int i, StackScrollState.ViewState childViewState) {
+
+        float nextYPosition = 0;
+
+        // First we calculate the index relative to the current stack window of size at most
+        // {@link #MAX_ITEMS_IN_TOP_STACK}
+        int paddedIndex = i
+                - Math.max(numberOfElementsCompletelyIn - MAX_ITEMS_IN_TOP_STACK, 0);
+        if (paddedIndex >= 0) {
+            // We are currently visually entering the top stack
+            nextYPosition = mCollapsedSize + mPaddingBetweenElements -
+                    mTopStackIndentationFunctor.getValue(
+                            algorithmState.itemsInTopStack - i - 1);
+            nextYPosition = Math.min(nextYPosition, mLayoutHeight - mCollapsedSize
+                    - mBottomStackPeekSize);
+            if (paddedIndex == 0) {
+                childViewState.alpha = 1.0f - algorithmState.partialInTop;
+                childViewState.location = StackScrollState.ViewState.LOCATION_TOP_STACK_HIDDEN;
+            } else {
+                childViewState.location = StackScrollState.ViewState.LOCATION_TOP_STACK_PEEKING;
+            }
+        } else {
+            // We are hidden behind the top card and faded out, so we can hide ourselves.
+            childViewState.alpha = 0.0f;
+            childViewState.location = StackScrollState.ViewState.LOCATION_TOP_STACK_HIDDEN;
+        }
+        return nextYPosition;
+    }
+
+    /**
+     * Find the number of items in the top stack and update the result state if needed.
+     *
+     * @param resultState The result state to update if a height change of an child occurs
+     * @param algorithmState The state in which the current pass of the algorithm is currently in
+     *                       and which will be updated
+     */
+    private void findNumberOfItemsInTopStackAndUpdateState(StackScrollState resultState,
+            StackScrollAlgorithmState algorithmState) {
+
+        // The y Position if the element would be in a regular scrollView
+        float yPositionInScrollView = 0.0f;
+        int childCount = algorithmState.visibleChildren.size();
+
+        // find the number of elements in the top stack.
+        for (int i = 0; i < childCount; i++) {
+            View child = algorithmState.visibleChildren.get(i);
+            StackScrollState.ViewState childViewState = resultState.getViewStateForView(child);
+            int childHeight = child.getHeight();
+            float yPositionInScrollViewAfterElement = yPositionInScrollView
+                    + childHeight
+                    + mPaddingBetweenElements;
+            if (yPositionInScrollView < algorithmState.scrollY) {
+                if (yPositionInScrollViewAfterElement <= algorithmState.scrollY) {
+                    // According to the regular scroll view we are fully off screen
+                    algorithmState.itemsInTopStack += 1.0f;
+                    if (childHeight != mCollapsedSize) {
+                        childViewState.height = mCollapsedSize;
+                    }
+                } else {
+                    // According to the regular scroll view we are partially off screen
+                    // If it is expanded we have to collapse it to a new size
+                    float newSize = yPositionInScrollViewAfterElement
+                            - mPaddingBetweenElements
+                            - algorithmState.scrollY;
+
+                    // How much did we scroll into this child
+                    algorithmState.partialInTop = (mCollapsedSize - newSize) / (mCollapsedSize
+                            + mPaddingBetweenElements);
+
+                    // Our element can be expanded, so this can get negative
+                    algorithmState.partialInTop = Math.max(0.0f, algorithmState.partialInTop);
+                    algorithmState.itemsInTopStack += algorithmState.partialInTop;
+                    // TODO: handle overlapping sizes with end stack
+                    newSize = Math.max(mCollapsedSize, newSize);
+                    // TODO: only temporarily collapse
+                    if (newSize != childHeight) {
+                        childViewState.height = (int) newSize;
+
+                        // We decrease scrollY by the same amount we made this child smaller.
+                        // The new scroll position is therefore the start of the element
+                        algorithmState.scrollY = (int) yPositionInScrollView;
+                        resultState.setScrollY(algorithmState.scrollY);
+                    }
+                    if (childHeight > mCollapsedSize) {
+                        // If we are just resizing this child, this element is not treated to be
+                        // transitioning into the stack and therefore it is the last element in
+                        // the stack.
+                        algorithmState.lastTopStackIndex = i;
+                        break;
+                    }
+                }
+            } else {
+                algorithmState.lastTopStackIndex = i;
+                if (i == 0) {
+
+                    // The starting position of the bottom stack peek
+                    float bottomPeekStart = getLayoutHeight() - mBottomStackPeekSize;
+                    // Collapse and expand the first child while the shade is being expanded
+                    float maxHeight = mIsExpansionChanging && child == mFirstChildWhileExpanding
+                            ? mFirstChildMaxHeight
+                            : childHeight;
+                    childViewState.height = (int) Math.max(Math.min(bottomPeekStart, maxHeight),
+                            mCollapsedSize);
+                }
+                // We are already past the stack so we can end the loop
+                break;
+            }
+            yPositionInScrollView = yPositionInScrollViewAfterElement;
+        }
+    }
+
+    /**
+     * Calculate the Z positions for all children based on the number of items in both stacks and
+     * save it in the resultState
+     *
+     * @param resultState The result state to update the zTranslation values
+     * @param algorithmState The state in which the current pass of the algorithm is currently in
+     */
+    private void updateZValuesForState(StackScrollState resultState,
+            StackScrollAlgorithmState algorithmState) {
+        int childCount = algorithmState.visibleChildren.size();
+        for (int i = 0; i < childCount; i++) {
+            View child = algorithmState.visibleChildren.get(i);
+            StackScrollState.ViewState childViewState = resultState.getViewStateForView(child);
+            if (i < algorithmState.itemsInTopStack) {
+                float stackIndex = algorithmState.itemsInTopStack - i;
+                stackIndex = Math.min(stackIndex, MAX_ITEMS_IN_TOP_STACK + 2);
+                childViewState.zTranslation = mZBasicHeight
+                        + stackIndex * mZDistanceBetweenElements;
+            } else if (i > (childCount - 1 - algorithmState.itemsInBottomStack)) {
+                float numItemsAbove = i - (childCount - 1 - algorithmState.itemsInBottomStack);
+                float translationZ = mZBasicHeight
+                        - numItemsAbove * mZDistanceBetweenElements;
+                childViewState.zTranslation = translationZ;
+            } else {
+                childViewState.zTranslation = mZBasicHeight;
+            }
+        }
+    }
+
+    public float getLayoutHeight() {
+        return mLayoutHeight;
+    }
+
+    public void setLayoutHeight(float layoutHeight) {
+        this.mLayoutHeight = layoutHeight;
+    }
+
+    public void onExpansionStarted(StackScrollState currentState) {
+        mIsExpansionChanging = true;
+        mExpandedOnStart = mIsExpanded;
+        ViewGroup hostView = currentState.getHostView();
+        updateFirstChildHeightWhileExpanding(hostView);
+    }
+
+    private void updateFirstChildHeightWhileExpanding(ViewGroup hostView) {
+        mFirstChildWhileExpanding = findFirstVisibleChild(hostView);
+        if (mFirstChildWhileExpanding != null) {
+            if (mExpandedOnStart) {
+
+                // We are collapsing the shade, so the first child can get as most as high as the
+                // current height.
+                mFirstChildMaxHeight = mFirstChildWhileExpanding.getHeight();
+            } else {
+
+                // We are expanding the shade, expand it to its full height.
+                mFirstChildMaxHeight = getMaxAllowedChildHeight(mFirstChildWhileExpanding);
+            }
+        } else {
+            mFirstChildMaxHeight = 0;
+        }
+    }
+
+    private View findFirstVisibleChild(ViewGroup container) {
+        int childCount = container.getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            View child = container.getChildAt(i);
+            if (child.getVisibility() != View.GONE) {
+                return child;
+            }
+        }
+        return null;
+    }
+
+    public void onExpansionStopped() {
+        mIsExpansionChanging = false;
+        mFirstChildWhileExpanding = null;
+    }
+
+    public void setIsExpanded(boolean isExpanded) {
+        this.mIsExpanded = isExpanded;
+    }
+
+    public void notifyChildrenChanged(ViewGroup hostView) {
+        if (mIsExpansionChanging) {
+            updateFirstChildHeightWhileExpanding(hostView);
+        }
+    }
+
+    class StackScrollAlgorithmState {
+
+        /**
+         * The scroll position of the algorithm
+         */
+        public int scrollY;
+
+        /**
+         *  The quantity of items which are in the top stack.
+         */
+        public float itemsInTopStack;
+
+        /**
+         * how far in is the element currently transitioning into the top stack
+         */
+        public float partialInTop;
+
+        /**
+         * The last item index which is in the top stack.
+         * NOTE: In the top stack the item after the transitioning element is also in the stack!
+         * This is needed to ensure a smooth transition between the y position in the regular
+         * scrollview and the one in the stack.
+         */
+        public int lastTopStackIndex;
+
+        /**
+         * The quantity of items which are in the bottom stack.
+         */
+        public float itemsInBottomStack;
+
+        /**
+         * how far in is the element currently transitioning into the bottom stack
+         */
+        public float partialInBottom;
+
+        /**
+         * The children from the host view which are not gone.
+         */
+        public final ArrayList<View> visibleChildren = new ArrayList<View>();
+    }
+
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java
new file mode 100644
index 0000000..06a08f3
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java
@@ -0,0 +1,177 @@
+/*
+ * 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.android.systemui.statusbar.stack;
+
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A state of a {@link com.android.systemui.statusbar.stack.NotificationStackScrollLayout} which
+ * can be applied to a viewGroup.
+ */
+public class StackScrollState {
+
+    private static final String CHILD_NOT_FOUND_TAG = "StackScrollStateNoSuchChild";
+
+    private final ViewGroup mHostView;
+    private Map<View, ViewState> mStateMap;
+    private int mScrollY;
+
+    public int getScrollY() {
+        return mScrollY;
+    }
+
+    public void setScrollY(int scrollY) {
+        this.mScrollY = scrollY;
+    }
+
+    public StackScrollState(ViewGroup hostView) {
+        mHostView = hostView;
+        mStateMap = new HashMap<View, ViewState>();
+    }
+
+    public ViewGroup getHostView() {
+        return mHostView;
+    }
+
+    public void resetViewStates() {
+        int numChildren = mHostView.getChildCount();
+        for (int i = 0; i < numChildren; i++) {
+            View child = mHostView.getChildAt(i);
+            ViewState viewState = mStateMap.get(child);
+            if (viewState == null) {
+                viewState = new ViewState();
+                mStateMap.put(child, viewState);
+            }
+            // initialize with the default values of the view
+            viewState.height = child.getHeight();
+            viewState.alpha = 1;
+            viewState.gone = child.getVisibility() == View.GONE;
+        }
+    }
+
+
+    public ViewState getViewStateForView(View requestedView) {
+        return mStateMap.get(requestedView);
+    }
+
+    public void removeViewStateForView(View child) {
+        mStateMap.remove(child);
+    }
+
+    /**
+     * Apply the properties saved in {@link #mStateMap} to the children of the {@link #mHostView}.
+     * The properties are only applied if they effectively changed.
+     */
+    public void apply() {
+        int numChildren = mHostView.getChildCount();
+        for (int i = 0; i < numChildren; i++) {
+            View child = mHostView.getChildAt(i);
+            ViewState state = mStateMap.get(child);
+            if (state != null) {
+                float alpha = child.getAlpha();
+                float yTranslation = child.getTranslationY();
+                float zTranslation = child.getTranslationZ();
+                int height = child.getHeight();
+                float newAlpha = state.alpha;
+                float newYTranslation = state.yTranslation;
+                float newZTranslation = state.zTranslation;
+                int newHeight = state.height;
+                boolean becomesInvisible = newAlpha == 0.0f;
+                if (alpha != newAlpha) {
+                    // apply layer type
+                    boolean becomesFullyVisible = newAlpha == 1.0f;
+                    boolean newLayerTypeIsHardware = !becomesInvisible && !becomesFullyVisible;
+                    int layerType = child.getLayerType();
+                    int newLayerType = newLayerTypeIsHardware
+                            ? View.LAYER_TYPE_HARDWARE
+                            : View.LAYER_TYPE_NONE;
+                    if (layerType != newLayerType) {
+                        child.setLayerType(newLayerType, null);
+                    }
+
+                    // apply alpha
+                    if (!becomesInvisible) {
+                        child.setAlpha(newAlpha);
+                    }
+                }
+
+                // apply visibility
+                int oldVisibility = child.getVisibility();
+                int newVisibility = becomesInvisible ? View.INVISIBLE : View.VISIBLE;
+                if (newVisibility != oldVisibility && !state.gone) {
+                    child.setVisibility(newVisibility);
+                }
+
+                // apply yTranslation
+                if (yTranslation != newYTranslation) {
+                    child.setTranslationY(newYTranslation);
+                }
+
+                // apply zTranslation
+                if (zTranslation != newZTranslation) {
+                    child.setTranslationZ(newZTranslation);
+                }
+
+                // apply height
+                if (height != newHeight) {
+                    applyNewHeight(child, newHeight);
+                }
+            } else {
+                Log.wtf(CHILD_NOT_FOUND_TAG, "No child state was found when applying this state " +
+                        "to the hostView");
+            }
+        }
+    }
+
+    private void applyNewHeight(View child, int newHeight) {
+        ViewGroup.LayoutParams lp = child.getLayoutParams();
+        lp.height = newHeight;
+        child.setLayoutParams(lp);
+    }
+
+
+    public static class ViewState {
+
+        // These are flags such that we can create masks for filtering.
+
+        public static final int LOCATION_UNKNOWN = 0x00;
+        public static final int LOCATION_FIRST_CARD = 0x01;
+        public static final int LOCATION_TOP_STACK_HIDDEN = 0x02;
+        public static final int LOCATION_TOP_STACK_PEEKING = 0x04;
+        public static final int LOCATION_MAIN_AREA = 0x08;
+        public static final int LOCATION_BOTTOM_STACK_PEEKING = 0x10;
+        public static final int LOCATION_BOTTOM_STACK_HIDDEN = 0x20;
+
+        float alpha;
+        float yTranslation;
+        float zTranslation;
+        int height;
+        boolean gone;
+
+        /**
+         * The location this view is currently rendered at.
+         *
+         * <p>See <code>LOCATION_</code> flags.</p>
+         */
+        int location;
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
index dd13e31..d615542 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
@@ -22,6 +22,7 @@
 import android.view.ViewGroup.LayoutParams;
 import android.view.WindowManager;
 
+import com.android.internal.policy.IKeyguardShowCallback;
 import com.android.internal.statusbar.StatusBarIcon;
 import com.android.systemui.statusbar.BaseStatusBar;
 
@@ -93,10 +94,6 @@
     }
 
     @Override
-    protected void createAndAddWindows() {
-    }
-
-    @Override
     protected WindowManager.LayoutParams getSearchLayoutParams(
             LayoutParams layoutParams) {
         return null;
@@ -141,10 +138,19 @@
     }
 
     @Override
+    protected int getMaxKeyguardNotifications() {
+        return 0;
+    }
+
+    @Override
     public void animateExpandSettingsPanel() {
     }
 
     @Override
+    protected void createAndAddWindows() {
+    }
+
+    @Override
     protected void refreshLayout(int layoutDirection) {
     }
 
diff --git a/packages/VpnDialogs/AndroidManifest.xml b/packages/VpnDialogs/AndroidManifest.xml
index ef640d5..03d920a 100644
--- a/packages/VpnDialogs/AndroidManifest.xml
+++ b/packages/VpnDialogs/AndroidManifest.xml
@@ -1,10 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (c) 2014 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.
+ */
+-->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.vpndialogs">
 
     <application android:label="VpnDialogs"
             android:allowBackup="false" >
         <activity android:name=".ConfirmDialog"
-                android:theme="@*android:style/Theme.Holo.Dialog.Alert">
+                android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.DEFAULT"/>
@@ -12,7 +30,7 @@
         </activity>
 
         <activity android:name=".ManageDialog"
-                android:theme="@*android:style/Theme.Holo.Dialog.Alert"
+                android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert"
                 android:noHistory="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
diff --git a/packages/WallpaperCropper/AndroidManifest.xml b/packages/WallpaperCropper/AndroidManifest.xml
index 27755bd..81d1085 100644
--- a/packages/WallpaperCropper/AndroidManifest.xml
+++ b/packages/WallpaperCropper/AndroidManifest.xml
@@ -1,3 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (c) 2014 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.
+ */
+-->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.wallpapercropper" >
         <uses-permission android:name="android.permission.SET_WALLPAPER" />
diff --git a/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml b/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml
index 97d7001..cf78989 100644
--- a/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml
+++ b/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml
@@ -28,7 +28,7 @@
         android:layout_height="match_parent" />
     <ProgressBar
         android:id="@+id/loading"
-        style="@android:style/Widget.Holo.ProgressBar.Large"
+        style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Large"
         android:visibility="invisible"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/packages/WallpaperCropper/res/values/styles.xml b/packages/WallpaperCropper/res/values/styles.xml
index 2b63fe0..b27a387 100644
--- a/packages/WallpaperCropper/res/values/styles.xml
+++ b/packages/WallpaperCropper/res/values/styles.xml
@@ -15,13 +15,13 @@
 -->
 
 <resources>
-    <style name="Theme.WallpaperCropper" parent="@android:style/Theme.Holo">
+    <style name="Theme.WallpaperCropper" parent="@android:style/Theme.DeviceDefault.Light">
         <item name="android:actionBarStyle">@style/WallpaperCropperActionBar</item>
         <item name="android:windowFullscreen">true</item>
         <item name="android:windowActionBarOverlay">true</item>
     </style>
 
-    <style name="WallpaperCropperActionBar" parent="android:style/Widget.Holo.ActionBar">
+    <style name="WallpaperCropperActionBar" parent="android:style/Widget.DeviceDefault.Light.ActionBar">
         <item name="android:displayOptions">showCustom</item>
         <item name="android:background">#88000000</item>
     </style>
diff --git a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
index fb002d2..5c8a8ef8 100644
--- a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
+++ b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
@@ -365,12 +365,6 @@
 
         Point inSize = mCropView.getSourceDimensions();
 
-        // Due to rounding errors in the cropview renderer the edges can be slightly offset
-        // therefore we ensure that the boundaries are sanely defined
-        cropRect.left = Math.max(0, cropRect.left);
-        cropRect.right = Math.min(inSize.x, cropRect.right);
-        cropRect.top = Math.max(0, cropRect.top);
-        cropRect.bottom = Math.min(inSize.y, cropRect.bottom);
         int cropRotation = mCropView.getImageRotation();
         float cropScale = mCropView.getWidth() / (float) cropRect.width();
 
@@ -381,6 +375,13 @@
         rotatedInSize[0] = Math.abs(rotatedInSize[0]);
         rotatedInSize[1] = Math.abs(rotatedInSize[1]);
 
+        // Due to rounding errors in the cropview renderer the edges can be slightly offset
+        // therefore we ensure that the boundaries are sanely defined
+        cropRect.left = Math.max(0, cropRect.left);
+        cropRect.right = Math.min(rotatedInSize[0], cropRect.right);
+        cropRect.top = Math.max(0, cropRect.top);
+        cropRect.bottom = Math.min(rotatedInSize[1], cropRect.bottom);
+
         // ADJUST CROP WIDTH
         // Extend the crop all the way to the right, for parallax
         // (or all the way to the left, in RTL)
diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java
index 0120a03..c6972b1 100644
--- a/policy/src/com/android/internal/policy/impl/GlobalActions.java
+++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java
@@ -121,13 +121,14 @@
         filter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
         context.registerReceiver(mBroadcastReceiver, filter);
 
+        ConnectivityManager cm = (ConnectivityManager)
+                context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        mHasTelephony = cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
+
         // get notified of phone state changes
         TelephonyManager telephonyManager =
                 (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
         telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);
-        ConnectivityManager cm = (ConnectivityManager)
-                context.getSystemService(Context.CONNECTIVITY_SERVICE);
-        mHasTelephony = cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
         mContext.getContentResolver().registerContentObserver(
                 Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON), true,
                 mAirplaneModeObserver);
@@ -267,7 +268,7 @@
         if (Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && isCurrentUserOwner()) {
             mItems.add(
-                new SinglePressAction(com.android.internal.R.drawable.stat_sys_adb,
+                new SinglePressAction(com.android.internal.R.drawable.ic_lock_bugreport,
                         R.string.global_action_bug_report) {
 
                     public void onPress() {
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index a65f677..79ed866 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -25,6 +25,8 @@
 import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.app.ActivityOptions;
+import android.os.Looper;
+import android.transition.Fade;
 import android.transition.Scene;
 import android.transition.Transition;
 import android.transition.TransitionInflater;
@@ -109,7 +111,6 @@
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -145,6 +146,7 @@
     TypedValue mFixedWidthMinor;
     TypedValue mFixedHeightMajor;
     TypedValue mFixedHeightMinor;
+    TypedValue mOutsetBottom;
 
     // This is the top-level view of the window, containing the window decor.
     private DecorView mDecor;
@@ -252,8 +254,10 @@
 
     private ActivityOptions mActivityOptions;
     private SceneTransitionListener mSceneTransitionListener;
-    private boolean mTriggerEarly = true;
+    private boolean mAllowEnterOverlap = true;
+    private boolean mAllowExitOverlap = true;
     private Map<String, String> mSharedElementsMap;
+    private ArrayList<View> mTransitioningViews;
 
     static class WindowManagerHolder {
         static final IWindowManager sWindowManager = IWindowManager.Stub.asInterface(
@@ -2370,7 +2374,6 @@
                     } else {
                         h = 0;
                     }
-
                     if (h > 0) {
                         final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
                         heightMeasureSpec = MeasureSpec.makeMeasureSpec(
@@ -2379,6 +2382,15 @@
                 }
             }
 
+            if (mOutsetBottom != null) {
+                int mode = MeasureSpec.getMode(heightMeasureSpec);
+                if (mode != MeasureSpec.UNSPECIFIED) {
+                    int outset = (int) mOutsetBottom.getDimension(metrics);
+                    int height = MeasureSpec.getSize(heightMeasureSpec);
+                    heightMeasureSpec = MeasureSpec.makeMeasureSpec(height + outset, mode);
+                }
+            }
+
             super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 
             int width = getMeasuredWidth();
@@ -2993,6 +3005,10 @@
         if (a.getBoolean(com.android.internal.R.styleable.Window_windowContentTransitions, false)) {
             requestFeature(FEATURE_CONTENT_TRANSITIONS);
         }
+        if (a.hasValue(com.android.internal.R.styleable.Window_windowOutsetBottom)) {
+            if (mOutsetBottom == null) mOutsetBottom = new TypedValue();
+            a.getValue(com.android.internal.R.styleable.Window_windowOutsetBottom, mOutsetBottom);
+        }
 
         final Context context = getContext();
         final int targetSdk = context.getApplicationInfo().targetSdkVersion;
@@ -4068,14 +4084,26 @@
     }
 
     @Override
-    public void setTransitionOptions(ActivityOptions options, SceneTransitionListener listener) {
+    public void setTransitionOptions(Bundle options, SceneTransitionListener listener) {
         mSceneTransitionListener = listener;
-        mActivityOptions = options;
+        ActivityOptions activityOptions = null;
+        if (options != null) {
+            activityOptions = new ActivityOptions(options);
+            if (activityOptions.getAnimationType() != ActivityOptions.ANIM_SCENE_TRANSITION) {
+                activityOptions = null;
+            }
+        }
+        mActivityOptions = activityOptions;
     }
 
     @Override
-    public void setTriggerEarlyEnterTransition(boolean triggerEarly) {
-        mTriggerEarly = triggerEarly;
+    public void setAllowOverlappingEnterTransition(boolean allow) {
+        mAllowEnterOverlap = allow;
+    }
+
+    @Override
+    public void setAllowOverlappingExitTransition(boolean allow) {
+        mAllowExitOverlap = allow;
     }
 
     @Override
@@ -4084,7 +4112,50 @@
     }
 
     @Override
-    public Bundle startExitTransition(ActivityOptions activityOptions) {
+    public void restoreViewVisibilityAfterTransitionToCallee() {
+        if (mTransitioningViews != null) {
+            setViewVisibility(mTransitioningViews, View.VISIBLE);
+        }
+    }
+
+    @Override
+    public void startExitTransitionToCaller(final Runnable onTransitionEnd) {
+        Transition transition;
+        if (mContentScene == null || mTransitionManager == null || mActivityOptions == null
+                || (transition = mTransitionManager.getEnterTransition(mContentScene)) == null) {
+            onTransitionEnd.run();
+            return;
+        }
+        if (mAllowExitOverlap) {
+            TransitionSet transitionSet = new TransitionSet();
+            transitionSet.addTransition(transition);
+            Fade fade = new Fade();
+            transitionSet.addTransition(fade);
+            transition = transitionSet;
+        }
+
+        final ArrayMap<String, View> sharedElements = new ArrayMap<String, View>();
+        mapSharedElements(sharedElements);
+        final Bundle sharedElementArgs = new Bundle();
+        captureTerminalSharedElementState(sharedElements, sharedElementArgs);
+
+        final ArrayList<View> transitioningViews = new ArrayList<View>();
+        mDecor.captureTransitioningViews(transitioningViews);
+        transitioningViews.removeAll(sharedElements.values());
+
+        mSceneTransitionListener.convertToTranslucent();
+        transition = transition.clone();
+        Rect epicenter = calcEpicenter(sharedElements, mActivityOptions.getSharedElementNames());
+        transition.setEpicenterCallback(new FixedEpicenterCallback(epicenter));
+        ExitSceneBack exitScene =
+                new ExitSceneBack(onTransitionEnd, sharedElementArgs, sharedElements.values());
+        exitScene.start(transition);
+        mTransitionManager.beginDelayedTransition(mDecor, transition);
+        setViewVisibility(transitioningViews, View.INVISIBLE);
+    }
+
+    @Override
+    public Bundle startExitTransitionToCallee(Bundle options) {
         if (mContentScene == null) {
             return null;
         }
@@ -4093,16 +4164,15 @@
             return null;
         }
 
+        ActivityOptions activityOptions = new ActivityOptions(options);
         ArrayMap<String, View> sharedElements = findSharedElements(activityOptions);
 
         // Find exiting Views and shared elements
-        final ArrayList<View> transitioningViews = new ArrayList<View>();
-        mDecor.captureTransitioningViews(transitioningViews);
-        transitioningViews.removeAll(sharedElements.values());
+        ArrayList<View> transitioningViews = captureTransitioningViews(sharedElements.values());
 
-        Transition exitTransition = cloneAndSetTransitionTargets(transition,
+        Transition exitTransition = addTransitionTargets(transition,
                 transitioningViews, true);
-        Transition sharedElementTransition = cloneAndSetTransitionTargets(transition,
+        Transition sharedElementTransition = addTransitionTargets(transition,
                 transitioningViews, false);
 
         // transitionSet is the total exit transition, including hero animation.
@@ -4110,8 +4180,12 @@
         transitionSet.addTransition(exitTransition);
         transitionSet.addTransition(sharedElementTransition);
 
+        Rect epicenter = calcEpicenter(sharedElements, activityOptions.getSharedElementNames());
+        FixedEpicenterCallback epicenterCallback = new FixedEpicenterCallback(epicenter);
+        transitionSet.setEpicenterCallback(epicenterCallback);
+
         updateExitActivityOptions(activityOptions, sharedElements,
-                sharedElementTransition, exitTransition);
+                sharedElementTransition, transitioningViews, exitTransition, epicenterCallback);
 
         // Start exiting the Views that need to exit
         TransitionManager.beginDelayedTransition(mDecor, transitionSet);
@@ -4120,6 +4194,14 @@
         return activityOptions.toBundle();
     }
 
+    private ArrayList<View> captureTransitioningViews(Collection<View> sharedElements) {
+        mTransitioningViews = new ArrayList<View>();
+        mDecor.captureTransitioningViews(mTransitioningViews);
+        ArrayList<View> transitioningViews = (ArrayList<View>) mTransitioningViews.clone();
+        transitioningViews.removeAll(sharedElements);
+        return transitioningViews;
+    }
+
     private ArrayMap<String, View> findSharedElements(ActivityOptions activityOptions) {
         ArrayMap<String, View> sharedElements = new ArrayMap<String, View>();
         mDecor.findSharedElements(sharedElements);
@@ -4136,9 +4218,18 @@
         return sharedElements;
     }
 
+    private static void runOnUiThread(Handler handler, Runnable runnable) {
+        if (handler.getLooper() != Looper.myLooper()) {
+            handler.post(runnable);
+        } else {
+            runnable.run();
+        }
+    }
+
     private void updateExitActivityOptions(ActivityOptions activityOptions,
             final Map<String, View> sharedElements, Transition sharedElementTransition,
-            Transition exitTransition) {
+            final ArrayList<View> transitioningViews, Transition exitTransition,
+            final Transition.EpicenterCallback epicenterCallback) {
 
         // Schedule capturing of the shared element state
         final Bundle sharedElementArgs = new Bundle();
@@ -4146,30 +4237,88 @@
 
         ActivityOptions.SharedElementSource sharedElementSource
                 = new ActivityOptions.SharedElementSource() {
+            private Handler mHandler = new Handler();
+
             @Override
             public Bundle getSharedElementExitState() {
                 return sharedElementArgs;
             }
 
             @Override
-            public void acceptedSharedElements(ArrayList<String> sharedElementNames) {
+            public void acceptedSharedElements(final ArrayList<String> sharedElementNames) {
                 if (sharedElementNames.size() == sharedElements.size()) {
                     return; // They were all accepted
                 }
-                Transition transition = mTransitionManager.getExitTransition(mContentScene).clone();
-                TransitionManager.beginDelayedTransition(mDecor, transition);
-                for (String name: sharedElements.keySet()) {
-                    if (!sharedElementNames.contains(name)) {
-                        sharedElements.get(name).setVisibility(View.INVISIBLE);
+                runOnUiThread(mHandler, new Runnable() {
+                    @Override
+                    public void run() {
+                        Transition transition = mTransitionManager.getExitTransition(mContentScene);
+                        transition = transition.clone();
+                        transition.setEpicenterCallback(epicenterCallback);
+                        TransitionManager.beginDelayedTransition(mDecor, transition);
+                        for (String name : sharedElements.keySet()) {
+                            if (!sharedElementNames.contains(name)) {
+                                sharedElements.get(name).setVisibility(View.INVISIBLE);
+                            }
+                        }
+                        sharedElements.keySet().retainAll(sharedElementNames);
                     }
-                }
-                sharedElements.keySet().retainAll(sharedElementNames);
+                });
             }
 
             @Override
             public void hideSharedElements() {
                 if (sharedElements != null) {
-                    setViewVisibility(sharedElements.values(), View.INVISIBLE);
+                    runOnUiThread(mHandler, new Runnable() {
+                        @Override
+                        public void run() {
+                            setViewVisibility(sharedElements.values(), View.INVISIBLE);
+                        }
+                    });
+                }
+            }
+
+            @Override
+            public void restore(final Bundle sharedElementState) {
+                runOnUiThread(mHandler, new Runnable() {
+                    @Override
+                    public void run() {
+                        mTransitioningViews = null;
+                        Transition transition = mTransitionManager.getExitTransition(mContentScene);
+                        transition = transition.clone();
+                        transition.setEpicenterCallback(epicenterCallback);
+                        setSharedElementState(sharedElements, sharedElementState);
+                        setViewVisibility(sharedElements.values(), View.VISIBLE);
+                        if (mSceneTransitionListener != null) {
+                            mSceneTransitionListener.sharedElementStart(transition);
+                            mDecor.getViewTreeObserver().addOnPreDrawListener(
+                                    new ViewTreeObserver.OnPreDrawListener() {
+                                        @Override
+                                        public boolean onPreDraw() {
+                                            mDecor.getViewTreeObserver().removeOnPreDrawListener(this);
+                                            mSceneTransitionListener.sharedElementEnd();
+                                            return true;
+                                        }
+                                    });
+                        }
+                        TransitionManager.beginDelayedTransition(mDecor, transition);
+                        setViewVisibility(transitioningViews, View.VISIBLE);
+                        for (View sharedElement: sharedElements.values()) {
+                            sharedElement.requestLayout();
+                        }
+                    }
+                });
+            }
+
+            @Override
+            public void prepareForRestore() {
+                if (mTransitioningViews != null) {
+                    runOnUiThread(mHandler, new Runnable() {
+                        @Override
+                        public void run() {
+                            setViewVisibility(mTransitioningViews, View.INVISIBLE);
+                        }
+                    });
                 }
             }
         };
@@ -4194,22 +4343,18 @@
         });
     }
 
-    private static Transition cloneAndSetTransitionTargets(Transition transition,
-            List<View> views, boolean add) {
-        transition = transition.clone();
-        if (!transition.getTargetIds().isEmpty() || !transition.getTargets().isEmpty()) {
-            TransitionSet set = new TransitionSet();
-            set.addTransition(transition);
-            transition = set;
-        }
+    private static Transition addTransitionTargets(Transition transition, Collection<View> views,
+            boolean add) {
+        TransitionSet set = new TransitionSet();
+        set.addTransition(transition.clone());
         for (View view: views) {
             if (add) {
-                transition.addTarget(view);
+                set.addTarget(view);
             } else {
-                transition.excludeTarget(view, true);
+                set.excludeTarget(view, true);
             }
         }
-        return transition;
+        return set;
     }
 
     private static void setViewVisibility(Collection<View> views, int visibility) {
@@ -4218,6 +4363,14 @@
         }
     }
 
+    private static void setSharedElementState(Map<String, View> sharedElements,
+            Bundle sharedElementState) {
+        int[] tempLoc = new int[2];
+        for (Map.Entry<String, View> entry: sharedElements.entrySet()) {
+            setSharedElementState(entry.getValue(), entry.getKey(), sharedElementState, tempLoc);
+        }
+    }
+
     /**
      * Sets the captured values from a previous
      * {@link #captureSharedElementState(android.view.View, String, android.os.Bundle, int[])}
@@ -4234,23 +4387,27 @@
             return;
         }
 
-        int x = sharedElementBundle.getInt(KEY_SCREEN_X);
-        view.getLocationOnScreen(tempLoc);
-        int offsetX = x - tempLoc[0];
-        view.offsetLeftAndRight(offsetX);
-
-        int width = sharedElementBundle.getInt(KEY_WIDTH);
-        view.setRight(view.getLeft() + width);
-
-        int y = sharedElementBundle.getInt(KEY_SCREEN_Y);
-        int offsetY = y - tempLoc[1];
-        view.offsetTopAndBottom(offsetY);
-
-        int height = sharedElementBundle.getInt(KEY_HEIGHT);
-        view.setBottom(view.getTop() + height);
-
         float z = sharedElementBundle.getFloat(KEY_TRANSLATION_Z);
         view.setTranslationZ(z);
+
+        int x = sharedElementBundle.getInt(KEY_SCREEN_X);
+        int y = sharedElementBundle.getInt(KEY_SCREEN_Y);
+        int width = sharedElementBundle.getInt(KEY_WIDTH);
+        int height = sharedElementBundle.getInt(KEY_HEIGHT);
+
+        int widthSpec = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
+        int heightSpec = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY);
+        view.measure(widthSpec, heightSpec);
+
+        ViewGroup parent = (ViewGroup) view.getParent();
+        parent.getLocationOnScreen(tempLoc);
+        int left = x - tempLoc[0];
+        int top = y - tempLoc[1];
+        int right = left + width;
+        int bottom = top + height;
+        view.layout(left, top, right, bottom);
+
+        view.requestLayout();
     }
 
     /**
@@ -4284,6 +4441,124 @@
         transitionArgs.putBundle(name, sharedElementBundle);
     }
 
+    private void mapSharedElements(ArrayMap<String, View> sharedElements) {
+        ArrayList<String> sharedElementNames = mActivityOptions.getSharedElementNames();
+        if (sharedElementNames != null) {
+            mDecor.findSharedElements(sharedElements);
+            if (mSharedElementsMap != null) {
+                for (Map.Entry<String, String> entry : mSharedElementsMap.entrySet()) {
+                    View sharedElement = sharedElements.remove(entry.getValue());
+                    if (sharedElement != null) {
+                        sharedElements.put(entry.getKey(), sharedElement);
+                    }
+                }
+            }
+            sharedElements.keySet().retainAll(sharedElementNames);
+        }
+    }
+
+    private static Rect calcEpicenter(ArrayMap<String, View> sharedElements,
+            ArrayList<String> sharedElementNames) {
+        if (sharedElementNames != null) {
+            for (String name: sharedElementNames) {
+                if (name.startsWith("android:")) {
+                    return null;
+                }
+                View view = sharedElements.get(name);
+                if (view != null) {
+                    int[] loc = new int[2];
+                    view.getLocationOnScreen(loc);
+                    int left = loc[0] + Math.round(view.getTranslationX());
+                    int top = loc[1] + Math.round(view.getTranslationY());
+                    int right = left + view.getWidth();
+                    int bottom = top + view.getHeight();
+                    return new Rect(left, top, right, bottom);
+                }
+            }
+        }
+        return null;
+    }
+
+    private class ExitSceneBack extends Transition.TransitionListenerAdapter implements
+            Animator.AnimatorListener {
+        private boolean mExitTransitionComplete;
+        private boolean mBackgroundFadeComplete;
+        private boolean mOnCompleteExecuted;
+        private boolean mSharedElementTransitioned;
+        private Runnable mOnComplete;
+        private Bundle mSharedElementArgs;
+        private Collection<View> mSharedElements;
+
+        public ExitSceneBack(Runnable onComplete, Bundle sharedElementArgs,
+                Collection<View> sharedElements) {
+            mOnComplete = onComplete;
+            mSharedElementArgs = sharedElementArgs;
+            mSharedElements = sharedElements;
+        }
+
+        public void start(Transition exitTransition) {
+            if (mActivityOptions != null) {
+                mActivityOptions.dispatchPrepareRestore();
+            }
+            exitTransition.addListener(this);
+            Drawable background = mDecor.getBackground();
+            if (background != null) {
+                ObjectAnimator animator = ObjectAnimator.ofInt(background, "alpha", 0);
+                animator.addListener(this);
+                animator.start();
+            } else {
+                mBackgroundFadeComplete = true;
+                startCalledActivityEnter();
+            }
+        }
+
+        @Override
+        public void onTransitionEnd(Transition transition) {
+            transition.removeListener(this);
+            mExitTransitionComplete = true;
+            notifyComplete();
+            if (!mAllowExitOverlap) {
+                startCalledActivityEnter();
+            }
+        }
+
+        private void notifyComplete() {
+            if (mExitTransitionComplete && mBackgroundFadeComplete
+                    && mSharedElementTransitioned && !mOnCompleteExecuted) {
+                mOnComplete.run();
+                mSceneTransitionListener.nullPendingTransition();
+                mOnCompleteExecuted = true;
+            }
+        }
+
+        @Override
+        public void onAnimationStart(Animator animation) {
+        }
+
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            mBackgroundFadeComplete = true;
+            if (mAllowExitOverlap) {
+                startCalledActivityEnter();
+            }
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animation) {
+        }
+
+        @Override
+        public void onAnimationRepeat(Animator animation) {
+        }
+
+        private void startCalledActivityEnter() {
+            mActivityOptions.dispatchRestore(mSharedElementArgs);
+            setViewVisibility(mSharedElements, View.INVISIBLE);
+            mSharedElementTransitioned = true;
+            notifyComplete();
+        }
+    }
+
     /**
      * Provides code for handling the Activity transition entering scene.
      * When the first scene is laid out (onPreDraw), it makes views invisible.
@@ -4304,6 +4579,7 @@
         private boolean mEnterTransitionStarted;
         private ArrayMap<String, View> mSharedElementTargets = new ArrayMap<String, View>();
         private ArrayList<View> mEnteringViews = new ArrayList<View>();
+        private Transition.EpicenterCallback mEpicenterCallback;
 
         public EnterScene() {
             mSceneTransitionListener.nullPendingTransition();
@@ -4322,33 +4598,25 @@
             if (!mEnterTransitionStarted && mSceneTransitionListener != null) {
                 mEnterTransitionStarted = true;
                 mDecor.captureTransitioningViews(mEnteringViews);
-                ArrayList<String> sharedElementNames = mActivityOptions.getSharedElementNames();
-                if (sharedElementNames != null) {
-                    mDecor.findSharedElements(mSharedElementTargets);
-                    if (mSharedElementsMap != null) {
-                        for (Map.Entry<String, String> entry : mSharedElementsMap.entrySet()) {
-                            View sharedElement = mSharedElementTargets.remove(entry.getValue());
-                            if (sharedElement != null) {
-                                mSharedElementTargets.put(entry.getKey(), sharedElement);
-                            }
-                        }
-                    }
-                    mSharedElementTargets.keySet().retainAll(sharedElementNames);
-                    mEnteringViews.removeAll(mSharedElementTargets.values());
-                }
+                mapSharedElements(mSharedElementTargets);
+                mEnteringViews.removeAll(mSharedElementTargets.values());
+                Rect epicenter = calcEpicenter(mSharedElementTargets,
+                        mActivityOptions.getSharedElementNames());
+                mEpicenterCallback = new FixedEpicenterCallback(epicenter);
 
                 setViewVisibility(mEnteringViews, View.INVISIBLE);
                 setViewVisibility(mSharedElementTargets.values(), View.INVISIBLE);
-                if (mTriggerEarly) {
+                if (mAllowEnterOverlap) {
                     beginEnterScene();
                 }
                 observer.addOnPreDrawListener(this);
+                return false;
             } else {
                 mHandler.postDelayed(this, MAX_TRANSITION_START_WAIT);
                 mActivityOptions.dispatchSceneTransitionStarted(this,
                         new ArrayList<String>(mSharedElementTargets.keySet()));
+                return !mSharedElementReadyReceived;
             }
-            return true;
         }
 
         public void start() {
@@ -4362,43 +4630,48 @@
         }
 
         @Override
-        public void sharedElementTransitionComplete(Bundle transitionArgs) {
+        public void sharedElementTransitionComplete(final Bundle transitionArgs) {
             if (!mSharedElementReadyReceived) {
                 mSharedElementReadyReceived = true;
                 mHandler.removeCallbacks(this);
                 mHandler.postDelayed(this, MAX_TRANSITION_FINISH_WAIT);
                 if (!mSharedElementTargets.isEmpty()) {
-                    Transition transition = getTransitionManager().getEnterTransition(
-                            mContentScene);
-                    if (transition == null) {
-                        transition = TransitionManager.getDefaultTransition();
-                    }
-                    transition = transition.clone();
-                    if (transitionArgs == null) {
-                        TransitionManager.beginDelayedTransition(mDecor, transition);
-                        setViewVisibility(mSharedElementTargets.values(), View.VISIBLE);
-                    } else {
-                        int[] tempLoc = new int[2];
-                        for (Map.Entry<String, View> entry: mSharedElementTargets.entrySet()) {
-                            setSharedElementState(entry.getValue(), entry.getKey(), transitionArgs,
-                                    tempLoc);
+                    runOnUiThread(mHandler, new Runnable() {
+                        @Override
+                        public void run() {
+                            Transition transition = getTransitionManager().getEnterTransition(
+                                    mContentScene);
+                            if (transition == null) {
+                                transition = TransitionManager.getDefaultTransition();
+                            }
+                            transition = addTransitionTargets(transition,
+                                    mSharedElementTargets.values(),
+                                    true);
+                            transition.setEpicenterCallback(mEpicenterCallback);
+                            if (transitionArgs == null) {
+                                TransitionManager.beginDelayedTransition(mDecor, transition);
+                                setViewVisibility(mSharedElementTargets.values(), View.VISIBLE);
+                            } else {
+                                mSceneTransitionListener.sharedElementStart(transition);
+                                setSharedElementState(mSharedElementTargets, transitionArgs);
+                                setViewVisibility(mSharedElementTargets.values(), View.VISIBLE);
+                                mDecor.getViewTreeObserver().addOnPreDrawListener(
+                                        new ViewTreeObserver.OnPreDrawListener() {
+                                            @Override
+                                            public boolean onPreDraw() {
+                                                mDecor.getViewTreeObserver()
+                                                        .removeOnPreDrawListener(this);
+                                                mSceneTransitionListener.sharedElementEnd();
+                                                mActivityOptions.dispatchSharedElementsReady();
+                                                return true;
+                                            }
+                                        });
+                                TransitionManager.beginDelayedTransition(mDecor, transition);
+                            }
                         }
-                        setViewVisibility(mSharedElementTargets.values(), View.VISIBLE);
-                        mSceneTransitionListener.sharedElementStart(transition);
-                        mDecor.getViewTreeObserver().addOnPreDrawListener(
-                                new ViewTreeObserver.OnPreDrawListener() {
-                                    @Override
-                                    public boolean onPreDraw() {
-                                        mDecor.getViewTreeObserver().removeOnPreDrawListener(this);
-                                        mSceneTransitionListener.sharedElementEnd();
-                                        mActivityOptions.dispatchSharedElementsReady();
-                                        return true;
-                                    }
-                                });
-                        TransitionManager.beginDelayedTransition(mDecor, transition);
-                    }
+                    });
                 }
-                if (mTriggerEarly) {
+                if (mAllowEnterOverlap) {
                     fadeInBackground();
                 }
             }
@@ -4423,9 +4696,14 @@
             mAllDone = true;
             sharedElementTransitionComplete(null);
             mHandler.removeCallbacks(this);
-            if (!mTriggerEarly) {
-                beginEnterScene();
-                fadeInBackground();
+            if (!mAllowEnterOverlap) {
+                runOnUiThread(mHandler, new Runnable() {
+                    @Override
+                    public void run() {
+                        beginEnterScene();
+                        fadeInBackground();
+                    }
+                });
             }
         }
 
@@ -4449,10 +4727,25 @@
         private void beginEnterScene() {
             Transition transition = getTransitionManager().getEnterTransition(mContentScene);
             if (transition == null) {
-                transition = TransitionManager.getDefaultTransition().clone();
+                transition = TransitionManager.getDefaultTransition();
             }
+            transition = addTransitionTargets(transition, mEnteringViews, true);
+            transition.setEpicenterCallback(mEpicenterCallback);
             TransitionManager.beginDelayedTransition(mDecor, transition);
             setViewVisibility(mEnteringViews, View.VISIBLE);
         }
     }
+
+    private static class FixedEpicenterCallback extends Transition.EpicenterCallback {
+        private Rect mEpicenter;
+
+        public FixedEpicenterCallback(Rect epicenter) {
+            mEpicenter = epicenter;
+        }
+
+        @Override
+        public Rect getEpicenter(Transition transition) {
+            return mEpicenter;
+        }
+    };
 }
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index ededbb2..77e2462 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -96,6 +96,8 @@
 import android.view.animation.AnimationUtils;
 
 import com.android.internal.R;
+import com.android.internal.policy.IKeyguardService;
+import com.android.internal.policy.IKeyguardServiceConstants;
 import com.android.internal.policy.PolicyManager;
 import com.android.internal.policy.impl.keyguard.KeyguardServiceDelegate;
 import com.android.internal.statusbar.IStatusBarService;
@@ -174,6 +176,8 @@
      * Keyguard stuff
      */
     private WindowState mKeyguardScrim;
+    private boolean mKeyguardHidden;
+    private boolean mKeyguardDrawn;
 
     /* Table of Application Launch keys.  Maps from key codes to intent categories.
      *
@@ -248,7 +252,6 @@
     int[] mNavigationBarHeightForRotation = new int[4];
     int[] mNavigationBarWidthForRotation = new int[4];
 
-    WindowState mKeyguard = null;
     KeyguardServiceDelegate mKeyguardDelegate;
     GlobalActions mGlobalActions;
     volatile boolean mPowerKeyHandled; // accessed from input reader and handler thread
@@ -986,7 +989,7 @@
         initializeHdmiState();
 
         // Match current screen state.
-        if (mPowerManager.isScreenOn()) {
+        if (mPowerManager.isInteractive()) {
             screenTurningOn(null);
         } else {
             screenTurnedOff(WindowManagerPolicy.OFF_BECAUSE_OF_USER);
@@ -1311,7 +1314,6 @@
             case TYPE_BOOT_PROGRESS:
             case TYPE_DISPLAY_OVERLAY:
             case TYPE_HIDDEN_NAV_CONSUMER:
-            case TYPE_KEYGUARD:
             case TYPE_KEYGUARD_SCRIM:
             case TYPE_KEYGUARD_DIALOG:
             case TYPE_MAGNIFICATION_OVERLAY:
@@ -1348,6 +1350,22 @@
                         | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
                 attrs.flags &= ~WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
                 break;
+            case TYPE_STATUS_BAR:
+
+                // If the Keyguard is in a hidden state (occluded by another window), we force to
+                // remove the wallpaper and keyguard flag so that any change in-flight after setting
+                // the keyguard as occluded wouldn't set these flags again.
+                // See {@link #processKeyguardSetHiddenResultLw}.
+                if (mKeyguardHidden) {
+                    attrs.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+                    attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
+                }
+                break;
+        }
+
+        if (attrs.type != TYPE_STATUS_BAR) {
+            // The status bar is the only window allowed to exhibit keyguard behavior.
+            attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
         }
     }
     
@@ -1434,54 +1452,50 @@
         case TYPE_KEYGUARD_SCRIM:
             // the safety window that shows behind keyguard while keyguard is starting
             return 12;
-        case TYPE_KEYGUARD:
-            // the keyguard; nothing on top of these can take focus, since they are
-            // responsible for power management when displayed.
-            return 13;
-        case TYPE_KEYGUARD_DIALOG:
-            return 14;
         case TYPE_STATUS_BAR_SUB_PANEL:
-            return 15;
+            return 13;
         case TYPE_STATUS_BAR:
-            return 16;
+            return 14;
         case TYPE_STATUS_BAR_PANEL:
-            return 17;
+            return 15;
+        case TYPE_KEYGUARD_DIALOG:
+            return 16;
         case TYPE_VOLUME_OVERLAY:
             // the on-screen volume indicator and controller shown when the user
             // changes the device volume
-            return 18;
+            return 17;
         case TYPE_SYSTEM_OVERLAY:
             // the on-screen volume indicator and controller shown when the user
             // changes the device volume
-            return 19;
+            return 18;
         case TYPE_NAVIGATION_BAR:
             // the navigation bar, if available, shows atop most things
-            return 20;
+            return 19;
         case TYPE_NAVIGATION_BAR_PANEL:
             // some panels (e.g. search) need to show on top of the navigation bar
-            return 21;
+            return 20;
         case TYPE_SYSTEM_ERROR:
             // system-level error dialogs
-            return 22;
+            return 21;
         case TYPE_MAGNIFICATION_OVERLAY:
             // used to highlight the magnified portion of a display
-            return 23;
+            return 22;
         case TYPE_DISPLAY_OVERLAY:
             // used to simulate secondary display devices
-            return 24;
+            return 23;
         case TYPE_DRAG:
             // the drag layer: input for drag-and-drop is associated with this window,
             // which sits above all other focusable windows
-            return 25;
+            return 24;
         case TYPE_SECURE_SYSTEM_OVERLAY:
-            return 26;
+            return 25;
         case TYPE_BOOT_PROGRESS:
-            return 27;
+            return 26;
         case TYPE_POINTER:
             // the (mouse) pointer layer
-            return 28;
+            return 27;
         case TYPE_HIDDEN_NAV_CONSUMER:
-            return 29;
+            return 28;
         }
         Log.e(TAG, "Unknown window type: " + type);
         return 2;
@@ -1551,7 +1565,7 @@
 
     @Override
     public boolean doesForceHide(WindowState win, WindowManager.LayoutParams attrs) {
-        return attrs.type == WindowManager.LayoutParams.TYPE_KEYGUARD;
+        return (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
     }
 
     @Override
@@ -1562,7 +1576,6 @@
             case TYPE_WALLPAPER:
             case TYPE_DREAM:
             case TYPE_UNIVERSE_BACKGROUND:
-            case TYPE_KEYGUARD:
             case TYPE_KEYGUARD_SCRIM:
                 return false;
             default:
@@ -1761,12 +1774,6 @@
                         android.Manifest.permission.STATUS_BAR_SERVICE,
                         "PhoneWindowManager");
                 break;
-            case TYPE_KEYGUARD:
-                if (mKeyguard != null) {
-                    return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON;
-                }
-                mKeyguard = win;
-                break;
             case TYPE_KEYGUARD_SCRIM:
                 if (mKeyguardScrim != null) {
                     return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON;
@@ -1783,9 +1790,6 @@
         if (mStatusBar == win) {
             mStatusBar = null;
             mStatusBarController.setWindow(null);
-        } else if (mKeyguard == win) {
-            Log.v(TAG, "Removing keyguard window (Did it crash?)");
-            mKeyguard = null;
             mKeyguardDelegate.showScrim();
         } else if (mKeyguardScrim == win) {
             Log.v(TAG, "Removing keyguard scrim");
@@ -1804,12 +1808,13 @@
         if (PRINT_ANIM) Log.i(TAG, "selectAnimation in " + win
               + ": transit=" + transit);
         if (win == mStatusBar) {
+            boolean isKeyguard = (win.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
             if (transit == TRANSIT_EXIT
                     || transit == TRANSIT_HIDE) {
-                return R.anim.dock_top_exit;
+                return isKeyguard ? -1 : R.anim.dock_top_exit;
             } else if (transit == TRANSIT_ENTER
                     || transit == TRANSIT_SHOW) {
-                return R.anim.dock_top_enter;
+                return isKeyguard ? -1 : R.anim.dock_top_enter;
             }
         } else if (win == mNavigationBar) {
             // This can be on either the bottom or the right.
@@ -2030,9 +2035,9 @@
             WindowManager.LayoutParams attrs = win != null ? win.getAttrs() : null;
             if (attrs != null) {
                 final int type = attrs.type;
-                if (type == WindowManager.LayoutParams.TYPE_KEYGUARD
-                        || type == WindowManager.LayoutParams.TYPE_KEYGUARD_SCRIM
-                        || type == WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG) {
+                if (type == WindowManager.LayoutParams.TYPE_KEYGUARD_SCRIM
+                        || type == WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG
+                        || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
                     // the "app" is keyguard, so give it the key
                     return 0;
                 }
@@ -2357,7 +2362,7 @@
     }
 
     private boolean interceptFallback(WindowState win, KeyEvent fallbackEvent, int policyFlags) {
-        int actions = interceptKeyBeforeQueueing(fallbackEvent, policyFlags, true);
+        int actions = interceptKeyBeforeQueueing(fallbackEvent, policyFlags);
         if ((actions & ACTION_PASS_TO_USER) != 0) {
             long delayMillis = interceptKeyBeforeDispatching(
                     win, fallbackEvent, policyFlags);
@@ -2461,7 +2466,7 @@
      * given the situation with the keyguard.
      */
     void launchHomeFromHotKey() {
-        if (mKeyguardDelegate != null && mKeyguardDelegate.isShowingAndNotHidden()) {
+        if (mKeyguardDelegate != null && mKeyguardDelegate.isShowingAndNotOccluded()) {
             // don't launch home if keyguard showing
         } else if (!mHideLockScreen && mKeyguardDelegate.isInputRestricted()) {
             // when in keyguard restricted mode, must first verify unlock
@@ -3083,9 +3088,8 @@
                                 + mOverscanScreenHeight;
                     } else if (canHideNavigationBar()
                             && (sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
-                            && (attrs.type == WindowManager.LayoutParams.TYPE_KEYGUARD || (
-                                attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
-                             && attrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW))) {
+                            && attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
+                            && attrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW) {
                         // Asking for layout as if the nav bar is hidden, lets the
                         // application extend into the unrestricted overscan screen area.  We
                         // only do this for application windows to ensure no window that
@@ -3392,16 +3396,19 @@
             mForcingShowNavBar = true;
             mForcingShowNavBarLayer = win.getSurfaceLayer();
         }
+        if (attrs.type == TYPE_STATUS_BAR && (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
+            mForceStatusBarFromKeyguard = true;
+        }
         if (mTopFullscreenOpaqueWindowState == null &&
                 win.isVisibleOrBehindKeyguardLw() && !win.isGoneForLayoutLw()) {
             if ((fl & FLAG_FORCE_NOT_FULLSCREEN) != 0) {
-                if (attrs.type == TYPE_KEYGUARD) {
+                if ((attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
                     mForceStatusBarFromKeyguard = true;
                 } else {
                     mForceStatusBar = true;
                 }
             }
-            if (attrs.type == TYPE_KEYGUARD) {
+            if ((attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
                 mShowingLockscreen = true;
             }
             boolean appWindow = attrs.type >= FIRST_APPLICATION_WINDOW
@@ -3417,8 +3424,9 @@
             }
 
             final boolean showWhenLocked = (fl & FLAG_SHOW_WHEN_LOCKED) != 0;
+            final boolean dismissKeyguard = (fl & FLAG_DISMISS_KEYGUARD) != 0;
             if (appWindow) {
-                if (showWhenLocked) {
+                if (showWhenLocked || (dismissKeyguard && !isKeyguardSecure())) {
                     mAppsToBeHidden.remove(win.getAppToken());
                 } else {
                     mAppsToBeHidden.add(win.getAppToken());
@@ -3435,8 +3443,7 @@
                             mHideLockScreen = true;
                             mForceStatusBarFromKeyguard = false;
                         }
-                        if ((fl & FLAG_DISMISS_KEYGUARD) != 0
-                                && mDismissKeyguard == DISMISS_KEYGUARD_NONE) {
+                        if (dismissKeyguard && mDismissKeyguard == DISMISS_KEYGUARD_NONE) {
                             if (DEBUG_LAYOUT) Slog.v(TAG,
                                     "Setting mDismissKeyguard true by win " + win);
                             mDismissKeyguard = mWinDismissingKeyguard == win ?
@@ -3531,11 +3538,12 @@
 
         // Hide the key guard if a visible window explicitly specifies that it wants to be
         // displayed when the screen is locked.
-        if (mKeyguard != null) {
+        if (mKeyguardDelegate != null && mStatusBar != null) {
             if (localLOGV) Slog.v(TAG, "finishPostLayoutPolicyLw: mHideKeyguard="
                     + mHideLockScreen);
             if (mDismissKeyguard != DISMISS_KEYGUARD_NONE && !isKeyguardSecure()) {
-                if (mKeyguard.hideLw(true)) {
+                mKeyguardHidden = true;
+                if (processKeyguardSetHiddenResultLw(mKeyguardDelegate.setOccluded(true))) {
                     changes |= FINISH_LAYOUT_REDO_LAYOUT
                             | FINISH_LAYOUT_REDO_CONFIG
                             | FINISH_LAYOUT_REDO_WALLPAPER;
@@ -3549,24 +3557,22 @@
                     });
                 }
             } else if (mHideLockScreen) {
-                if (mKeyguard.hideLw(true)) {
+                mKeyguardHidden = true;
+                if (processKeyguardSetHiddenResultLw(mKeyguardDelegate.setOccluded(true))) {
                     changes |= FINISH_LAYOUT_REDO_LAYOUT
                             | FINISH_LAYOUT_REDO_CONFIG
                             | FINISH_LAYOUT_REDO_WALLPAPER;
                 }
-                if (!mShowingDream) {
-                    mKeyguardDelegate.setHidden(true);
-                }
             } else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) {
                 // This is the case of keyguard isSecure() and not mHideLockScreen.
                 if (mDismissKeyguard == DISMISS_KEYGUARD_START) {
                     // Only launch the next keyguard unlock window once per window.
-                    if (mKeyguard.showLw(true)) {
+                    mKeyguardHidden = false;
+                    if (processKeyguardSetHiddenResultLw(mKeyguardDelegate.setOccluded(false))) {
                         changes |= FINISH_LAYOUT_REDO_LAYOUT
                                 | FINISH_LAYOUT_REDO_CONFIG
                                 | FINISH_LAYOUT_REDO_WALLPAPER;
                     }
-                    mKeyguardDelegate.setHidden(false);
                     mHandler.post(new Runnable() {
                         @Override
                         public void run() {
@@ -3576,12 +3582,12 @@
                 }
             } else {
                 mWinDismissingKeyguard = null;
-                if (mKeyguard.showLw(true)) {
+                mKeyguardHidden = false;
+                if (processKeyguardSetHiddenResultLw(mKeyguardDelegate.setOccluded(false))) {
                     changes |= FINISH_LAYOUT_REDO_LAYOUT
                             | FINISH_LAYOUT_REDO_CONFIG
                             | FINISH_LAYOUT_REDO_WALLPAPER;
                 }
-                mKeyguardDelegate.setHidden(false);
             }
         }
 
@@ -3596,9 +3602,39 @@
         return changes;
     }
 
+    /**
+     * Processes the result code of {@link IKeyguardService#setOccluded}. This is needed because we
+     * immediately need to put the wallpaper directly behind the Keyguard when a window with flag
+     * {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} gets dismissed. If we
+     * would wait for Keyguard to change the flags, that would be running asynchronously and thus be
+     * too late so the user might see the window behind.
+     *
+     * @param setHiddenResult The result code from {@link IKeyguardService#setOccluded}.
+     * @return Whether the flags have changed and we have to redo the layout.
+     */
+    private boolean processKeyguardSetHiddenResultLw(int setHiddenResult) {
+        if (setHiddenResult
+                == IKeyguardServiceConstants.KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_SET_FLAGS) {
+            mStatusBar.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD;
+            mStatusBar.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
+            return true;
+        } else if (setHiddenResult
+                == IKeyguardServiceConstants.KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_UNSET_FLAGS) {
+            mStatusBar.getAttrs().privateFlags &= ~PRIVATE_FLAG_KEYGUARD;
+            mStatusBar.getAttrs().flags &= ~FLAG_SHOW_WALLPAPER;
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private boolean isStatusBarKeyguard() {
+        return mStatusBar != null
+                && (mStatusBar.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
+    }
+
     public boolean allowAppAnimationsLw() {
-        if (mKeyguard != null && mKeyguard.isVisibleLw() && !mKeyguard.isAnimatingLw()
-                || mShowingDream) {
+        if (isStatusBarKeyguard() || mShowingDream) {
             // If keyguard or dreams is currently visible, no reason to animate behind it.
             return false;
         }
@@ -3801,12 +3837,13 @@
 
     /** {@inheritDoc} */
     @Override
-    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn) {
+    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
         if (!mSystemBooted) {
             // If we have not yet booted, don't let key events do anything.
             return 0;
         }
 
+        final boolean interactive = (policyFlags & FLAG_INTERACTIVE) != 0;
         final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
         final boolean canceled = event.isCanceled();
         final int keyCode = event.getKeyCode();
@@ -3818,8 +3855,8 @@
         // This will prevent any keys other than the power button from waking the screen
         // when the keyguard is hidden by another activity.
         final boolean keyguardActive = (mKeyguardDelegate == null ? false :
-                                            (isScreenOn ?
-                                                mKeyguardDelegate.isShowingAndNotHidden() :
+                                            (interactive ?
+                                                mKeyguardDelegate.isShowingAndNotOccluded() :
                                                 mKeyguardDelegate.isShowing()));
 
         if (keyCode == KeyEvent.KEYCODE_POWER
@@ -3830,7 +3867,7 @@
 
         if (DEBUG_INPUT) {
             Log.d(TAG, "interceptKeyTq keycode=" + keyCode
-                    + " screenIsOn=" + isScreenOn + " keyguardActive=" + keyguardActive
+                    + " interactive=" + interactive + " keyguardActive=" + keyguardActive
                     + " policyFlags=" + Integer.toHexString(policyFlags));
         }
 
@@ -3839,18 +3876,11 @@
             performHapticFeedbackLw(null, HapticFeedbackConstants.VIRTUAL_KEY, false);
         }
 
-        // Basic policy based on screen state and keyguard.
-        // FIXME: This policy isn't quite correct.  We shouldn't care whether the screen
-        //        is on or off, really.  We should care about whether the device is in an
-        //        interactive state or is in suspend pretending to be "off".
-        //        The primary screen might be turned off due to proximity sensor or
-        //        because we are presenting media on an auxiliary screen or remotely controlling
-        //        the device some other way (which is why we have an exemption here for injected
-        //        events).
+        // Basic policy based on interactive state.
         int result;
         boolean isWakeKey = (policyFlags & (WindowManagerPolicy.FLAG_WAKE
                 | WindowManagerPolicy.FLAG_WAKE_DROPPED)) != 0;
-        if (isScreenOn || (isInjected && !isWakeKey)) {
+        if (interactive || (isInjected && !isWakeKey)) {
             // When the screen is on or if the key is injected pass the key to the application.
             result = ACTION_PASS_TO_USER;
         } else {
@@ -3875,7 +3905,7 @@
             case KeyEvent.KEYCODE_VOLUME_MUTE: {
                 if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
                     if (down) {
-                        if (isScreenOn && !mVolumeDownKeyTriggered
+                        if (interactive && !mVolumeDownKeyTriggered
                                 && (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
                             mVolumeDownKeyTriggered = true;
                             mVolumeDownKeyTime = event.getDownTime();
@@ -3889,7 +3919,7 @@
                     }
                 } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
                     if (down) {
-                        if (isScreenOn && !mVolumeUpKeyTriggered
+                        if (interactive && !mVolumeUpKeyTriggered
                                 && (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
                             mVolumeUpKeyTriggered = true;
                             cancelPendingPowerKeyAction();
@@ -3957,7 +3987,7 @@
                             Log.w(TAG, "ITelephony threw RemoteException", ex);
                         }
                     }
-                    interceptPowerKeyDown(!isScreenOn || hungUp);
+                    interceptPowerKeyDown(!interactive || hungUp);
                 } else {
                     if (interceptPowerKeyUp(canceled)) {
                         if ((mEndcallBehavior
@@ -3979,12 +4009,12 @@
             case KeyEvent.KEYCODE_POWER: {
                 result &= ~ACTION_PASS_TO_USER;
                 if (down) {
-                    boolean panic = mImmersiveModeConfirmation.onPowerKeyDown(isScreenOn,
+                    boolean panic = mImmersiveModeConfirmation.onPowerKeyDown(interactive,
                             event.getDownTime(), isImmersiveMode(mLastSystemUiFlags));
                     if (panic) {
                         mHandler.post(mRequestTransientNav);
                     }
-                    if (isScreenOn && !mPowerKeyTriggered
+                    if (interactive && !mPowerKeyTriggered
                             && (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
                         mPowerKeyTriggered = true;
                         mPowerKeyTime = event.getDownTime();
@@ -4001,7 +4031,7 @@
                                 telephonyService.silenceRinger();
                             } else if ((mIncallPowerBehavior
                                     & Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP) != 0
-                                    && telephonyService.isOffhook() && isScreenOn) {
+                                    && telephonyService.isOffhook() && interactive) {
                                 // Otherwise, if "Power button ends call" is enabled,
                                 // the Power button will hang up any current active call.
                                 hungUp = telephonyService.endCall();
@@ -4010,7 +4040,7 @@
                             Log.w(TAG, "ITelephony threw RemoteException", ex);
                         }
                     }
-                    interceptPowerKeyDown(!isScreenOn || hungUp
+                    interceptPowerKeyDown(!interactive || hungUp
                             || mVolumeDownKeyTriggered || mVolumeUpKeyTriggered);
                 } else {
                     mPowerKeyTriggered = false;
@@ -4143,15 +4173,12 @@
 
     /** {@inheritDoc} */
     @Override
-    public int interceptMotionBeforeQueueingWhenScreenOff(long whenNanos, int policyFlags) {
-        int result = 0;
-
-        final boolean isWakeMotion = (policyFlags
-                & (WindowManagerPolicy.FLAG_WAKE | WindowManagerPolicy.FLAG_WAKE_DROPPED)) != 0;
-        if (isWakeMotion) {
-            mPowerManager.wakeUp(whenNanos / 1000000);
-        }
-        return result;
+    public int interceptWakeMotionBeforeQueueing(long whenNanos, int policyFlags) {
+        // We already know this is a wake motion so just wake up.
+        // Note that we would observe policyFlags containing
+        // FLAG_WAKE and FLAG_INTERACTIVE here.
+        mPowerManager.wakeUp(whenNanos / 1000000);
+        return 0;
     }
 
     void dispatchMediaKeyWithWakeLock(KeyEvent event) {
@@ -4328,21 +4355,16 @@
 
     private void waitForKeyguard(final ScreenOnListener screenOnListener) {
         if (mKeyguardDelegate != null) {
-            if (screenOnListener != null) {
-                mKeyguardDelegate.onScreenTurnedOn(new KeyguardServiceDelegate.ShowListener() {
-                    @Override
-                    public void onShown(IBinder windowToken) {
-                        waitForKeyguardWindowDrawn(windowToken, screenOnListener);
-                    }
-                });
-                return;
-            } else {
-                mKeyguardDelegate.onScreenTurnedOn(null);
-            }
+            mKeyguardDelegate.onScreenTurnedOn(new KeyguardServiceDelegate.ShowListener() {
+                @Override
+                public void onShown(IBinder windowToken) {
+                    waitForKeyguardWindowDrawn(windowToken, screenOnListener);
+                }
+            });
         } else {
             Slog.i(TAG, "No keyguard interface!");
+            finishScreenTurningOn(screenOnListener);
         }
-        finishScreenTurningOn(screenOnListener);
     }
 
     private void waitForKeyguardWindowDrawn(IBinder windowToken,
@@ -4355,6 +4377,7 @@
                     public void sendResult(Bundle data) {
                         Slog.i(TAG, "Lock screen displayed!");
                         finishScreenTurningOn(screenOnListener);
+                        setKeyguardDrawn();
                     }
                 })) {
                     return;
@@ -4368,6 +4391,7 @@
 
         Slog.i(TAG, "No lock screen! windowToken=" + windowToken);
         finishScreenTurningOn(screenOnListener);
+        setKeyguardDrawn();
     }
 
     private void finishScreenTurningOn(ScreenOnListener screenOnListener) {
@@ -4411,7 +4435,7 @@
 
     private boolean keyguardIsShowingTq() {
         if (mKeyguardDelegate == null) return false;
-        return mKeyguardDelegate.isShowingAndNotHidden();
+        return mKeyguardDelegate.isShowingAndNotOccluded();
     }
 
 
@@ -4448,6 +4472,23 @@
         }
     }
 
+    private void setKeyguardDrawn() {
+        synchronized (mLock) {
+            mKeyguardDrawn = true;
+        }
+        try {
+            mWindowManager.enableScreenIfNeeded();
+        } catch (RemoteException unhandled) {
+        }
+    }
+
+    @Override
+    public boolean isKeyguardDrawnLw() {
+        synchronized (mLock) {
+            return mKeyguardDrawn;
+        }
+    }
+
     void sendCloseSystemWindows() {
         sendCloseSystemWindows(mContext, null);
     }
@@ -4731,6 +4772,7 @@
         synchronized (mLock) {
             mSystemBooted = true;
         }
+        waitForKeyguard(null);
     }
 
     ProgressDialog mBootMsgDialog = null;
@@ -5055,7 +5097,7 @@
         }
         final boolean hapticsDisabled = Settings.System.getIntForUser(mContext.getContentResolver(),
                 Settings.System.HAPTIC_FEEDBACK_ENABLED, 0, UserHandle.USER_CURRENT) == 0;
-        if (!always && (hapticsDisabled || mKeyguardDelegate.isShowingAndNotHidden())) {
+        if (!always && (hapticsDisabled || mKeyguardDelegate.isShowingAndNotOccluded())) {
             return false;
         }
         long[] pattern = null;
@@ -5106,7 +5148,7 @@
 
     @Override
     public void keepScreenOnStoppedLw() {
-        if (mKeyguardDelegate != null && !mKeyguardDelegate.isShowingAndNotHidden()) {
+        if (mKeyguardDelegate != null && !mKeyguardDelegate.isShowingAndNotOccluded()) {
             mPowerManager.userActivity(SystemClock.uptimeMillis(), false);
         }
     }
@@ -5118,7 +5160,7 @@
         if (win == null) {
             return 0;
         }
-        if (win.getAttrs().type == TYPE_KEYGUARD && mHideLockScreen == true) {
+        if ((win.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0 && mHideLockScreen == true) {
             // We are updating at a point where the keyguard has gotten
             // focus, but we were last in a state where the top window is
             // hiding it.  This is probably because the keyguard as been
@@ -5164,8 +5206,8 @@
 
     private int updateSystemBarsLw(WindowState win, int oldVis, int vis) {
         // apply translucent bar vis flags
-        WindowState transWin = mKeyguard != null && mKeyguard.isVisibleLw() && !mHideLockScreen
-                ? mKeyguard
+        WindowState transWin = isStatusBarKeyguard() && !mHideLockScreen
+                ? mStatusBar
                 : mTopFullscreenOpaqueWindowState;
         vis = mStatusBarController.applyTranslucentFlagLw(transWin, vis, oldVis);
         vis = mNavigationBarController.applyTranslucentFlagLw(transWin, vis, oldVis);
@@ -5176,9 +5218,10 @@
             int flags = View.SYSTEM_UI_FLAG_FULLSCREEN
                     | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                     | View.SYSTEM_UI_FLAG_IMMERSIVE
-                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
-                    | View.STATUS_BAR_TRANSLUCENT
-                    | View.NAVIGATION_BAR_TRANSLUCENT;
+                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+            if (!isStatusBarKeyguard() || mHideLockScreen) {
+                flags |= View.STATUS_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSLUCENT;
+            }
             vis = (vis & ~flags) | (oldVis & flags);
         }
 
@@ -5423,15 +5466,13 @@
         if (mStatusBar != null) {
             pw.print(prefix); pw.print("mStatusBar=");
                     pw.println(mStatusBar);
+            pw.print(prefix); pw.print("isStatusBarKeyguard=");
+                    pw.print(isStatusBarKeyguard());
         }
         if (mNavigationBar != null) {
             pw.print(prefix); pw.print("mNavigationBar=");
                     pw.println(mNavigationBar);
         }
-        if (mKeyguard != null) {
-            pw.print(prefix); pw.print("mKeyguard=");
-                    pw.println(mKeyguard);
-        }
         if (mFocusedWindow != null) {
             pw.print(prefix); pw.print("mFocusedWindow=");
                     pw.println(mFocusedWindow);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
index 812e817..966924b 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
@@ -29,8 +29,8 @@
  */
 public class KeyguardServiceDelegate {
     // TODO: propagate changes to these to {@link KeyguardTouchDelegate}
-    public static final String KEYGUARD_PACKAGE = "com.android.keyguard";
-    public static final String KEYGUARD_CLASS = "com.android.keyguard.KeyguardService";
+    public static final String KEYGUARD_PACKAGE = "com.android.systemui";
+    public static final String KEYGUARD_CLASS = "com.android.systemui.keyguard.KeyguardService";
 
     private static final String TAG = "KeyguardServiceDelegate";
     private static final boolean DEBUG = true;
@@ -44,13 +44,13 @@
             // the event something checks before the service is actually started.
             // KeyguardService itself should default to this state until the real state is known.
             showing = true;
-            showingAndNotHidden = true;
+            showingAndNotOccluded = true;
             secure = true;
         }
         boolean showing;
-        boolean showingAndNotHidden;
+        boolean showingAndNotOccluded;
         boolean inputRestricted;
-        boolean hidden;
+        boolean occluded;
         boolean secure;
         boolean dreaming;
         boolean systemIsReady;
@@ -109,7 +109,7 @@
                 Context.BIND_AUTO_CREATE, UserHandle.OWNER)) {
             if (DEBUG) Log.v(TAG, "*** Keyguard: can't bind to " + KEYGUARD_CLASS);
             mKeyguardState.showing = false;
-            mKeyguardState.showingAndNotHidden = false;
+            mKeyguardState.showingAndNotOccluded = false;
             mKeyguardState.secure = false;
         } else {
             if (DEBUG) Log.v(TAG, "*** Keyguard started");
@@ -148,11 +148,11 @@
         return mKeyguardState.showing;
     }
 
-    public boolean isShowingAndNotHidden() {
+    public boolean isShowingAndNotOccluded() {
         if (mKeyguardService != null) {
-            mKeyguardState.showingAndNotHidden = mKeyguardService.isShowingAndNotHidden();
+            mKeyguardState.showingAndNotOccluded = mKeyguardService.isShowingAndNotOccluded();
         }
-        return mKeyguardState.showingAndNotHidden;
+        return mKeyguardState.showingAndNotOccluded;
     }
 
     public boolean isInputRestricted() {
@@ -174,11 +174,13 @@
         }
     }
 
-    public void setHidden(boolean isHidden) {
+    public int setOccluded(boolean isOccluded) {
+        int result = 0;
         if (mKeyguardService != null) {
-            mKeyguardService.setHidden(isHidden);
+            result = mKeyguardService.setOccluded(isOccluded);
         }
-        mKeyguardState.hidden = isHidden;
+        mKeyguardState.occluded = isOccluded;
+        return result;
     }
 
     public void dismiss() {
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java
index 9fb2a50..7cb48fa 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java
@@ -22,6 +22,7 @@
 import android.util.Slog;
 import android.view.MotionEvent;
 
+import com.android.internal.policy.IKeyguardServiceConstants;
 import com.android.internal.policy.IKeyguardShowCallback;
 import com.android.internal.policy.IKeyguardExitCallback;
 import com.android.internal.policy.IKeyguardService;
@@ -57,9 +58,9 @@
         return false; // TODO cache state
     }
 
-    public boolean isShowingAndNotHidden() {
+    public boolean isShowingAndNotOccluded() {
         try {
-            return mService.isShowingAndNotHidden();
+            return mService.isShowingAndNotOccluded();
         } catch (RemoteException e) {
             Slog.w(TAG , "Remote Exception", e);
         }
@@ -100,11 +101,12 @@
         }
     }
 
-    public void setHidden(boolean isHidden) {
+    public int setOccluded(boolean isOccluded) {
         try {
-            mService.setHidden(isHidden);
+            return mService.setOccluded(isOccluded);
         } catch (RemoteException e) {
             Slog.w(TAG , "Remote Exception", e);
+            return IKeyguardServiceConstants.KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_NONE;
         }
     }
 
diff --git a/rs/java/android/renderscript/RenderScriptGL.java b/rs/java/android/renderscript/RenderScriptGL.java
index 714e835..6178994 100644
--- a/rs/java/android/renderscript/RenderScriptGL.java
+++ b/rs/java/android/renderscript/RenderScriptGL.java
@@ -225,9 +225,13 @@
         validate();
         //android.util.Log.v("rs", "set surface " + sur + " w=" + w + ", h=" + h);
 
+        Surface s = null;
+        if (sur != null) {
+            s = new Surface(sur);
+        }
         mWidth = w;
         mHeight = h;
-        nContextSetSurfaceTexture(w, h, sur);
+        nContextSetSurface(w, h, s);
     }
 
     /**
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 35f873e..3619112 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -132,6 +132,8 @@
     private static final String TEMPORARY_ENABLE_ACCESSIBILITY_UNTIL_KEYGUARD_REMOVED =
             "temporaryEnableAccessibilityStateUntilKeyguardRemoved";
 
+    private static final String GET_WINDOW_TOKEN = "getWindowToken";
+
     private static final ComponentName sFakeAccessibilityServiceComponentName =
             new ComponentName("foo.bar", "FakeService");
 
@@ -164,8 +166,6 @@
 
     private final Point mTempPoint = new Point();
 
-    private final Display mDefaultDisplay;
-
     private final PackageManager mPackageManager;
 
     private final WindowManagerInternal mWindowManagerService;
@@ -174,7 +174,7 @@
 
     private final MainHandler mMainHandler;
 
-    private Service mQueryBridge;
+    private InteractionBridge mInteractionBridge;
 
     private AlertDialog mEnableTouchExplorationDialog;
 
@@ -230,10 +230,6 @@
         mWindowManagerService = LocalServices.getService(WindowManagerInternal.class);
         mSecurityPolicy = new SecurityPolicy();
         mMainHandler = new MainHandler(mContext.getMainLooper());
-        //TODO: (multi-display) We need to support multiple displays.
-        DisplayManager displayManager = (DisplayManager)
-                mContext.getSystemService(Context.DISPLAY_SERVICE);
-        mDefaultDisplay = displayManager.getDisplay(Display.DEFAULT_DISPLAY);
         registerBroadcastReceivers();
         new AccessibilityContentObserver(mMainHandler).register(
                 context.getContentResolver());
@@ -360,6 +356,7 @@
         }, UserHandle.ALL, intentFilter, null, null);
     }
 
+    @Override
     public int addClient(IAccessibilityManagerClient client, int userId) {
         synchronized (mLock) {
             final int resolvedUserId = mSecurityPolicy
@@ -388,6 +385,7 @@
         }
     }
 
+    @Override
     public boolean sendAccessibilityEvent(AccessibilityEvent event, int userId) {
         synchronized (mLock) {
             final int resolvedUserId = mSecurityPolicy
@@ -397,7 +395,8 @@
                 return true; // yes, recycle the event
             }
             if (mSecurityPolicy.canDispatchAccessibilityEventLocked(event)) {
-                mSecurityPolicy.updateActiveWindowLocked(event.getWindowId(), event.getEventType());
+                mSecurityPolicy.updateActiveAndAccessibilityFocusedWindowLocked(event.getWindowId(),
+                        event.getSourceNodeId(), event.getEventType());
                 mSecurityPolicy.updateEventSourceLocked(event);
                 notifyAccessibilityServicesDelayedLocked(event, false);
                 notifyAccessibilityServicesDelayedLocked(event, true);
@@ -412,6 +411,7 @@
         return (OWN_PROCESS_ID != Binder.getCallingPid());
     }
 
+    @Override
     public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId) {
         synchronized (mLock) {
             final int resolvedUserId = mSecurityPolicy
@@ -430,6 +430,7 @@
         }
     }
 
+    @Override
     public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType,
             int userId) {
         List<AccessibilityServiceInfo> result = null;
@@ -463,6 +464,7 @@
         return result;
     }
 
+    @Override
     public void interrupt(int userId) {
         CopyOnWriteArrayList<Service> services;
         synchronized (mLock) {
@@ -485,6 +487,7 @@
         }
     }
 
+    @Override
     public int addAccessibilityInteractionConnection(IWindow windowToken,
             IAccessibilityInteractionConnection connection, int userId) throws RemoteException {
         synchronized (mLock) {
@@ -521,6 +524,7 @@
         }
     }
 
+    @Override
     public void removeAccessibilityInteractionConnection(IWindow window) {
         synchronized (mLock) {
             mSecurityPolicy.resolveCallingUserIdEnforcingPermissionsLocked(
@@ -570,6 +574,7 @@
         return -1;
     }
 
+    @Override
     public void registerUiTestAutomationService(IBinder owner,
             IAccessibilityServiceClient serviceClient,
             AccessibilityServiceInfo accessibilityServiceInfo) {
@@ -612,6 +617,7 @@
         }
     }
 
+    @Override
     public void unregisterUiTestAutomationService(IAccessibilityServiceClient serviceClient) {
         synchronized (mLock) {
             UserState userState = getCurrentUserStateLocked();
@@ -630,6 +636,7 @@
         }
     }
 
+    @Override
     public void temporaryEnableAccessibilityStateUntilKeyguardRemoved(
             ComponentName service, boolean touchExplorationEnabled) {
         mSecurityPolicy.enforceCallingPermission(
@@ -662,6 +669,29 @@
         }
     }
 
+    @Override
+    public IBinder getWindowToken(int windowId) {
+        mSecurityPolicy.enforceCallingPermission(
+                Manifest.permission.RETRIEVE_WINDOW_TOKEN,
+                GET_WINDOW_TOKEN);
+        synchronized (mLock) {
+            final int resolvedUserId = mSecurityPolicy
+                    .resolveCallingUserIdEnforcingPermissionsLocked(
+                            UserHandle.getCallingUserId());
+            if (resolvedUserId != mCurrentUserId) {
+                return null;
+            }
+            if (mSecurityPolicy.findWindowById(windowId) == null) {
+                return null;
+            }
+            IBinder token = mGlobalWindowTokens.get(windowId);
+            if (token != null) {
+                return token;
+            }
+            return getCurrentUserStateLocked().mWindowTokens.get(windowId);
+        }
+    }
+
     boolean onGesture(int gestureId) {
         synchronized (mLock) {
             boolean handled = notifyGestureLocked(gestureId, false);
@@ -689,47 +719,9 @@
      * @param outBounds The output to which to write the focus bounds.
      * @return Whether accessibility focus was found and the bounds are populated.
      */
-    // TODO: (multi-display) Make sure this works for multiple displays. 
-    boolean getAccessibilityFocusBoundsInActiveWindow(Rect outBounds) {
-        // Instead of keeping track of accessibility focus events per
-        // window to be able to find the focus in the active window,
-        // we take a stateless approach and look it up. This is fine
-        // since we do this only when the user clicks/long presses.
-        Service service = getQueryBridge();
-        final int connectionId = service.mId;
-        AccessibilityInteractionClient client = AccessibilityInteractionClient.getInstance();
-        client.addConnection(connectionId, service);
-        try {
-            AccessibilityNodeInfo root = AccessibilityInteractionClient.getInstance()
-                    .getRootInActiveWindow(connectionId);
-            if (root == null) {
-                return false;
-            }
-            AccessibilityNodeInfo focus = root.findFocus(
-                    AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
-            if (focus == null) {
-                return false;
-            }
-            focus.getBoundsInScreen(outBounds);
-
-            MagnificationSpec spec = service.getCompatibleMagnificationSpec(focus.getWindowId());
-            if (spec != null && !spec.isNop()) {
-                outBounds.offset((int) -spec.offsetX, (int) -spec.offsetY);
-                outBounds.scale(1 / spec.scale);
-            }
-
-            // Clip to the window rectangle.
-            Rect windowBounds = mTempRect;
-            getActiveWindowBounds(windowBounds);
-            outBounds.intersect(windowBounds);
-            // Clip to the screen rectangle.
-            mDefaultDisplay.getRealSize(mTempPoint);
-            outBounds.intersect(0,  0,  mTempPoint.x, mTempPoint.y);
-
-            return true;
-        } finally {
-            client.removeConnection(connectionId);
-        }
+    // TODO: (multi-display) Make sure this works for multiple displays.
+    boolean getAccessibilityFocusBounds(Rect outBounds) {
+        return getInteractionBridgeLocked().getAccessibilityFocusBoundsNotLocked(outBounds);
     }
 
     /**
@@ -820,14 +812,11 @@
         }
     }
 
-    private Service getQueryBridge() {
-        if (mQueryBridge == null) {
-            AccessibilityServiceInfo info = new AccessibilityServiceInfo();
-            info.setCapabilities(AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT);
-            mQueryBridge = new Service(UserHandle.USER_NULL,
-                    sFakeAccessibilityServiceComponentName, info);
+    private InteractionBridge getInteractionBridgeLocked() {
+        if (mInteractionBridge == null) {
+            mInteractionBridge = new InteractionBridge();
         }
-        return mQueryBridge;
+        return mInteractionBridge;
     }
 
     private boolean notifyGestureLocked(int gestureId, boolean isDefault) {
@@ -1298,9 +1287,10 @@
     private void onUserStateChangedLocked(UserState userState) {
         // TODO: Remove this hack
         mInitialized = true;
-        updateLegacyCapabilities(userState);
+        updateLegacyCapabilitiesLocked(userState);
         updateServicesLocked(userState);
-        updateWindowsForAccessibilityCallback(userState);
+        updateWindowsForAccessibilityCallbackLocked(userState);
+        updateAccessibilityFocusBehaviorLocked(userState);
         updateFilterKeyEventsLocked(userState);
         updateTouchExplorationLocked(userState);
         updateEnhancedWebAccessibilityLocked(userState);
@@ -1309,7 +1299,29 @@
         scheduleUpdateClientsIfNeededLocked(userState);
     }
 
-    private void updateWindowsForAccessibilityCallback(UserState userState) {
+    private void updateAccessibilityFocusBehaviorLocked(UserState userState) {
+        // If there is no service that can operate with interactive windows
+        // then we keep the old behavior where a window loses accessibility
+        // focus if it is no longer active. This still changes the behavior
+        // for services that do not operate with interactive windows and run
+        // at the same time as the one(s) which does. In practice however,
+        // there is only one service that uses accessibility focus and it
+        // is typically the one that operates with interactive windows, So,
+        // this is fine. Note that to allow a service to work across windows
+        // we have to allow accessibility focus stay in any of them. Sigh...
+        List<Service> boundServices = userState.mBoundServices;
+        final int boundServiceCount = boundServices.size();
+        for (int i = 0; i < boundServiceCount; i++) {
+            Service boundService = boundServices.get(i);
+            if (boundService.canRetrieveInteractiveWindowsLocked()) {
+                userState.mAccessibilityFocusOnlyInActiveWindow = false;
+                return;
+            }
+        }
+        userState.mAccessibilityFocusOnlyInActiveWindow = true;
+    }
+
+    private void updateWindowsForAccessibilityCallbackLocked(UserState userState) {
         if (userState.mIsAccessibilityEnabled) {
             // We observe windows for accessibility only if there is at least
             // one bound service that can retrieve window content that specified
@@ -1322,8 +1334,7 @@
             final int boundServiceCount = boundServices.size();
             for (int i = 0; i < boundServiceCount; i++) {
                 Service boundService = boundServices.get(i);
-                if (mSecurityPolicy.canRetrieveWindowContentLocked(boundService)
-                        && boundService.mRetrieveInteractiveWindows) {
+                if (boundService.canRetrieveInteractiveWindowsLocked()) {
                     boundServiceCanRetrieveInteractiveWindows = true;
                     break;
                 }
@@ -1346,7 +1357,7 @@
         }
     }
 
-    private void updateLegacyCapabilities(UserState userState) {
+    private void updateLegacyCapabilitiesLocked(UserState userState) {
         // Up to JB-MR1 we had a white list with services that can enable touch
         // exploration. When a service is first started we show a dialog to the
         // use to get a permission to white list the service.
@@ -1547,6 +1558,18 @@
         DisplayAdjustmentUtils.applyAdjustments(mContext, userState.mUserId);
     }
 
+    private MagnificationSpec getCompatibleMagnificationSpecLocked(int windowId) {
+        IBinder windowToken = mGlobalWindowTokens.get(windowId);
+        if (windowToken == null) {
+            windowToken = getCurrentUserStateLocked().mWindowTokens.get(windowId);
+        }
+        if (windowToken != null) {
+            return mWindowManagerService.getCompatibleMagnificationSpecForWindow(
+                    windowToken);
+        }
+        return null;
+    }
+
     @Override
     public void dump(FileDescriptor fd, final PrintWriter pw, String[] args) {
         mSecurityPolicy.enforceCallingPermission(Manifest.permission.DUMP, FUNCTION_DUMP);
@@ -1623,6 +1646,7 @@
         public static final int MSG_UPDATE_INPUT_FILTER = 6;
         public static final int MSG_SHOW_ENABLED_TOUCH_EXPLORATION_DIALOG = 7;
         public static final int MSG_SEND_KEY_EVENT_TO_INPUT_FILTER = 8;
+        public static final int MSG_CLEAR_ACCESSIBILITY_FOCUS = 9;
 
         public MainHandler(Looper looper) {
             super(looper);
@@ -1678,6 +1702,15 @@
                     Service service = (Service) msg.obj;
                     showEnableTouchExplorationDialog(service);
                 } break;
+
+                case MSG_CLEAR_ACCESSIBILITY_FOCUS: {
+                    final int windowId = msg.arg1;
+                    InteractionBridge bridge;
+                    synchronized (mLock) {
+                        bridge = getInteractionBridgeLocked();
+                    }
+                    bridge.clearAccessibilityFocusNotLocked(windowId);
+                } break;
             }
         }
 
@@ -1946,6 +1979,11 @@
             }
         }
 
+        public boolean canRetrieveInteractiveWindowsLocked() {
+            return mSecurityPolicy.canRetrieveWindowContentLocked(this)
+                    && mRetrieveInteractiveWindows;
+        }
+
         @Override
         public void setServiceInfo(AccessibilityServiceInfo info) {
             final long identity = Binder.clearCallingIdentity();
@@ -2074,7 +2112,7 @@
             }
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
-            MagnificationSpec spec = getCompatibleMagnificationSpec(resolvedWindowId);
+            MagnificationSpec spec = getCompatibleMagnificationSpecLocked(resolvedWindowId);
             try {
                 connection.findAccessibilityNodeInfosByViewId(accessibilityNodeId,
                         viewIdResName, interactionId, callback, mFetchFlags, interrogatingPid,
@@ -2118,7 +2156,7 @@
             }
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
-            MagnificationSpec spec = getCompatibleMagnificationSpec(resolvedWindowId);
+            MagnificationSpec spec = getCompatibleMagnificationSpecLocked(resolvedWindowId);
             try {
                 connection.findAccessibilityNodeInfosByText(accessibilityNodeId, text,
                         interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid,
@@ -2162,7 +2200,7 @@
             }
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
-            MagnificationSpec spec = getCompatibleMagnificationSpec(resolvedWindowId);
+            MagnificationSpec spec = getCompatibleMagnificationSpecLocked(resolvedWindowId);
             try {
                 connection.findAccessibilityNodeInfoByAccessibilityId(accessibilityNodeId,
                         interactionId, callback, mFetchFlags | flags, interrogatingPid,
@@ -2192,7 +2230,8 @@
                 if (resolvedUserId != mCurrentUserId) {
                     return false;
                 }
-                resolvedWindowId = resolveAccessibilityWindowIdLocked(accessibilityWindowId);
+                resolvedWindowId = resolveAccessibilityWindowIdForFindFocusLocked(
+                        accessibilityWindowId, focusType);
                 final boolean permissionGranted =
                     mSecurityPolicy.canGetAccessibilityNodeInfoLocked(this, resolvedWindowId);
                 if (!permissionGranted) {
@@ -2206,14 +2245,14 @@
             }
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
-            MagnificationSpec spec = getCompatibleMagnificationSpec(resolvedWindowId);
+            MagnificationSpec spec = getCompatibleMagnificationSpecLocked(resolvedWindowId);
             try {
                 connection.findFocus(accessibilityNodeId, focusType, interactionId, callback,
                         mFetchFlags, interrogatingPid, interrogatingTid, spec);
                 return true;
             } catch (RemoteException re) {
                 if (DEBUG) {
-                    Slog.e(LOG_TAG, "Error calling findAccessibilityFocus()");
+                    Slog.e(LOG_TAG, "Error calling findFocus()");
                 }
             } finally {
                 Binder.restoreCallingIdentity(identityToken);
@@ -2249,7 +2288,7 @@
             }
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
-            MagnificationSpec spec = getCompatibleMagnificationSpec(resolvedWindowId);
+            MagnificationSpec spec = getCompatibleMagnificationSpecLocked(resolvedWindowId);
             try {
                 connection.focusSearch(accessibilityNodeId, direction, interactionId, callback,
                         mFetchFlags, interrogatingPid, interrogatingTid, spec);
@@ -2694,16 +2733,18 @@
             return accessibilityWindowId;
         }
 
-        private MagnificationSpec getCompatibleMagnificationSpec(int windowId) {
-            IBinder windowToken = mGlobalWindowTokens.get(windowId);
-            if (windowToken == null) {
-                windowToken = getCurrentUserStateLocked().mWindowTokens.get(windowId);
+        private int resolveAccessibilityWindowIdForFindFocusLocked(int windowId, int focusType) {
+            if (windowId == AccessibilityNodeInfo.ACTIVE_WINDOW_ID) {
+                return mSecurityPolicy.mActiveWindowId;
             }
-            if (windowToken != null) {
-                return mWindowManagerService.getCompatibleMagnificationSpecForWindow(
-                        windowToken);
+            if (windowId == AccessibilityNodeInfo.ANY_WINDOW_ID) {
+                if (focusType == AccessibilityNodeInfo.FOCUS_INPUT) {
+                    return mSecurityPolicy.mFocusedWindowId;
+                } else if (focusType == AccessibilityNodeInfo.FOCUS_ACCESSIBILITY) {
+                    return mSecurityPolicy.mAccessibilityFocusedWindowId;
+                }
             }
-            return null;
+            return windowId;
         }
 
         private final class InvocationHandler extends Handler {
@@ -2972,7 +3013,6 @@
                     return AccessibilityWindowInfo.TYPE_INPUT_METHOD;
                 }
 
-                case WindowManager.LayoutParams.TYPE_KEYGUARD:
                 case WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG:
                 case WindowManager.LayoutParams.TYPE_NAVIGATION_BAR:
                 case WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL:
@@ -2996,7 +3036,86 @@
         }
     }
 
+    private final class InteractionBridge {
+        private final Display mDefaultDisplay;
+        private final int mConnectionId;
+        private final AccessibilityInteractionClient mClient;
+
+        public InteractionBridge() {
+            AccessibilityServiceInfo info = new AccessibilityServiceInfo();
+            info.setCapabilities(AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT);
+            info.flags |= AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS;
+            info.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
+            Service service = new Service(UserHandle.USER_NULL,
+                    sFakeAccessibilityServiceComponentName, info);
+
+            mConnectionId = service.mId;
+
+            mClient = AccessibilityInteractionClient.getInstance();
+            mClient.addConnection(mConnectionId, service);
+
+            //TODO: (multi-display) We need to support multiple displays.
+            DisplayManager displayManager = (DisplayManager)
+                    mContext.getSystemService(Context.DISPLAY_SERVICE);
+            mDefaultDisplay = displayManager.getDisplay(Display.DEFAULT_DISPLAY);
+        }
+
+        public void clearAccessibilityFocusNotLocked(int windowId) {
+            AccessibilityNodeInfo focus = getAccessibilityFocusNotLocked(windowId);
+            if (focus != null) {
+                focus.performAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
+            }
+        }
+
+        public boolean getAccessibilityFocusBoundsNotLocked(Rect outBounds) {
+            AccessibilityNodeInfo focus = getAccessibilityFocusNotLocked();
+            if (focus == null) {
+                return false;
+            }
+
+            synchronized (mLock) {
+                focus.getBoundsInScreen(outBounds);
+
+                MagnificationSpec spec = getCompatibleMagnificationSpecLocked(focus.getWindowId());
+                if (spec != null && !spec.isNop()) {
+                    outBounds.offset((int) -spec.offsetX, (int) -spec.offsetY);
+                    outBounds.scale(1 / spec.scale);
+                }
+
+                // Clip to the window rectangle.
+                Rect windowBounds = mTempRect;
+                getActiveWindowBounds(windowBounds);
+                outBounds.intersect(windowBounds);
+
+                // Clip to the screen rectangle.
+                mDefaultDisplay.getRealSize(mTempPoint);
+                outBounds.intersect(0, 0, mTempPoint.x, mTempPoint.y);
+
+                return true;
+            }
+        }
+
+        private AccessibilityNodeInfo getAccessibilityFocusNotLocked() {
+            final int focusedWindowId;
+            synchronized (mLock) {
+                focusedWindowId = mSecurityPolicy.mAccessibilityFocusedWindowId;
+                if (focusedWindowId == SecurityPolicy.INVALID_WINDOW_ID) {
+                    return null;
+                }
+            }
+            return getAccessibilityFocusNotLocked(focusedWindowId);
+        }
+
+        private AccessibilityNodeInfo getAccessibilityFocusNotLocked(int windowId) {
+            return mClient.findFocus(mConnectionId,
+                    windowId, AccessibilityNodeInfo.ROOT_NODE_ID,
+                    AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
+        }
+    }
+
     final class SecurityPolicy {
+        public static final int INVALID_WINDOW_ID = -1;
+
         private static final int VALID_ACTIONS =
             AccessibilityNodeInfo.ACTION_CLICK
             | AccessibilityNodeInfo.ACTION_LONG_CLICK
@@ -3040,8 +3159,11 @@
         public final List<AccessibilityWindowInfo> mWindows =
                 new ArrayList<AccessibilityWindowInfo>();
 
-        public int mActiveWindowId;
-        public int mFocusedWindowId;
+        public int mActiveWindowId = INVALID_WINDOW_ID;
+        public int mFocusedWindowId = INVALID_WINDOW_ID;
+        public int mAccessibilityFocusedWindowId = INVALID_WINDOW_ID;
+        public long mAccessibilityFocusNodeId = AccessibilityNodeInfo.UNDEFINED_ITEM_ID;
+
         public AccessibilityEvent mShowingFocusedWindowEvent;
 
         private boolean mTouchInteractionInProgress;
@@ -3094,9 +3216,9 @@
                 mWindows.remove(i).recycle();
             }
 
-            mFocusedWindowId = -1;
+            mFocusedWindowId = INVALID_WINDOW_ID;
             if (!mTouchInteractionInProgress) {
-                mActiveWindowId = -1;
+                mActiveWindowId = INVALID_WINDOW_ID;
             }
 
             // If the active window goes away while the user is touch exploring we
@@ -3124,7 +3246,7 @@
                 }
 
                 if (mTouchInteractionInProgress && activeWindowGone) {
-                    mActiveWindowId = -1;
+                    mActiveWindowId = INVALID_WINDOW_ID;
                 }
 
                 // Focused window may change the active one, so set the
@@ -3158,7 +3280,8 @@
             }
         }
 
-        public void updateActiveWindowLocked(int windowId, int eventType) {
+        public void updateActiveAndAccessibilityFocusedWindowLocked(int windowId, long nodeId,
+                int eventType) {
             // The active window is either the window that has input focus or
             // the window that the user is currently touching. If the user is
             // touching a window that does not have input focus as soon as the
@@ -3176,8 +3299,9 @@
                     // The active window also determined events from which
                     // windows are delivered.
                     synchronized (mLock) {
+                        mFocusedWindowId = getFocusedWindowId();
                         if (mWindowsForAccessibilityCallback == null
-                                && windowId == getFocusedWindowId()) {
+                                && windowId == mFocusedWindowId) {
                             mActiveWindowId = windowId;
                         }
                     }
@@ -3192,6 +3316,29 @@
                         }
                     }
                 } break;
+
+                case AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED: {
+                    synchronized (mLock) {
+                        if (mAccessibilityFocusedWindowId != windowId) {
+                            mMainHandler.obtainMessage(MainHandler.MSG_CLEAR_ACCESSIBILITY_FOCUS,
+                                    mAccessibilityFocusedWindowId, 0).sendToTarget();
+                            mAccessibilityFocusedWindowId = windowId;
+                            mAccessibilityFocusNodeId = nodeId;
+                        }
+                    }
+                } break;
+
+                case AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED: {
+                    synchronized (mLock) {
+                        if (mAccessibilityFocusNodeId == nodeId) {
+                            mAccessibilityFocusNodeId = AccessibilityNodeInfo.UNDEFINED_ITEM_ID;
+                        }
+                        if (mAccessibilityFocusNodeId == AccessibilityNodeInfo.UNDEFINED_ITEM_ID
+                                && mAccessibilityFocusedWindowId == windowId) {
+                            mAccessibilityFocusedWindowId = INVALID_WINDOW_ID;
+                        }
+                    }
+                } break;
             }
         }
 
@@ -3212,7 +3359,19 @@
                 // (they are a result of user touching the screen) so change of
                 // the active window before all hover accessibility events from
                 // the touched window are delivered is fine.
+                final int oldActiveWindow = mSecurityPolicy.mActiveWindowId;
                 setActiveWindowLocked(mFocusedWindowId);
+
+                // If there is no service that can operate with active windows
+                // we keep accessibility focus behavior to constrain it only in
+                // the active window. Look at updateAccessibilityFocusBehaviorLocked
+                // for details.
+                if (oldActiveWindow != mSecurityPolicy.mActiveWindowId
+                        && mAccessibilityFocusedWindowId == oldActiveWindow
+                        && getCurrentUserStateLocked().mAccessibilityFocusOnlyInActiveWindow) {
+                    mMainHandler.obtainMessage(MainHandler.MSG_CLEAR_ACCESSIBILITY_FOCUS,
+                            oldActiveWindow, 0).sendToTarget();
+                }
             }
         }
 
@@ -3367,6 +3526,7 @@
         public boolean mIsDisplayMagnificationEnabled;
         public boolean mIsFilterKeyEventsEnabled;
         public boolean mHasDisplayColorAdjustment;
+        public boolean mAccessibilityFocusOnlyInActiveWindow;
 
         private Service mUiAutomationService;
         private IAccessibilityServiceClient mUiAutomationServiceClient;
diff --git a/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
index 43f12eb..ac0ca0a 100644
--- a/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
+++ b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
@@ -1159,7 +1159,7 @@
                 // No last touch explored event but there is accessibility focus in
                 // the active window. We click in the middle of the focus bounds.
                 Rect focusBounds = mTempRect;
-                if (mAms.getAccessibilityFocusBoundsInActiveWindow(focusBounds)) {
+                if (mAms.getAccessibilityFocusBounds(focusBounds)) {
                     clickLocationX = focusBounds.centerX();
                     clickLocationY = focusBounds.centerY();
                 } else {
@@ -1177,7 +1177,7 @@
                     mAms.getActiveWindowBounds(activeWindowBounds);
                     if (activeWindowBounds.contains(clickLocationX, clickLocationY)) {
                         Rect focusBounds = mTempRect;
-                        if (mAms.getAccessibilityFocusBoundsInActiveWindow(focusBounds)) {
+                        if (mAms.getAccessibilityFocusBounds(focusBounds)) {
                             if (!focusBounds.contains(clickLocationX, clickLocationY)) {
                                 clickLocationX = focusBounds.centerX();
                                 clickLocationY = focusBounds.centerY();
@@ -1332,7 +1332,7 @@
                 // No last touch explored event but there is accessibility focus in
                 // the active window. We click in the middle of the focus bounds.
                 Rect focusBounds = mTempRect;
-                if (mAms.getAccessibilityFocusBoundsInActiveWindow(focusBounds)) {
+                if (mAms.getAccessibilityFocusBounds(focusBounds)) {
                     clickLocationX = focusBounds.centerX();
                     clickLocationY = focusBounds.centerY();
                 } else {
@@ -1350,7 +1350,7 @@
                     mAms.getActiveWindowBounds(activeWindowBounds);
                     if (activeWindowBounds.contains(clickLocationX, clickLocationY)) {
                         Rect focusBounds = mTempRect;
-                        if (mAms.getAccessibilityFocusBoundsInActiveWindow(focusBounds)) {
+                        if (mAms.getAccessibilityFocusBounds(focusBounds)) {
                             if (!focusBounds.contains(clickLocationX, clickLocationY)) {
                                 clickLocationX = focusBounds.centerX();
                                 clickLocationY = focusBounds.centerY();
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index b7c1704..2f56e62 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -1751,7 +1751,8 @@
                 for (int i = 0; i < N; i++) {
                     AppWidgetId id = mAppWidgetIds.get(i);
                     if (backupTarget.equals(id.host.packageName)
-                            || backupTarget.equals(id.provider.info.provider.getPackageName())) {
+                            || (id.provider != null && backupTarget.equals(
+                                    id.provider.info.provider.getPackageName()))) {
                         serializeAppWidgetId(out, id);
                     }
                 }
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index 1a1512f..0b688b6 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -2035,6 +2035,7 @@
         BackupState mCurrentState;
 
         // carried information about the current in-flight operation
+        IBackupAgent mAgentBinder;
         PackageInfo mCurrentPackage;
         File mSavedStateName;
         File mBackupDataName;
@@ -2097,6 +2098,7 @@
                 addBackupTrace(b.toString());
             }
 
+            mAgentBinder = null;
             mStatus = BackupConstants.TRANSPORT_OK;
 
             // Sanity check: if the queue is empty we have no work to do.
@@ -2228,6 +2230,7 @@
                             IApplicationThread.BACKUP_MODE_INCREMENTAL);
                     addBackupTrace("agent bound; a? = " + (agent != null));
                     if (agent != null) {
+                        mAgentBinder = agent;
                         mStatus = invokeAgentForBackup(request.packageName, agent, mTransport);
                         // at this point we'll either get a completion callback from the
                         // agent, or a timeout message on the main handler.  either way, we're
@@ -2253,6 +2256,7 @@
                 // That means we need to direct to the next state ourselves.
                 if (mStatus != BackupConstants.TRANSPORT_OK) {
                     BackupState nextState = BackupState.RUNNING_QUEUE;
+                    mAgentBinder = null;
 
                     // An agent-level failure means we reenqueue this one agent for
                     // a later retry, but otherwise proceed normally.
@@ -2274,6 +2278,7 @@
 
                     executeNextState(nextState);
                 } else {
+                    // success case
                     addBackupTrace("expecting completion/timeout callback");
                 }
             }
@@ -2402,14 +2407,52 @@
             return BackupConstants.TRANSPORT_OK;
         }
 
+        public void failAgent(IBackupAgent agent, String message) {
+            try {
+                agent.fail(message);
+            } catch (Exception e) {
+                Slog.w(TAG, "Error conveying failure to " + mCurrentPackage.packageName);
+            }
+        }
+
         @Override
         public void operationComplete() {
-            // Okay, the agent successfully reported back to us.  The next thing we do is
-            // push the app widget state for the app, if any.
+            // Okay, the agent successfully reported back to us!
             final String pkgName = mCurrentPackage.packageName;
             final long filepos = mBackupDataName.length();
             FileDescriptor fd = mBackupData.getFileDescriptor();
             try {
+                // If it's a 3rd party app, see whether they wrote any protected keys
+                // and complain mightily if they are attempting shenanigans.
+                if (mCurrentPackage.applicationInfo != null &&
+                        (mCurrentPackage.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) == 0) {
+                    ParcelFileDescriptor readFd = ParcelFileDescriptor.open(mBackupDataName,
+                            ParcelFileDescriptor.MODE_READ_ONLY);
+                    BackupDataInput in = new BackupDataInput(readFd.getFileDescriptor());
+                    try {
+                        while (in.readNextHeader()) {
+                            final String key = in.getKey();
+                            if (key != null && key.charAt(0) >= 0xff00) {
+                                // Not okay: crash them and bail.
+                                failAgent(mAgentBinder, "Illegal backup key: " + key);
+                                addBackupTrace("illegal key " + key + " from " + pkgName);
+                                EventLog.writeEvent(EventLogTags.BACKUP_AGENT_FAILURE, pkgName,
+                                        "bad key");
+                                mBackupHandler.removeMessages(MSG_TIMEOUT);
+                                agentErrorCleanup();
+                                // agentErrorCleanup() implicitly executes next state properly
+                                return;
+                            }
+                            in.skipEntityData();
+                        }
+                    } finally {
+                        if (readFd != null) {
+                            readFd.close();
+                        }
+                    }
+                }
+
+                // Piggyback the widget state payload, if any
                 BackupDataOutput out = new BackupDataOutput(fd);
                 byte[] widgetState = AppWidgetBackupBridge.getWidgetState(pkgName,
                         UserHandle.USER_OWNER);
@@ -2434,8 +2477,7 @@
                 }
             }
 
-            // Spin the data off to the
-            // transport and proceed with the next stage.
+            // Spin the data off to the transport and proceed with the next stage.
             if (MORE_DEBUG) Slog.v(TAG, "operationComplete(): sending data to transport for "
                     + pkgName);
             mBackupHandler.removeMessages(MSG_TIMEOUT);
@@ -4648,7 +4690,11 @@
 
     // ----- Restore handling -----
 
-    private boolean signaturesMatch(Signature[] storedSigs, PackageInfo target) {
+    static boolean signaturesMatch(Signature[] storedSigs, PackageInfo target) {
+        if (target == null) {
+            return false;
+        }
+
         // If the target resides on the system partition, we allow it to restore
         // data from the like-named package in a restore set even if the signatures
         // do not match.  (Unlike general applications, those flashed to the system
diff --git a/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java b/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java
index 495da88..132579d 100644
--- a/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java
+++ b/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java
@@ -19,15 +19,19 @@
 import android.app.backup.BackupAgent;
 import android.app.backup.BackupDataInput;
 import android.app.backup.BackupDataOutput;
+import android.content.ComponentName;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.Signature;
 import android.os.Build;
 import android.os.ParcelFileDescriptor;
 import android.util.Slog;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.DataInputStream;
@@ -42,6 +46,8 @@
 import java.util.List;
 import java.util.Set;
 
+import java.util.Objects;
+
 /**
  * We back up the signatures of each package so that during a system restore,
  * we can verify that the app whose data we think we have matches the app
@@ -58,6 +64,9 @@
     // is stored using the package name as a key)
     private static final String GLOBAL_METADATA_KEY = "@meta@";
 
+    // key under which we store the identity of the user's chosen default home app
+    private static final String DEFAULT_HOME_KEY = "@home@";
+
     private List<PackageInfo> mAllPackages;
     private PackageManager mPackageManager;
     // version & signature info of each app in a restore set
@@ -68,7 +77,15 @@
     private final HashSet<String> mExisting = new HashSet<String>();
     private int mStoredSdkVersion;
     private String mStoredIncrementalVersion;
+    private ComponentName mStoredHomeComponent;
+    private long mStoredHomeVersion;
+    private Signature[] mStoredHomeSigs;
+
     private boolean mHasMetadata;
+    private ComponentName mRestoredHome;
+    private long mRestoredHomeVersion;
+    private String mRestoredHomeInstaller;
+    private Signature[] mRestoredHomeSignatures;
 
     public class Metadata {
         public int versionCode;
@@ -136,7 +153,50 @@
             mExisting.clear();
         }
 
+        long homeVersion = 0;
+        Signature[] homeSigs = null;
+        PackageInfo homeInfo = null;
+        String homeInstaller = null;
+        ComponentName home = getPreferredHomeComponent();
+        if (home != null) {
+            try {
+                homeInfo = mPackageManager.getPackageInfo(home.getPackageName(),
+                        PackageManager.GET_SIGNATURES);
+                homeInstaller = mPackageManager.getInstallerPackageName(home.getPackageName());
+                homeVersion = homeInfo.versionCode;
+                homeSigs = homeInfo.signatures;
+            } catch (NameNotFoundException e) {
+                Slog.w(TAG, "Can't access preferred home info");
+                // proceed as though there were no preferred home set
+                home = null;
+            }
+        }
+
         try {
+            // We need to push a new preferred-home-app record if:
+            //    1. the version of the home app has changed since our last backup;
+            //    2. the home app [or absence] we now use differs from the prior state,
+            // OR 3. it looks like we use the same home app + version as before, but
+            //       the signatures don't match so we treat them as different apps.
+            final boolean needHomeBackup = (homeVersion != mStoredHomeVersion)
+                    || Objects.equals(home, mStoredHomeComponent)
+                    || (home != null
+                        && !BackupManagerService.signaturesMatch(mStoredHomeSigs, homeInfo));
+            if (needHomeBackup) {
+                if (DEBUG) {
+                    Slog.i(TAG, "Home preference changed; backing up new state " + home);
+                }
+                if (home != null) {
+                    outputBufferStream.writeUTF(home.flattenToString());
+                    outputBufferStream.writeLong(homeVersion);
+                    outputBufferStream.writeUTF(homeInstaller != null ? homeInstaller : "" );
+                    writeSignatureArray(outputBufferStream, homeSigs);
+                    writeEntity(data, DEFAULT_HOME_KEY, outputBuffer.toByteArray());
+                } else {
+                    data.writeEntityHeader(DEFAULT_HOME_KEY, -1);
+                }
+            }
+
             /*
              * Global metadata:
              *
@@ -146,6 +206,7 @@
              * String incremental -- the incremental release name of the OS stored in
              *                       the backup set.
              */
+            outputBuffer.reset();
             if (!mExisting.contains(GLOBAL_METADATA_KEY)) {
                 if (DEBUG) Slog.v(TAG, "Storing global metadata key");
                 outputBufferStream.writeInt(Build.VERSION.SDK_INT);
@@ -238,7 +299,7 @@
         }
 
         // Finally, write the new state blob -- just the list of all apps we handled
-        writeStateFile(mAllPackages, newState);
+        writeStateFile(mAllPackages, home, homeVersion, homeSigs, newState);
     }
     
     private static void writeEntity(BackupDataOutput data, String key, byte[] bytes)
@@ -286,6 +347,19 @@
                             + " (" + mStoredIncrementalVersion + " vs "
                             + Build.VERSION.INCREMENTAL + ")");
                 }
+            } else if (key.equals(DEFAULT_HOME_KEY)) {
+                String cn = inputBufferStream.readUTF();
+                mRestoredHome = ComponentName.unflattenFromString(cn);
+                mRestoredHomeVersion = inputBufferStream.readLong();
+                mRestoredHomeInstaller = inputBufferStream.readUTF();
+                mRestoredHomeSignatures = readSignatureArray(inputBufferStream);
+                if (DEBUG) {
+                    Slog.i(TAG, "   read preferred home app " + mRestoredHome
+                            + " version=" + mRestoredHomeVersion
+                            + " installer=" + mRestoredHomeVersion
+                            + " sig=" + mRestoredHomeVersion);
+                }
+
             } else {
                 // it's a file metadata record
                 int versionCode = inputBufferStream.readInt();
@@ -365,18 +439,34 @@
         mStateVersions.clear();
         mStoredSdkVersion = 0;
         mStoredIncrementalVersion = null;
+        mStoredHomeComponent = null;
+        mStoredHomeVersion = 0;
+        mStoredHomeSigs = null;
 
         // The state file is just the list of app names we have stored signatures for
         // with the exception of the metadata block, to which is also appended the
         // version numbers corresponding with the last time we wrote this PM block.
         // If they mismatch the current system, we'll re-store the metadata key.
         FileInputStream instream = new FileInputStream(stateFile.getFileDescriptor());
-        DataInputStream in = new DataInputStream(instream);
+        BufferedInputStream inbuffer = new BufferedInputStream(instream);
+        DataInputStream in = new DataInputStream(inbuffer);
 
-        int bufSize = 256;
-        byte[] buf = new byte[bufSize];
         try {
             String pkg = in.readUTF();
+
+            // First comes the preferred home app data, if any, headed by the DEFAULT_HOME_KEY tag
+            if (pkg.equals(DEFAULT_HOME_KEY)) {
+                // flattened component name, version, signature of the home app
+                mStoredHomeComponent = ComponentName.unflattenFromString(in.readUTF());
+                mStoredHomeVersion = in.readLong();
+                mStoredHomeSigs = readSignatureArray(in);
+
+                pkg = in.readUTF(); // set up for the next block of state
+            } else {
+                // else no preferred home app on the ancestral device - fall through to the rest
+            }
+
+            // After (possible) home app data comes the global metadata block
             if (pkg.equals(GLOBAL_METADATA_KEY)) {
                 mStoredSdkVersion = in.readInt();
                 mStoredIncrementalVersion = in.readUTF();
@@ -386,7 +476,7 @@
                 return;
             }
 
-            // The global metadata was first; now read all the apps
+            // The global metadata was last; now read all the apps
             while (true) {
                 pkg = in.readUTF();
                 int versionCode = in.readInt();
@@ -401,13 +491,28 @@
         }
     }
 
-    // Util: write out our new backup state file
-    private void writeStateFile(List<PackageInfo> pkgs, ParcelFileDescriptor stateFile) {
-        FileOutputStream outstream = new FileOutputStream(stateFile.getFileDescriptor());
-        DataOutputStream out = new DataOutputStream(outstream);
+    private ComponentName getPreferredHomeComponent() {
+        return mPackageManager.getHomeActivities(new ArrayList<ResolveInfo>());
+    }
 
+    // Util: write out our new backup state file
+    private void writeStateFile(List<PackageInfo> pkgs, ComponentName preferredHome,
+            long homeVersion, Signature[] homeSignatures, ParcelFileDescriptor stateFile) {
+        FileOutputStream outstream = new FileOutputStream(stateFile.getFileDescriptor());
+        BufferedOutputStream outbuf = new BufferedOutputStream(outstream);
+        DataOutputStream out = new DataOutputStream(outbuf);
+
+        // by the time we get here we know we've done all our backing up
         try {
-            // by the time we get here we know we've stored the global metadata record
+            // If we remembered a preferred home app, record that
+            if (preferredHome != null) {
+                out.writeUTF(DEFAULT_HOME_KEY);
+                out.writeUTF(preferredHome.flattenToString());
+                out.writeLong(homeVersion);
+                writeSignatureArray(out, homeSignatures);
+            }
+
+            // Conclude with the metadata block
             out.writeUTF(GLOBAL_METADATA_KEY);
             out.writeInt(Build.VERSION.SDK_INT);
             out.writeUTF(Build.VERSION.INCREMENTAL);
@@ -417,9 +522,10 @@
                 out.writeUTF(pkg.packageName);
                 out.writeInt(pkg.versionCode);
             }
+
+            out.flush();
         } catch (IOException e) {
             Slog.e(TAG, "Unable to write package manager state file!");
-            return;
         }
     }
 }
diff --git a/services/core/java/com/android/server/EventLogTags.logtags b/services/core/java/com/android/server/EventLogTags.logtags
index 0f78c9b..9768934 100644
--- a/services/core/java/com/android/server/EventLogTags.logtags
+++ b/services/core/java/com/android/server/EventLogTags.logtags
@@ -58,7 +58,11 @@
 2751 notification_cancel (uid|1|5),(pid|1|5),(pkg|3),(id|1|5),(tag|3),(userid|1|5),(required_flags|1),(forbidden_flags|1),(reason|1|5),(listener|3)
 # when someone tries to cancel all of the notifications for a particular package
 2752 notification_cancel_all (uid|1|5),(pid|1|5),(pkg|3),(userid|1|5),(required_flags|1),(forbidden_flags|1),(reason|1|5),(listener|3)
-
+# when the notification panel is shown
+# Note: New tag range starts here since 2753+ have been used below.
+27500 notification_panel_revealed
+# when the notification panel is hidden
+27501 notification_panel_hidden
 
 # ---------------------------
 # Watchdog.java
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index 5fb6405..6fc3e77 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -148,6 +148,7 @@
     static final int MSG_UNBIND_METHOD = 3000;
     static final int MSG_BIND_METHOD = 3010;
     static final int MSG_SET_ACTIVE = 3020;
+    static final int MSG_SET_CURSOR_ANCHOR_MONITOR_MODE = 3030;
 
     static final int MSG_HARD_KEYBOARD_SWITCH_CHANGED = 4000;
 
@@ -445,7 +446,7 @@
                 return;
             } else if (Intent.ACTION_USER_ADDED.equals(action)
                     || Intent.ACTION_USER_REMOVED.equals(action)) {
-                updateRelatedUserIds();
+                updateCurrentProfileIds();
                 return;
             } else {
                 Slog.w(TAG, "Unexpected intent " + intent);
@@ -689,7 +690,7 @@
         // mSettings should be created before buildInputMethodListLocked
         mSettings = new InputMethodSettings(
                 mRes, context.getContentResolver(), mMethodMap, mMethodList, userId);
-        updateRelatedUserIds();
+        updateCurrentProfileIds();
         mFileManager = new InputMethodFileManager(mMethodMap, userId);
         mSwitchingController = new InputMethodSubtypeSwitchingController(mSettings);
         mSwitchingController.resetCircularListLocked(context);
@@ -805,7 +806,7 @@
 
     private void switchUserLocked(int newUserId) {
         mSettings.setCurrentUserId(newUserId);
-        updateRelatedUserIds();
+        updateCurrentProfileIds();
         // InputMethodFileManager should be reset when the user is changed
         mFileManager = new InputMethodFileManager(mMethodMap, newUserId);
         final String defaultImiId = mSettings.getSelectedInputMethod();
@@ -826,14 +827,14 @@
         }
     }
 
-    void updateRelatedUserIds() {
-        List<UserInfo> relatedUsers =
-                UserManager.get(mContext).getRelatedUsers(mSettings.getCurrentUserId());
-        int[] relatedUserIds = new int[relatedUsers.size()]; // relatedUsers will not be null
-        for (int i = 0; i < relatedUserIds.length; i++) {
-            relatedUserIds[i] = relatedUsers.get(i).id;
+    void updateCurrentProfileIds() {
+        List<UserInfo> profiles =
+                UserManager.get(mContext).getProfiles(mSettings.getCurrentUserId());
+        int[] currentProfileIds = new int[profiles.size()]; // profiles will not be null
+        for (int i = 0; i < currentProfileIds.length; i++) {
+            currentProfileIds[i] = profiles.get(i).id;
         }
-        mSettings.setRelatedUserIds(relatedUserIds);
+        mSettings.setCurrentProfileIds(currentProfileIds);
     }
 
     @Override
@@ -931,7 +932,7 @@
                     + mSettings.getCurrentUserId() + ", calling pid = " + Binder.getCallingPid()
                     + InputMethodUtils.getApiCallStack());
         }
-        if (uid == Process.SYSTEM_UID || mSettings.isRelatedToOrCurrentUser(userId)) {
+        if (uid == Process.SYSTEM_UID || mSettings.isCurrentProfile(userId)) {
             return true;
         }
 
@@ -2275,6 +2276,27 @@
         }
     }
 
+    @Override
+    public void setCursorAnchorMonitorMode(IBinder token, int monitorMode) {
+        if (DEBUG) {
+            Slog.d(TAG, "setCursorAnchorMonitorMode: monitorMode=" + monitorMode);
+        }
+        if (!calledFromValidUser()) {
+            return;
+        }
+        synchronized (mMethodMap) {
+            if (token == null || mCurToken != token) {
+                if (DEBUG) {
+                    Slog.w(TAG, "Ignoring setCursorAnchorMonitorMode from uid "
+                            + Binder.getCallingUid() + " token: " + token);
+                }
+                return;
+            }
+            executeOrSendMessage(mCurMethod, mCaller.obtainMessageIO(
+                    MSG_SET_CURSOR_ANCHOR_MONITOR_MODE, monitorMode, mCurClient));
+        }
+    }
+
     private void setInputMethodWithSubtypeId(IBinder token, String id, int subtypeId) {
         synchronized (mMethodMap) {
             if (token == null) {
@@ -2506,6 +2528,15 @@
                             + ((ClientState)msg.obj).uid);
                 }
                 return true;
+            case MSG_SET_CURSOR_ANCHOR_MONITOR_MODE:
+                try {
+                    ((ClientState)msg.obj).client.setCursorAnchorMonitorMode(msg.arg1);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Got RemoteException sending setCursorAnchorMonitorMode "
+                            + "notification to pid " + ((ClientState)msg.obj).pid
+                            + " uid " + ((ClientState)msg.obj).uid);
+                }
+                return true;
 
             // --------------------------------------------------------------
             case MSG_HARD_KEYBOARD_SWITCH_CHANGED:
diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java
index fe814fc..0d2cee8 100644
--- a/services/core/java/com/android/server/LockSettingsService.java
+++ b/services/core/java/com/android/server/LockSettingsService.java
@@ -30,7 +30,11 @@
 import android.database.sqlite.SQLiteStatement;
 import android.os.Binder;
 import android.os.Environment;
+import android.os.IBinder;
 import android.os.RemoteException;
+import android.os.storage.IMountService;
+import android.os.ServiceManager;
+import android.os.storage.StorageManager;
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -79,6 +83,7 @@
 
     private final Context mContext;
     private LockPatternUtils mLockPatternUtils;
+    private boolean mFirstCallToVold;
 
     public LockSettingsService(Context context) {
         mContext = context;
@@ -86,6 +91,7 @@
         mOpenHelper = new DatabaseHelper(mContext);
 
         mLockPatternUtils = new LockPatternUtils(context);
+        mFirstCallToVold = true;
     }
 
     public void systemReady() {
@@ -347,6 +353,51 @@
     }
 
     @Override
+        public boolean checkVoldPassword(int userId) throws RemoteException {
+        if (!mFirstCallToVold) {
+            return false;
+        }
+        mFirstCallToVold = false;
+
+        checkPasswordReadPermission(userId);
+
+        // There's no guarantee that this will safely connect, but if it fails
+        // we will simply show the lock screen when we shouldn't, so relatively
+        // benign. There is an outside chance something nasty would happen if
+        // this service restarted before vold stales out the password in this
+        // case. The nastiness is limited to not showing the lock screen when
+        // we should, within the first minute of decrypting the phone if this
+        // service can't connect to vold, it restarts, and then the new instance
+        // does successfully connect.
+        final IMountService service = getMountService();
+        String password = service.getPassword();
+        service.clearPassword();
+        if (password == null) {
+            return false;
+        }
+
+        try {
+            if (mLockPatternUtils.isLockPatternEnabled()) {
+                if (checkPattern(password, userId)) {
+                    return true;
+                }
+            }
+        } catch (Exception e) {
+        }
+
+        try {
+            if (mLockPatternUtils.isLockPasswordEnabled()) {
+                if (checkPassword(password, userId)) {
+                    return true;
+                }
+            }
+        } catch (Exception e) {
+        }
+
+        return false;
+    }
+
+    @Override
     public void removeUser(int userId) {
         checkWritePermission(userId);
 
@@ -524,4 +575,12 @@
         Secure.LOCK_SCREEN_OWNER_INFO_ENABLED,
         Secure.LOCK_SCREEN_OWNER_INFO
     };
+
+    private IMountService getMountService() {
+        final IBinder service = ServiceManager.getService("mount");
+        if (service != null) {
+            return IMountService.Stub.asInterface(service);
+        }
+        return null;
+    }
 }
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
index cd74fed..7ec9b82 100644
--- a/services/core/java/com/android/server/MountService.java
+++ b/services/core/java/com/android/server/MountService.java
@@ -52,6 +52,7 @@
 import android.os.storage.IMountShutdownObserver;
 import android.os.storage.IObbActionListener;
 import android.os.storage.OnObbStateChangeListener;
+import android.os.storage.StorageManager;
 import android.os.storage.StorageResultCode;
 import android.os.storage.StorageVolume;
 import android.text.TextUtils;
@@ -74,6 +75,7 @@
 import com.google.android.collect.Maps;
 
 import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.codec.DecoderException;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.File;
@@ -157,6 +159,7 @@
         public static final int VolumeListResult               = 110;
         public static final int AsecListResult                 = 111;
         public static final int StorageUsersListResult         = 112;
+        public static final int CryptfsGetfieldResult          = 113;
 
         /*
          * 200 series - Requestion action has been successfully completed.
@@ -573,6 +576,14 @@
         }
     }
 
+    private boolean isReady() {
+        try {
+            return mConnectedSignal.await(0, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            return false;
+        }
+    }
+
     private void handleSystemReady() {
         // Snapshot current volume states since it's not safe to call into vold
         // while holding locks.
@@ -2075,12 +2086,25 @@
 
     private String toHex(String password) {
         if (password == null) {
-            return null;
+            return new String();
         }
         byte[] bytes = password.getBytes(StandardCharsets.UTF_8);
         return new String(Hex.encodeHex(bytes));
     }
 
+    private String fromHex(String hexPassword) {
+        if (hexPassword == null) {
+            return null;
+        }
+
+        try {
+            byte[] bytes = Hex.decodeHex(hexPassword.toCharArray());
+            return new String(bytes, StandardCharsets.UTF_8);
+        } catch (DecoderException e) {
+            return null;
+        }
+    }
+
     @Override
     public int decryptStorage(String password) {
         if (TextUtils.isEmpty(password)) {
@@ -2122,8 +2146,8 @@
         }
     }
 
-    public int encryptStorage(String password) {
-        if (TextUtils.isEmpty(password)) {
+    public int encryptStorage(int type, String password) {
+        if (TextUtils.isEmpty(password) && type != StorageManager.CRYPT_TYPE_DEFAULT) {
             throw new IllegalArgumentException("password cannot be empty");
         }
 
@@ -2137,7 +2161,7 @@
         }
 
         try {
-            mConnector.execute("cryptfs", "enablecrypto", "inplace",
+            mConnector.execute("cryptfs", "enablecrypto", "inplace", CRYPTO_TYPES[type],
                                new SensitiveArg(toHex(password)));
         } catch (NativeDaemonConnectorException e) {
             // Encryption failed
@@ -2229,6 +2253,78 @@
         }
     }
 
+    /**
+     * Set a field in the crypto header.
+     * @param field field to set
+     * @param contents contents to set in field
+     */
+    @Override
+    public void setField(String field, String contents) throws RemoteException {
+
+        waitForReady();
+
+        final NativeDaemonEvent event;
+        try {
+            event = mConnector.execute("cryptfs", "setfield", field, contents);
+        } catch (NativeDaemonConnectorException e) {
+            throw e.rethrowAsParcelableException();
+        }
+    }
+
+    /**
+     * Gets a field from the crypto header.
+     * @param field field to get
+     * @return contents of field
+     */
+    @Override
+    public String getField(String field) throws RemoteException {
+
+        waitForReady();
+
+        final NativeDaemonEvent event;
+        try {
+            final String[] contents = NativeDaemonEvent.filterMessageList(
+                    mConnector.executeForList("cryptfs", "getfield", field),
+                    VoldResponseCode.CryptfsGetfieldResult);
+            String result = new String();
+            for (String content : contents) {
+                result += content;
+            }
+            return result;
+        } catch (NativeDaemonConnectorException e) {
+            throw e.rethrowAsParcelableException();
+        }
+    }
+
+    @Override
+    public String getPassword() throws RemoteException {
+        if (!isReady()) {
+            return new String();
+        }
+
+        final NativeDaemonEvent event;
+        try {
+            event = mConnector.execute("cryptfs", "getpw");
+            return fromHex(event.getMessage());
+        } catch (NativeDaemonConnectorException e) {
+            throw e.rethrowAsParcelableException();
+        }
+    }
+
+    @Override
+    public void clearPassword() throws RemoteException {
+        if (!isReady()) {
+            return;
+        }
+
+        final NativeDaemonEvent event;
+        try {
+            event = mConnector.execute("cryptfs", "clearpw");
+        } catch (NativeDaemonConnectorException e) {
+            throw e.rethrowAsParcelableException();
+        }
+    }
+
     @Override
     public int mkdirs(String callingPkg, String appPath) {
         final int userId = UserHandle.getUserId(Binder.getCallingUid());
diff --git a/services/core/java/com/android/server/NsdService.java b/services/core/java/com/android/server/NsdService.java
index 1ed943c..fa803e2 100644
--- a/services/core/java/com/android/server/NsdService.java
+++ b/services/core/java/com/android/server/NsdService.java
@@ -35,14 +35,19 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
 import java.net.InetAddress;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 
 import com.android.internal.util.AsyncChannel;
 import com.android.internal.util.Protocol;
 import com.android.internal.util.State;
 import com.android.internal.util.StateMachine;
+import com.android.server.NativeDaemonConnector.Command;
 
 /**
  * Network Service Discovery Service handles remote service discovery operation requests by
@@ -433,14 +438,14 @@
                     case NativeResponseCode.SERVICE_FOUND:
                         /* NNN uniqueId serviceName regType domain */
                         if (DBG) Slog.d(TAG, "SERVICE_FOUND Raw: " + raw);
-                        servInfo = new NsdServiceInfo(cooked[2], cooked[3], null);
+                        servInfo = new NsdServiceInfo(cooked[2], cooked[3]);
                         clientInfo.mChannel.sendMessage(NsdManager.SERVICE_FOUND, 0,
                                 clientId, servInfo);
                         break;
                     case NativeResponseCode.SERVICE_LOST:
                         /* NNN uniqueId serviceName regType domain */
                         if (DBG) Slog.d(TAG, "SERVICE_LOST Raw: " + raw);
-                        servInfo = new NsdServiceInfo(cooked[2], cooked[3], null);
+                        servInfo = new NsdServiceInfo(cooked[2], cooked[3]);
                         clientInfo.mChannel.sendMessage(NsdManager.SERVICE_LOST, 0,
                                 clientId, servInfo);
                         break;
@@ -453,7 +458,7 @@
                     case NativeResponseCode.SERVICE_REGISTERED:
                         /* NNN regId serviceName regType */
                         if (DBG) Slog.d(TAG, "SERVICE_REGISTERED Raw: " + raw);
-                        servInfo = new NsdServiceInfo(cooked[2], null, null);
+                        servInfo = new NsdServiceInfo(cooked[2], null);
                         clientInfo.mChannel.sendMessage(NsdManager.REGISTER_SERVICE_SUCCEEDED,
                                 id, clientId, servInfo);
                         break;
@@ -673,9 +678,22 @@
     private boolean registerService(int regId, NsdServiceInfo service) {
         if (DBG) Slog.d(TAG, "registerService: " + regId + " " + service);
         try {
-            //Add txtlen and txtdata
-            mNativeConnector.execute("mdnssd", "register", regId, service.getServiceName(),
+            Command cmd = new Command("mdnssd", "register", regId, service.getServiceName(),
                     service.getServiceType(), service.getPort());
+
+            // Add TXT records as additional arguments.
+            Map<String, byte[]> txtRecords = service.getAttributes();
+            for (String key : txtRecords.keySet()) {
+                try {
+                    // TODO: Send encoded TXT record as bytes once NDC/netd supports binary data.
+                    cmd.appendArg(String.format(Locale.US, "%s=%s", key,
+                            new String(txtRecords.get(key), "UTF_8")));
+                } catch (UnsupportedEncodingException e) {
+                    Slog.e(TAG, "Failed to encode txtRecord " + e);
+                }
+            }
+
+            mNativeConnector.execute(cmd);
         } catch(NativeDaemonConnectorException e) {
             Slog.e(TAG, "Failed to execute registerService " + e);
             return false;
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index 94f699f..f59edc7 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -71,6 +71,7 @@
     private boolean mCarModeKeepsScreenOn;
     private boolean mDeskModeKeepsScreenOn;
     private boolean mTelevision;
+    private boolean mWatch;
     private boolean mComputedNightMode;
 
     int mCurUiMode = 0;
@@ -176,6 +177,7 @@
                 PackageManager.FEATURE_TELEVISION) ||
             context.getPackageManager().hasSystemFeature(
                     PackageManager.FEATURE_LEANBACK);
+        mWatch = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH);
 
         mNightMode = Settings.Secure.getInt(context.getContentResolver(),
                 Settings.Secure.UI_NIGHT_MODE, UiModeManager.MODE_NIGHT_AUTO);
@@ -339,8 +341,12 @@
     }
 
     private void updateConfigurationLocked() {
-        int uiMode = mTelevision ? Configuration.UI_MODE_TYPE_TELEVISION : mDefaultUiModeType;
-        if (mCarModeEnabled) {
+        int uiMode = mDefaultUiModeType;
+        if (mTelevision) {
+            uiMode = Configuration.UI_MODE_TYPE_TELEVISION;
+        } else if (mWatch) {
+            uiMode = Configuration.UI_MODE_TYPE_WATCH;
+        } else if (mCarModeEnabled) {
             uiMode = Configuration.UI_MODE_TYPE_CAR;
         } else if (isDeskDockState(mDockState)) {
             uiMode = Configuration.UI_MODE_TYPE_DESK;
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 5fa9084..7607419 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -24,7 +24,6 @@
 import static com.android.server.Watchdog.NATIVE_STACKS_OF_INTEREST;
 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
 import static org.xmlpull.v1.XmlPullParser.START_TAG;
-
 import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
 
 import android.app.AppOpsManager;
@@ -34,6 +33,7 @@
 import android.graphics.Rect;
 import android.os.BatteryStats;
 import android.util.ArrayMap;
+
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.app.IAppOpsService;
@@ -43,6 +43,7 @@
 import com.android.internal.os.BatteryStatsImpl;
 import com.android.internal.os.ProcessCpuTracker;
 import com.android.internal.os.TransferPipe;
+import com.android.internal.os.Zygote;
 import com.android.internal.util.FastPrintWriter;
 import com.android.internal.util.FastXmlSerializer;
 import com.android.internal.util.MemInfoReader;
@@ -50,6 +51,7 @@
 import com.android.server.AppOpsService;
 import com.android.server.AttributeCache;
 import com.android.server.IntentResolver;
+import com.android.server.LocalServices;
 import com.android.server.ServiceThread;
 import com.android.server.SystemService;
 import com.android.server.Watchdog;
@@ -61,8 +63,6 @@
 import com.google.android.collect.Lists;
 import com.google.android.collect.Maps;
 
-import dalvik.system.Zygote;
-
 import libcore.io.IoUtils;
 
 import org.xmlpull.v1.XmlPullParser;
@@ -73,6 +73,7 @@
 import android.app.ActivityManager;
 import android.app.ActivityManager.RunningTaskInfo;
 import android.app.ActivityManager.StackInfo;
+import android.app.ActivityManagerInternal;
 import android.app.ActivityManagerNative;
 import android.app.ActivityOptions;
 import android.app.ActivityThread;
@@ -799,9 +800,8 @@
     /**
      * Used to control how we initialize the service.
      */
-    boolean mStartRunning = false;
     ComponentName mTopComponent;
-    String mTopAction;
+    String mTopAction = Intent.ACTION_MAIN;
     String mTopData;
     boolean mProcessesReady = false;
     boolean mSystemReady = false;
@@ -945,6 +945,11 @@
      */
     boolean mDidDexOpt;
 
+    /**
+     * Set if the systemServer made a call to enterSafeMode.
+     */
+    boolean mSafeMode;
+
     String mDebugApp = null;
     boolean mWaitForDebugger = false;
     boolean mDebugTransient = false;
@@ -1015,7 +1020,7 @@
     final ActivityThread mSystemThread;
 
     int mCurrentUserId = 0;
-    int[] mRelatedUserIds = new int[0]; // Accessed by ActivityStack
+    int[] mCurrentProfileIds = new int[] {UserHandle.USER_OWNER}; // Accessed by ActivityStack
     private UserManagerService mUserManager;
 
     private final class AppDeathRecipient implements IBinder.DeathRecipient {
@@ -1074,7 +1079,7 @@
     static final int IMMERSIVE_MODE_LOCK_MSG = 37;
     static final int PERSIST_URI_GRANTS_MSG = 38;
     static final int REQUEST_ALL_PSS_MSG = 39;
-    static final int START_RELATED_USERS_MSG = 40;
+    static final int START_PROFILES_MSG = 40;
     static final int UPDATE_TIME = 41;
 
     static final int FIRST_ACTIVITY_STACK_MSG = 100;
@@ -1689,9 +1694,9 @@
                 requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false);
                 break;
             }
-            case START_RELATED_USERS_MSG: {
+            case START_PROFILES_MSG: {
                 synchronized (ActivityManagerService.this) {
-                    startRelatedUsersLocked();
+                    startProfilesLocked();
                 }
                 break;
             }
@@ -2024,7 +2029,8 @@
         mBatteryStatsService.publish(mContext);
         mUsageStatsService.publish(mContext);
         mAppOpsService.publish(mContext);
-        startRunning(null, null, null, null);
+
+        LocalServices.addService(ActivityManagerInternal.class, new LocalService());
     }
 
     @Override
@@ -2737,7 +2743,7 @@
             // Run the app in safe mode if its manifest requests so or the
             // system is booted in safe mode.
             if ((app.info.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0 ||
-                Zygote.systemInSafeMode == true) {
+                mSafeMode == true) {
                 debugFlags |= Zygote.DEBUG_ENABLE_SAFEMODE;
             }
             if ("1".equals(SystemProperties.get("debug.checkjni"))) {
@@ -2750,11 +2756,16 @@
                 debugFlags |= Zygote.DEBUG_ENABLE_ASSERT;
             }
 
+            String requiredAbi = app.info.requiredCpuAbi;
+            if (requiredAbi == null) {
+                requiredAbi = Build.SUPPORTED_ABIS[0];
+            }
+
             // Start the process.  It will either succeed and return a result containing
             // the PID of the new process, or else throw a RuntimeException.
             Process.ProcessStartResult startResult = Process.start("android.app.ActivityThread",
                     app.processName, uid, uid, gids, debugFlags, mountExternal,
-                    app.info.targetSdkVersion, app.info.seinfo, null);
+                    app.info.targetSdkVersion, app.info.seinfo, requiredAbi, null);
 
             BatteryStatsImpl bs = mBatteryStatsService.getActiveStatistics();
             synchronized (bs) {
@@ -5204,7 +5215,7 @@
                                 userId);
                     }
                 }
-                scheduleStartRelatedUsersLocked();
+                scheduleStartProfilesLocked();
             }
         }
     }
@@ -6859,8 +6870,8 @@
                             maxNum < N ? maxNum : N);
 
             final Set<Integer> includedUsers;
-            if ((flags & ActivityManager.RECENT_INCLUDE_RELATED) != 0) {
-                includedUsers = getRelatedUsersLocked(userId);
+            if ((flags & ActivityManager.RECENT_INCLUDE_PROFILES) != 0) {
+                includedUsers = getProfileIdsLocked(userId);
             } else {
                 includedUsers = new HashSet<Integer>();
             }
@@ -6895,18 +6906,27 @@
                     rti.stackId = tr.stack.mStackId;
                     rti.userId = tr.userId;
 
+                    // Traverse upwards looking for any break between main task activities and
+                    // utility activities.
                     final ArrayList<ActivityRecord> activities = tr.mActivities;
-                    int numSet = 0;
-                    for (int activityNdx = activities.size() - 1; activityNdx >= 0 && numSet < 2;
-                            --activityNdx) {
+                    int activityNdx;
+                    final int numActivities = activities.size();
+                    for (activityNdx = Math.min(numActivities, 1); activityNdx < numActivities;
+                            ++activityNdx) {
                         final ActivityRecord r = activities.get(activityNdx);
-                        if (rti.activityLabel == null && r.recentsLabel != null) {
-                            rti.activityLabel = r.recentsLabel;
-                            ++numSet;
+                        if (r.intent != null &&
+                                (r.intent.getFlags() & Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET)
+                                        != 0) {
+                            break;
                         }
-                        if (rti.activityIcon == null && r.recentsIcon != null) {
-                            rti.activityIcon = r.recentsIcon;
-                            ++numSet;
+                    }
+                    // Traverse downwards starting below break looking for set label and icon.
+                    for (--activityNdx; activityNdx >= 0; --activityNdx) {
+                        final ActivityRecord r = activities.get(activityNdx);
+                        if (r.activityLabel != null || r.activityIcon != null) {
+                            rti.activityLabel = r.activityLabel;
+                            rti.activityIcon = r.activityIcon;
+                            break;
                         }
                     }
 
@@ -6975,21 +6995,13 @@
     }
 
     @Override
-    public void setRecentsLabel(IBinder token, CharSequence recentsLabel) {
+    public void setActivityLabelAndIcon(IBinder token, CharSequence activityLabel,
+            Bitmap activityIcon) {
         synchronized (this) {
             ActivityRecord r = ActivityRecord.isInStackLocked(token);
             if (r != null) {
-                r.recentsLabel = recentsLabel.toString();
-            }
-        }
-    }
-
-    @Override
-    public void setRecentsIcon(IBinder token, Bitmap recentsIcon) {
-        synchronized (this) {
-            ActivityRecord r = ActivityRecord.isInStackLocked(token);
-            if (r != null) {
-                r.recentsIcon = recentsIcon;
+                r.activityLabel = activityLabel.toString();
+                r.activityIcon = activityIcon;
             }
         }
     }
@@ -8417,13 +8429,7 @@
         return mSleeping || mShuttingDown;
     }
 
-    public void goingToSleep() {
-        if (checkCallingPermission(android.Manifest.permission.DEVICE_POWER)
-                != PackageManager.PERMISSION_GRANTED) {
-            throw new SecurityException("Requires permission "
-                    + android.Manifest.permission.DEVICE_POWER);
-        }
-
+    void goingToSleep() {
         synchronized(this) {
             mWentToSleep = true;
             updateEventDispatchingLocked();
@@ -8498,13 +8504,7 @@
         }
     }
 
-    public void wakingUp() {
-        if (checkCallingPermission(android.Manifest.permission.DEVICE_POWER)
-                != PackageManager.PERMISSION_GRANTED) {
-            throw new SecurityException("Requires permission "
-                    + android.Manifest.permission.DEVICE_POWER);
-        }
-
+    void wakingUp() {
         synchronized(this) {
             mWentToSleep = false;
             updateEventDispatchingLocked();
@@ -8963,6 +8963,8 @@
                 } catch (RemoteException e) {
                 }
             }
+
+            mSafeMode = true;
         }
     }
 
@@ -9225,25 +9227,6 @@
         }
     }
 
-    public final void startRunning(String pkg, String cls, String action,
-            String data) {
-        synchronized(this) {
-            if (mStartRunning) {
-                return;
-            }
-            mStartRunning = true;
-            mTopComponent = pkg != null && cls != null
-                    ? new ComponentName(pkg, cls) : null;
-            mTopAction = action != null ? action : Intent.ACTION_MAIN;
-            mTopData = data;
-            if (!mSystemReady) {
-                return;
-            }
-        }
-
-        systemReady(null);
-    }
-
     private void retrieveSettings() {
         final ContentResolver resolver = mContext.getContentResolver();
         String debugApp = Settings.Global.getString(
@@ -9456,9 +9439,6 @@
 
             mAppOpsService.systemReady();
             mSystemReady = true;
-            if (!mStartRunning) {
-                return;
-            }
         }
 
         ArrayList<ProcessRecord> procsToKill = null;
@@ -11138,8 +11118,7 @@
             }
             if (dumpAll) {
                 pw.println("  Total persistent processes: " + numPers);
-                pw.println("  mStartRunning=" + mStartRunning
-                        + " mProcessesReady=" + mProcessesReady
+                pw.println("  mProcessesReady=" + mProcessesReady
                         + " mSystemReady=" + mSystemReady);
                 pw.println("  mBooting=" + mBooting
                         + " mBooted=" + mBooted
@@ -16311,19 +16290,19 @@
      * user switch happens or when a new related user is started in the
      * background.
      */
-    private void updateRelatedUserIdsLocked() {
-        final List<UserInfo> relatedUsers = getUserManagerLocked().getRelatedUsers(mCurrentUserId);
-        int[] relatedUserIds = new int[relatedUsers.size()]; // relatedUsers will not be null
-        for (int i = 0; i < relatedUserIds.length; i++) {
-            relatedUserIds[i] = relatedUsers.get(i).id;
+    private void updateCurrentProfileIdsLocked() {
+        final List<UserInfo> profiles = getUserManagerLocked().getProfiles(mCurrentUserId);
+        int[] currentProfileIds = new int[profiles.size()]; // profiles will not be null
+        for (int i = 0; i < currentProfileIds.length; i++) {
+            currentProfileIds[i] = profiles.get(i).id;
         }
-        mRelatedUserIds = relatedUserIds;
+        mCurrentProfileIds = currentProfileIds;
     }
 
-    private Set getRelatedUsersLocked(int userId) {
+    private Set getProfileIdsLocked(int userId) {
         Set userIds = new HashSet<Integer>();
-        final List<UserInfo> relatedUsers = getUserManagerLocked().getRelatedUsers(userId);
-        for (UserInfo user : relatedUsers) {
+        final List<UserInfo> profiles = getUserManagerLocked().getProfiles(userId);
+        for (UserInfo user : profiles) {
             userIds.add(Integer.valueOf(user.id));
         }
         return userIds;
@@ -16384,15 +16363,15 @@
 
                 if (foreground) {
                     mCurrentUserId = userId;
-                    updateRelatedUserIdsLocked();
-                    mWindowManager.setCurrentUser(userId, mRelatedUserIds);
+                    updateCurrentProfileIdsLocked();
+                    mWindowManager.setCurrentUser(userId, mCurrentProfileIds);
                     // Once the internal notion of the active user has switched, we lock the device
                     // with the option to show the user switcher on the keyguard.
                     mWindowManager.lockNow(null);
                 } else {
                     final Integer currentUserIdInt = Integer.valueOf(mCurrentUserId);
-                    updateRelatedUserIdsLocked();
-                    mWindowManager.updateRelatedUserIds(mRelatedUserIds);
+                    updateCurrentProfileIdsLocked();
+                    mWindowManager.setCurrentProfileIds(mCurrentProfileIds);
                     mUserLru.remove(currentUserIdInt);
                     mUserLru.add(currentUserIdInt);
                 }
@@ -16612,20 +16591,21 @@
         }
     }
 
-    void scheduleStartRelatedUsersLocked() {
-        if (!mHandler.hasMessages(START_RELATED_USERS_MSG)) {
-            mHandler.sendMessageDelayed(mHandler.obtainMessage(START_RELATED_USERS_MSG),
+    void scheduleStartProfilesLocked() {
+        if (!mHandler.hasMessages(START_PROFILES_MSG)) {
+            mHandler.sendMessageDelayed(mHandler.obtainMessage(START_PROFILES_MSG),
                     DateUtils.SECOND_IN_MILLIS);
         }
     }
 
-    void startRelatedUsersLocked() {
-        if (DEBUG_MU) Slog.i(TAG_MU, "startRelatedUsersLocked");
-        List<UserInfo> relatedUsers = getUserManagerLocked().getRelatedUsers(mCurrentUserId);
-        List<UserInfo> toStart = new ArrayList<UserInfo>(relatedUsers.size());
-        for (UserInfo relatedUser : relatedUsers) {
-            if ((relatedUser.flags & UserInfo.FLAG_INITIALIZED) == UserInfo.FLAG_INITIALIZED) {
-                toStart.add(relatedUser);
+    void startProfilesLocked() {
+        if (DEBUG_MU) Slog.i(TAG_MU, "startProfilesLocked");
+        List<UserInfo> profiles = getUserManagerLocked().getProfiles(mCurrentUserId);
+        List<UserInfo> toStart = new ArrayList<UserInfo>(profiles.size());
+        for (UserInfo user : profiles) {
+            if ((user.flags & UserInfo.FLAG_INITIALIZED) == UserInfo.FLAG_INITIALIZED
+                    && user.id != mCurrentUserId) {
+                toStart.add(user);
             }
         }
         final int n = toStart.size();
@@ -16634,7 +16614,7 @@
             startUserInBackground(toStart.get(i).id);
         }
         if (i < n) {
-            Slog.w(TAG_MU, "More related users than MAX_RUNNING_USERS");
+            Slog.w(TAG_MU, "More profiles than MAX_RUNNING_USERS");
         }
     }
 
@@ -16653,7 +16633,7 @@
                         true, false, MY_PID, Process.SYSTEM_UID, userId);
             }
 
-            startRelatedUsersLocked();
+            startProfilesLocked();
 
             int num = mUserLru.size();
             int i = 0;
@@ -16973,4 +16953,16 @@
         info.applicationInfo = getAppInfoForUser(info.applicationInfo, userId);
         return info;
     }
+
+    private final class LocalService extends ActivityManagerInternal {
+        @Override
+        public void goingToSleep() {
+            ActivityManagerService.this.goingToSleep();
+        }
+
+        @Override
+        public void wakingUp() {
+            ActivityManagerService.this.wakingUp();
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
old mode 100644
new mode 100755
index 77f5c59..d596472
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -148,8 +148,8 @@
     boolean mStartingWindowShown = false;
     ActivityContainer mInitialActivityContainer;
 
-    String recentsLabel;
-    Bitmap recentsIcon;
+    String activityLabel;
+    Bitmap activityIcon;
 
     void dump(PrintWriter pw, String prefix) {
         final long now = SystemClock.uptimeMillis();
@@ -522,13 +522,6 @@
         if (fullscreen == toOpaque) {
             return false;
         }
-        AttributeCache.Entry ent =
-                AttributeCache.instance().get(packageName, realTheme, styleable.Window, userId);
-        if (ent == null
-                || !ent.array.getBoolean(styleable.Window_windowIsTranslucent, false)
-                || ent.array.getBoolean(styleable.Window_windowIsFloating, false)) {
-            return false;
-        }
 
         // Keep track of the number of fullscreen activities in this task.
         task.numFullscreen += toOpaque ? +1 : -1;
@@ -956,8 +949,8 @@
         // for another app to start, then we have paused dispatching
         // for this activity.
         ActivityRecord r = this;
-        final ActivityStack stack = task.stack;
         if (r.waitingVisible) {
+            final ActivityStack stack = mStackSupervisor.getFocusedStack();
             // Hmmm, who might we be waiting for?
             r = stack.mResumedActivity;
             if (r == null) {
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 3db3a26..b894724 100755
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -341,18 +341,18 @@
     }
 
     /**
-     * Checks whether the userid is either the current user or a related user.
+     * Checks whether the userid is a profile of the current user.
      */
-    private boolean isRelatedToOrCurrentUserLocked(int userId) {
-        if (mCurrentUser == userId) return true;
-        for (int i = 0; i < mService.mRelatedUserIds.length; i++) {
-            if (mService.mRelatedUserIds[i] == userId) return true;
+    private boolean isCurrentProfileLocked(int userId) {
+        if (userId == mCurrentUser) return true;
+        for (int i = 0; i < mService.mCurrentProfileIds.length; i++) {
+            if (mService.mCurrentProfileIds[i] == userId) return true;
         }
         return false;
     }
 
     boolean okToShowLocked(ActivityRecord r) {
-        return isRelatedToOrCurrentUserLocked(r.userId)
+        return isCurrentProfileLocked(r.userId)
                 || (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0;
     }
 
@@ -571,7 +571,7 @@
 
         for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
             TaskRecord task = mTaskHistory.get(taskNdx);
-            if (!isRelatedToOrCurrentUserLocked(task.userId)) {
+            if (!isCurrentProfileLocked(task.userId)) {
                 return null;
             }
             final ArrayList<ActivityRecord> activities = task.mActivities;
@@ -602,7 +602,7 @@
         int index = mTaskHistory.size();
         for (int i = 0; i < index; ) {
             TaskRecord task = mTaskHistory.get(i);
-            if (isRelatedToOrCurrentUserLocked(task.userId)) {
+            if (isCurrentProfileLocked(task.userId)) {
                 if (DEBUG_TASKS) Slog.d(TAG, "switchUserLocked: stack=" + getStackId() +
                         " moving " + task + " to top");
                 mTaskHistory.remove(i);
@@ -1189,6 +1189,7 @@
                         // At this point, nothing else needs to be shown
                         if (DEBUG_VISBILITY) Slog.v(TAG, "Fullscreen: at " + r);
                         behindFullscreen = true;
+                        showHomeBehindStack = false;
                     } else if (isActivityOverHome(r)) {
                         if (DEBUG_VISBILITY) Slog.v(TAG, "Showing home: at " + r);
                         showHomeBehindStack = true;
@@ -1765,10 +1766,10 @@
         mTaskHistory.remove(task);
         // Now put task at top.
         int stackNdx = mTaskHistory.size();
-        if (!isRelatedToOrCurrentUserLocked(task.userId)) {
+        if (!isCurrentProfileLocked(task.userId)) {
             // Put non-current user tasks below current user tasks.
             while (--stackNdx >= 0) {
-                if (!isRelatedToOrCurrentUserLocked(mTaskHistory.get(stackNdx).userId)) {
+                if (!isCurrentProfileLocked(mTaskHistory.get(stackNdx).userId)) {
                     break;
                 }
             }
@@ -2707,6 +2708,9 @@
         if (mResumedActivity == r) {
             mResumedActivity = null;
         }
+        if (mPausingActivity == r) {
+            mPausingActivity = null;
+        }
         if (mService.mFocusedActivity == r) {
             mService.mFocusedActivity = null;
         }
diff --git a/services/core/java/com/android/server/display/AutomaticBrightnessController.java b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
new file mode 100644
index 0000000..5fa1584
--- /dev/null
+++ b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
@@ -0,0 +1,688 @@
+/*
+ * 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.android.server.display;
+
+import com.android.server.LocalServices;
+import com.android.server.twilight.TwilightListener;
+import com.android.server.twilight.TwilightManager;
+import com.android.server.twilight.TwilightState;
+
+import android.content.res.Resources;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.hardware.display.DisplayManagerInternal;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.SystemClock;
+import android.text.format.DateUtils;
+import android.util.MathUtils;
+import android.util.Spline;
+import android.util.Slog;
+import android.util.TimeUtils;
+
+import java.io.PrintWriter;
+import java.util.Arrays;
+
+class AutomaticBrightnessController {
+    private static final String TAG = "AutomaticBrightnessController";
+
+    private static final boolean DEBUG = false;
+    private static final boolean DEBUG_PRETEND_LIGHT_SENSOR_ABSENT = false;
+
+    // If true, enables the use of the screen auto-brightness adjustment setting.
+    private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT =
+            PowerManager.useScreenAutoBrightnessAdjustmentFeature();
+
+    // The maximum range of gamma adjustment possible using the screen
+    // auto-brightness adjustment setting.
+    private static final float SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT_MAX_GAMMA = 3.0f;
+
+    // Light sensor event rate in milliseconds.
+    private static final int LIGHT_SENSOR_RATE_MILLIS = 1000;
+
+    // Period of time in which to consider light samples in milliseconds.
+    private static final int AMBIENT_LIGHT_HORIZON = 10000;
+
+    // Stability requirements in milliseconds for accepting a new brightness level.  This is used
+    // for debouncing the light sensor.  Different constants are used to debounce the light sensor
+    // when adapting to brighter or darker environments.  This parameter controls how quickly
+    // brightness changes occur in response to an observed change in light level that exceeds the
+    // hysteresis threshold.
+    private static final long BRIGHTENING_LIGHT_DEBOUNCE = 4000;
+    private static final long DARKENING_LIGHT_DEBOUNCE = 8000;
+
+    // Hysteresis constraints for brightening or darkening.
+    // The recent lux must have changed by at least this fraction relative to the
+    // current ambient lux before a change will be considered.
+    private static final float BRIGHTENING_LIGHT_HYSTERESIS = 0.10f;
+    private static final float DARKENING_LIGHT_HYSTERESIS = 0.20f;
+
+    // The intercept used for the weighting calculation. This is used in order to keep all possible
+    // weighting values positive.
+    private static final int WEIGHTING_INTERCEPT = AMBIENT_LIGHT_HORIZON;
+
+    // How long the current sensor reading is assumed to be valid beyond the current time.
+    // This provides a bit of prediction, as well as ensures that the weight for the last sample is
+    // non-zero, which in turn ensures that the total weight is non-zero.
+    private static final long AMBIENT_LIGHT_PREDICTION_TIME_MILLIS = 100;
+
+    // If true, enables the use of the current time as an auto-brightness adjustment.
+    // The basic idea here is to expand the dynamic range of auto-brightness
+    // when it is especially dark outside.  The light sensor tends to perform
+    // poorly at low light levels so we compensate for it by making an
+    // assumption about the environment.
+    private static final boolean USE_TWILIGHT_ADJUSTMENT =
+            PowerManager.useTwilightAdjustmentFeature();
+
+    // Specifies the maximum magnitude of the time of day adjustment.
+    private static final float TWILIGHT_ADJUSTMENT_MAX_GAMMA = 1.5f;
+
+    // The amount of time after or before sunrise over which to start adjusting
+    // the gamma.  We want the change to happen gradually so that it is below the
+    // threshold of perceptibility and so that the adjustment has maximum effect
+    // well after dusk.
+    private static final long TWILIGHT_ADJUSTMENT_TIME = DateUtils.HOUR_IN_MILLIS * 2;
+
+    private static final int MSG_UPDATE_AMBIENT_LUX = 1;
+
+    // Callbacks for requesting updates to the the display's power state
+    private final Callbacks mCallbacks;
+
+    // The sensor manager.
+    private final SensorManager mSensorManager;
+
+    // The light sensor, or null if not available or needed.
+    private final Sensor mLightSensor;
+
+    // The twilight service.
+    private final TwilightManager mTwilight;
+
+    // The auto-brightness spline adjustment.
+    // The brightness values have been scaled to a range of 0..1.
+    private final Spline mScreenAutoBrightnessSpline;
+
+    // The minimum and maximum screen brightnesses.
+    private final int mScreenBrightnessRangeMinimum;
+    private final int mScreenBrightnessRangeMaximum;
+
+    // Amount of time to delay auto-brightness after screen on while waiting for
+    // the light sensor to warm-up in milliseconds.
+    // May be 0 if no warm-up is required.
+    private int mLightSensorWarmUpTimeConfig;
+
+    // Set to true if the light sensor is enabled.
+    private boolean mLightSensorEnabled;
+
+    // The time when the light sensor was enabled.
+    private long mLightSensorEnableTime;
+
+    // The currently accepted nominal ambient light level.
+    private float mAmbientLux;
+
+    // True if mAmbientLux holds a valid value.
+    private boolean mAmbientLuxValid;
+
+    // The ambient light level threshold at which to brighten or darken the screen.
+    private float mBrighteningLuxThreshold;
+    private float mDarkeningLuxThreshold;
+
+    // The most recent light sample.
+    private float mLastObservedLux;
+
+    // The time of the most light recent sample.
+    private long mLastObservedLuxTime;
+
+    // The number of light samples collected since the light sensor was enabled.
+    private int mRecentLightSamples;
+
+    // A ring buffer containing all of the recent ambient light sensor readings.
+    private AmbientLightRingBuffer mAmbientLightRingBuffer;
+
+    // The handler
+    private AutomaticBrightnessHandler mHandler;
+
+    // The screen brightness level that has been chosen by the auto-brightness
+    // algorithm.  The actual brightness should ramp towards this value.
+    // We preserve this value even when we stop using the light sensor so
+    // that we can quickly revert to the previous auto-brightness level
+    // while the light sensor warms up.
+    // Use -1 if there is no current auto-brightness value available.
+    private int mScreenAutoBrightness = -1;
+
+    // The screen auto-brightness adjustment factor in the range -1 (dimmer) to 1 (brighter)
+    private float mScreenAutoBrightnessAdjustment = 0.0f;
+
+    // The last screen auto-brightness gamma.  (For printing in dump() only.)
+    private float mLastScreenAutoBrightnessGamma = 1.0f;
+
+    public AutomaticBrightnessController(Callbacks callbacks, Looper looper,
+            SensorManager sensorManager, Spline autoBrightnessSpline,
+            int lightSensorWarmUpTime, int brightnessMin, int brightnessMax) {
+        mCallbacks = callbacks;
+        mTwilight = LocalServices.getService(TwilightManager.class);
+        mSensorManager = sensorManager;
+        mScreenAutoBrightnessSpline = autoBrightnessSpline;
+        mScreenBrightnessRangeMinimum = brightnessMin;
+        mScreenBrightnessRangeMaximum = brightnessMax;
+        mLightSensorWarmUpTimeConfig = lightSensorWarmUpTime;
+
+        mHandler = new AutomaticBrightnessHandler(looper);
+        mAmbientLightRingBuffer = new AmbientLightRingBuffer();
+
+        if (!DEBUG_PRETEND_LIGHT_SENSOR_ABSENT) {
+            mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
+        }
+
+        if (USE_TWILIGHT_ADJUSTMENT) {
+            mTwilight.registerListener(mTwilightListener, mHandler);
+        }
+    }
+
+    public int getAutomaticScreenBrightness() {
+        return mScreenAutoBrightness;
+    }
+
+    public void updatePowerState(DisplayManagerInternal.DisplayPowerRequest request) {
+        if (setScreenAutoBrightnessAdjustment(request.screenAutoBrightnessAdjustment)
+                || setLightSensorEnabled(request.wantLightSensorEnabled())) {
+            updateAutoBrightness(false /*sendUpdate*/);
+        }
+    }
+
+    public void dump(PrintWriter pw) {
+        pw.println();
+        pw.println("Automatic Brightness Controller Configuration:");
+        pw.println("  mScreenAutoBrightnessSpline=" + mScreenAutoBrightnessSpline);
+        pw.println("  mScreenBrightnessRangeMinimum=" + mScreenBrightnessRangeMinimum);
+        pw.println("  mScreenBrightnessRangeMaximum=" + mScreenBrightnessRangeMaximum);
+        pw.println("  mLightSensorWarmUpTimeConfig=" + mLightSensorWarmUpTimeConfig);
+
+        pw.println();
+        pw.println("Automatic Brightness Controller State:");
+        pw.println("  mLightSensor=" + mLightSensor);
+        pw.println("  mTwilight.getCurrentState()=" + mTwilight.getCurrentState());
+        pw.println("  mLightSensorEnabled=" + mLightSensorEnabled);
+        pw.println("  mLightSensorEnableTime=" + TimeUtils.formatUptime(mLightSensorEnableTime));
+        pw.println("  mAmbientLux=" + mAmbientLux);
+        pw.println("  mBrighteningLuxThreshold=" + mBrighteningLuxThreshold);
+        pw.println("  mDarkeningLuxThreshold=" + mDarkeningLuxThreshold);
+        pw.println("  mLastObservedLux=" + mLastObservedLux);
+        pw.println("  mLastObservedLuxTime=" + TimeUtils.formatUptime(mLastObservedLuxTime));
+        pw.println("  mRecentLightSamples=" + mRecentLightSamples);
+        pw.println("  mAmbientLightRingBuffer=" + mAmbientLightRingBuffer);
+        pw.println("  mScreenAutoBrightness=" + mScreenAutoBrightness);
+        pw.println("  mScreenAutoBrightnessAdjustment=" + mScreenAutoBrightnessAdjustment);
+        pw.println("  mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
+    }
+
+    private boolean setLightSensorEnabled(boolean enable) {
+        if (enable) {
+            if (!mLightSensorEnabled) {
+                mLightSensorEnabled = true;
+                mLightSensorEnableTime = SystemClock.uptimeMillis();
+                mSensorManager.registerListener(mLightSensorListener, mLightSensor,
+                        LIGHT_SENSOR_RATE_MILLIS * 1000, mHandler);
+                return true;
+            }
+        } else {
+            if (mLightSensorEnabled) {
+                mLightSensorEnabled = false;
+                mAmbientLuxValid = false;
+                mRecentLightSamples = 0;
+                mAmbientLightRingBuffer.clear();
+                mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
+                mSensorManager.unregisterListener(mLightSensorListener);
+            }
+        }
+        return false;
+    }
+
+    private void handleLightSensorEvent(long time, float lux) {
+        mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
+
+        applyLightSensorMeasurement(time, lux);
+        updateAmbientLux(time);
+    }
+
+    private void applyLightSensorMeasurement(long time, float lux) {
+        mRecentLightSamples++;
+        mAmbientLightRingBuffer.prune(time - AMBIENT_LIGHT_HORIZON);
+        mAmbientLightRingBuffer.push(time, lux);
+
+        // Remember this sample value.
+        mLastObservedLux = lux;
+        mLastObservedLuxTime = time;
+    }
+
+    private boolean setScreenAutoBrightnessAdjustment(float adjustment) {
+        if (adjustment != mScreenAutoBrightnessAdjustment) {
+            mScreenAutoBrightnessAdjustment = adjustment;
+            return true;
+        }
+        return false;
+    }
+
+    private void setAmbientLux(float lux) {
+        mAmbientLux = lux;
+        mBrighteningLuxThreshold = mAmbientLux * (1.0f + BRIGHTENING_LIGHT_HYSTERESIS);
+        mDarkeningLuxThreshold = mAmbientLux * (1.0f - DARKENING_LIGHT_HYSTERESIS);
+    }
+
+    private float calculateAmbientLux(long now) {
+        final int N = mAmbientLightRingBuffer.size();
+        if (N == 0) {
+            Slog.e(TAG, "calculateAmbientLux: No ambient light readings available");
+            return -1;
+        }
+        float sum = 0;
+        float totalWeight = 0;
+        long endTime = AMBIENT_LIGHT_PREDICTION_TIME_MILLIS;
+        for (int i = N - 1; i >= 0; i--) {
+            long startTime = (mAmbientLightRingBuffer.getTime(i) - now);
+            float weight = calculateWeight(startTime, endTime);
+            float lux = mAmbientLightRingBuffer.getLux(i);
+            if (DEBUG) {
+                Slog.d(TAG, "calculateAmbientLux: [" +
+                        (startTime) + ", " +
+                        (endTime) + "]: lux=" + lux + ", weight=" + weight);
+            }
+            totalWeight += weight;
+            sum += mAmbientLightRingBuffer.getLux(i) * weight;
+            endTime = startTime;
+        }
+        if (DEBUG) {
+            Slog.d(TAG, "calculateAmbientLux: totalWeight=" + totalWeight +
+                    ", newAmbientLux=" + (sum / totalWeight));
+        }
+        return sum / totalWeight;
+    }
+
+    private static float calculateWeight(long startDelta, long endDelta) {
+        return weightIntegral(endDelta) - weightIntegral(startDelta);
+    }
+
+    // Evaluates the integral of y = x + WEIGHTING_INTERCEPT. This is always positive for the
+    // horizon we're looking at and provides a non-linear weighting for light samples.
+    private static float weightIntegral(long x) {
+        return x * (x * 0.5f + WEIGHTING_INTERCEPT);
+    }
+
+    private long nextAmbientLightBrighteningTransition(long time) {
+        final int N = mAmbientLightRingBuffer.size();
+        long earliestValidTime = time;
+        for (int i = N - 1; i >= 0; i--) {
+            if (mAmbientLightRingBuffer.getLux(i) <= mBrighteningLuxThreshold) {
+                break;
+            }
+            earliestValidTime = mAmbientLightRingBuffer.getTime(i);
+        }
+        return earliestValidTime + BRIGHTENING_LIGHT_DEBOUNCE;
+    }
+
+    private long nextAmbientLightDarkeningTransition(long time) {
+        final int N = mAmbientLightRingBuffer.size();
+        long earliestValidTime = time;
+        for (int i = N - 1; i >= 0; i--) {
+            if (mAmbientLightRingBuffer.getLux(i) >= mDarkeningLuxThreshold) {
+                break;
+            }
+            earliestValidTime = mAmbientLightRingBuffer.getTime(i);
+        }
+        return earliestValidTime + DARKENING_LIGHT_DEBOUNCE;
+    }
+
+    private void updateAmbientLux() {
+        long time = SystemClock.uptimeMillis();
+        mAmbientLightRingBuffer.prune(time - AMBIENT_LIGHT_HORIZON);
+        updateAmbientLux(time);
+    }
+
+    private void updateAmbientLux(long time) {
+        // If the light sensor was just turned on then immediately update our initial
+        // estimate of the current ambient light level.
+        if (!mAmbientLuxValid) {
+            final long timeWhenSensorWarmedUp =
+                mLightSensorWarmUpTimeConfig + mLightSensorEnableTime;
+            if (time < timeWhenSensorWarmedUp) {
+                if (DEBUG) {
+                    Slog.d(TAG, "updateAmbientLux: Sensor not  ready yet: "
+                            + "time=" + time
+                            + ", timeWhenSensorWarmedUp=" + timeWhenSensorWarmedUp);
+                }
+                mHandler.sendEmptyMessageAtTime(MSG_UPDATE_AMBIENT_LUX,
+                        timeWhenSensorWarmedUp);
+                return;
+            }
+            setAmbientLux(calculateAmbientLux(time));
+            mAmbientLuxValid = true;
+            if (DEBUG) {
+                Slog.d(TAG, "updateAmbientLux: Initializing: "
+                        + "mAmbientLightRingBuffer=" + mAmbientLightRingBuffer
+                        + ", mAmbientLux=" + mAmbientLux);
+            }
+            updateAutoBrightness(true);
+        }
+
+        long nextBrightenTransition = nextAmbientLightBrighteningTransition(time);
+        long nextDarkenTransition = nextAmbientLightDarkeningTransition(time);
+        float ambientLux = calculateAmbientLux(time);
+
+        if (ambientLux >= mBrighteningLuxThreshold && nextBrightenTransition <= time
+                || ambientLux <= mDarkeningLuxThreshold && nextDarkenTransition <= time) {
+            setAmbientLux(ambientLux);
+            if (DEBUG) {
+                Slog.d(TAG, "updateAmbientLux: "
+                        + ((ambientLux > mAmbientLux) ? "Brightened" : "Darkened") + ": "
+                        + "mBrighteningLuxThreshold=" + mBrighteningLuxThreshold
+                        + ", mAmbientLightRingBuffer=" + mAmbientLightRingBuffer
+                        + ", mAmbientLux=" + mAmbientLux);
+            }
+            updateAutoBrightness(true);
+            nextBrightenTransition = nextAmbientLightBrighteningTransition(time);
+            nextDarkenTransition = nextAmbientLightDarkeningTransition(time);
+        }
+        long nextTransitionTime = Math.min(nextDarkenTransition, nextBrightenTransition);
+        // If one of the transitions is ready to occur, but the total weighted ambient lux doesn't
+        // exceed the necessary threshold, then it's possible we'll get a transition time prior to
+        // now. Rather than continually checking to see whether the weighted lux exceeds the
+        // threshold, schedule an update for when we'd normally expect another light sample, which
+        // should be enough time to decide whether we should actually transition to the new
+        // weighted ambient lux or not.
+        nextTransitionTime =
+                nextTransitionTime > time ? nextTransitionTime : time + LIGHT_SENSOR_RATE_MILLIS;
+        if (DEBUG) {
+            Slog.d(TAG, "updateAmbientLux: Scheduling ambient lux update for "
+                    + nextTransitionTime + TimeUtils.formatUptime(nextTransitionTime));
+        }
+        mHandler.sendEmptyMessageAtTime(MSG_UPDATE_AMBIENT_LUX, nextTransitionTime);
+    }
+
+    private void updateAutoBrightness(boolean sendUpdate) {
+        if (!mAmbientLuxValid) {
+            return;
+        }
+
+        float value = mScreenAutoBrightnessSpline.interpolate(mAmbientLux);
+        float gamma = 1.0f;
+
+        if (USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT
+                && mScreenAutoBrightnessAdjustment != 0.0f) {
+            final float adjGamma = MathUtils.pow(SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT_MAX_GAMMA,
+                    Math.min(1.0f, Math.max(-1.0f, -mScreenAutoBrightnessAdjustment)));
+            gamma *= adjGamma;
+            if (DEBUG) {
+                Slog.d(TAG, "updateAutoBrightness: adjGamma=" + adjGamma);
+            }
+        }
+
+        if (USE_TWILIGHT_ADJUSTMENT) {
+            TwilightState state = mTwilight.getCurrentState();
+            if (state != null && state.isNight()) {
+                final long now = System.currentTimeMillis();
+                final float earlyGamma =
+                        getTwilightGamma(now, state.getYesterdaySunset(), state.getTodaySunrise());
+                final float lateGamma =
+                        getTwilightGamma(now, state.getTodaySunset(), state.getTomorrowSunrise());
+                gamma *= earlyGamma * lateGamma;
+                if (DEBUG) {
+                    Slog.d(TAG, "updateAutoBrightness: earlyGamma=" + earlyGamma
+                            + ", lateGamma=" + lateGamma);
+                }
+            }
+        }
+
+        if (gamma != 1.0f) {
+            final float in = value;
+            value = MathUtils.pow(value, gamma);
+            if (DEBUG) {
+                Slog.d(TAG, "updateAutoBrightness: gamma=" + gamma
+                        + ", in=" + in + ", out=" + value);
+            }
+        }
+
+        int newScreenAutoBrightness =
+            clampScreenBrightness(Math.round(value * PowerManager.BRIGHTNESS_ON));
+        if (mScreenAutoBrightness != newScreenAutoBrightness) {
+            if (DEBUG) {
+                Slog.d(TAG, "updateAutoBrightness: mScreenAutoBrightness="
+                        + mScreenAutoBrightness + ", newScreenAutoBrightness="
+                        + newScreenAutoBrightness);
+            }
+
+            mScreenAutoBrightness = newScreenAutoBrightness;
+            mLastScreenAutoBrightnessGamma = gamma;
+            if (sendUpdate) {
+                mCallbacks.updateBrightness();
+            }
+        }
+    }
+
+    private int clampScreenBrightness(int value) {
+        return MathUtils.constrain(value,
+                mScreenBrightnessRangeMinimum, mScreenBrightnessRangeMaximum);
+    }
+
+    private static float getTwilightGamma(long now, long lastSunset, long nextSunrise) {
+        if (lastSunset < 0 || nextSunrise < 0
+                || now < lastSunset || now > nextSunrise) {
+            return 1.0f;
+        }
+
+        if (now < lastSunset + TWILIGHT_ADJUSTMENT_TIME) {
+            return MathUtils.lerp(1.0f, TWILIGHT_ADJUSTMENT_MAX_GAMMA,
+                    (float)(now - lastSunset) / TWILIGHT_ADJUSTMENT_TIME);
+        }
+
+        if (now > nextSunrise - TWILIGHT_ADJUSTMENT_TIME) {
+            return MathUtils.lerp(1.0f, TWILIGHT_ADJUSTMENT_MAX_GAMMA,
+                    (float)(nextSunrise - now) / TWILIGHT_ADJUSTMENT_TIME);
+        }
+
+        return TWILIGHT_ADJUSTMENT_MAX_GAMMA;
+    }
+
+    private final class AutomaticBrightnessHandler extends Handler {
+        public AutomaticBrightnessHandler(Looper looper) {
+            super(looper, null, true /*async*/);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_UPDATE_AMBIENT_LUX:
+                    updateAmbientLux();
+                    break;
+            }
+        }
+    }
+
+    private final SensorEventListener mLightSensorListener = new SensorEventListener() {
+        @Override
+        public void onSensorChanged(SensorEvent event) {
+            if (mLightSensorEnabled) {
+                final long time = SystemClock.uptimeMillis();
+                final float lux = event.values[0];
+                handleLightSensorEvent(time, lux);
+            }
+        }
+
+        @Override
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+            // Not used.
+        }
+    };
+
+    private final TwilightListener mTwilightListener = new TwilightListener() {
+        @Override
+        public void onTwilightStateChanged() {
+            updateAutoBrightness(true /*sendUpdate*/);
+        }
+    };
+
+    /** Callbacks to request updates to the display's power state. */
+    interface Callbacks {
+        void updateBrightness();
+    }
+
+    private static final class AmbientLightRingBuffer{
+        // Proportional extra capacity of the buffer beyond the expected number of light samples
+        // in the horizon
+        private static final float BUFFER_SLACK = 1.5f;
+        private static final int DEFAULT_CAPACITY =
+            (int) Math.ceil(AMBIENT_LIGHT_HORIZON * BUFFER_SLACK / LIGHT_SENSOR_RATE_MILLIS);
+        private float[] mRingLux;
+        private long[] mRingTime;
+        private int mCapacity;
+
+        // The first valid element and the next open slot.
+        // Note that if mCount is zero then there are no valid elements.
+        private int mStart;
+        private int mEnd;
+        private int mCount;
+
+        public AmbientLightRingBuffer() {
+            this(DEFAULT_CAPACITY);
+        }
+
+        public AmbientLightRingBuffer(int initialCapacity) {
+            mCapacity = initialCapacity;
+            mRingLux = new float[mCapacity];
+            mRingTime = new long[mCapacity];
+        }
+
+        public float getLux(int index) {
+            return mRingLux[offsetOf(index)];
+        }
+
+        public long getTime(int index) {
+            return mRingTime[offsetOf(index)];
+        }
+
+        public void push(long time, float lux) {
+            int next = mEnd;
+            if (mCount == mCapacity) {
+                int newSize = mCapacity * 2;
+
+                float[] newRingLux = new float[newSize];
+                long[] newRingTime = new long[newSize];
+                int length = mCapacity - mStart;
+                System.arraycopy(mRingLux, mStart, newRingLux, 0, length);
+                System.arraycopy(mRingTime, mStart, newRingTime, 0, length);
+                if (mStart != 0) {
+                    System.arraycopy(mRingLux, 0, newRingLux, length, mStart);
+                    System.arraycopy(mRingTime, 0, newRingTime, length, mStart);
+                }
+                mRingLux = newRingLux;
+                mRingTime = newRingTime;
+
+                next = mCapacity;
+                mCapacity = newSize;
+                mStart = 0;
+            }
+            mRingTime[next] = time;
+            mRingLux[next] = lux;
+            mEnd = next + 1;
+            if (mEnd == mCapacity) {
+                mEnd = 0;
+            }
+            mCount++;
+        }
+
+        public void prune(long horizon) {
+            if (mCount == 0) {
+                return;
+            }
+
+            while (mCount > 1) {
+                int next = mStart + 1;
+                if (next >= mCapacity) {
+                    next -= mCapacity;
+                }
+                if (mRingTime[next] > horizon) {
+                    // Some light sensors only produce data upon a change in the ambient light
+                    // levels, so we need to consider the previous measurement as the ambient light
+                    // level for all points in time up until we receive a new measurement. Thus, we
+                    // always want to keep the youngest element that would be removed from the
+                    // buffer and just set its measurement time to the horizon time since at that
+                    // point it is the ambient light level, and to remove it would be to drop a
+                    // valid data point within our horizon.
+                    break;
+                }
+                mStart = next;
+                mCount -= 1;
+            }
+
+            if (mRingTime[mStart] < horizon) {
+                mRingTime[mStart] = horizon;
+            }
+        }
+
+        public int size() {
+            return mCount;
+        }
+
+        public boolean isEmpty() {
+            return mCount == 0;
+        }
+
+        public void clear() {
+            mStart = 0;
+            mEnd = 0;
+            mCount = 0;
+        }
+
+        @Override
+        public String toString() {
+            final int length = mCapacity - mStart;
+            float[] lux = new float[mCount];
+            long[] time = new long[mCount];
+
+            if (mCount <= length) {
+                System.arraycopy(mRingLux, mStart, lux, 0, mCount);
+                System.arraycopy(mRingTime, mStart, time, 0, mCount);
+            } else {
+                System.arraycopy(mRingLux, mStart, lux, 0, length);
+                System.arraycopy(mRingLux, 0, lux, length, mCount - length);
+
+                System.arraycopy(mRingTime, mStart, time, 0, length);
+                System.arraycopy(mRingTime, 0, time, length, mCount - length);
+            }
+            return "AmbientLightRingBuffer{mCapacity=" + mCapacity
+                + ", mStart=" + mStart
+                + ", mEnd=" + mEnd
+                + ", mCount=" + mCount
+                + ", mRingLux=" + Arrays.toString(lux)
+                + ", mRingTime=" + Arrays.toString(time)
+                + "}";
+        }
+
+        private int offsetOf(int index) {
+            if (index >= mCount || index < 0) {
+                throw new ArrayIndexOutOfBoundsException(index);
+            }
+            index += mStart;
+            if (index >= mCapacity) {
+                index -= mCapacity;
+            }
+            return index;
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/display/DisplayBlanker.java b/services/core/java/com/android/server/display/DisplayBlanker.java
new file mode 100644
index 0000000..eb0ae6a
--- /dev/null
+++ b/services/core/java/com/android/server/display/DisplayBlanker.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+package com.android.server.display;
+
+/**
+ * Interface used to update the actual display state.
+ */
+public interface DisplayBlanker {
+    void requestDisplayState(int state);
+}
diff --git a/services/core/java/com/android/server/display/DisplayDevice.java b/services/core/java/com/android/server/display/DisplayDevice.java
index 9ec1122..a5f9822 100644
--- a/services/core/java/com/android/server/display/DisplayDevice.java
+++ b/services/core/java/com/android/server/display/DisplayDevice.java
@@ -107,15 +107,9 @@
     }
 
     /**
-     * Blanks the display, if supported.
+     * Sets the display state, if supported.
      */
-    public void blankLocked() {
-    }
-
-    /**
-     * Unblanks the display, if supported.
-     */
-    public void unblankLocked() {
+    public void requestDisplayStateLocked(int state) {
     }
 
     /**
diff --git a/services/core/java/com/android/server/display/DisplayDeviceInfo.java b/services/core/java/com/android/server/display/DisplayDeviceInfo.java
index 75f1f53..a77443d 100644
--- a/services/core/java/com/android/server/display/DisplayDeviceInfo.java
+++ b/services/core/java/com/android/server/display/DisplayDeviceInfo.java
@@ -176,6 +176,11 @@
     public String address;
 
     /**
+     * Display state.
+     */
+    public int state = Display.STATE_ON;
+
+    /**
      * The UID of the application that owns this display, or zero if it is owned by the system.
      * <p>
      * If the display is private, then only the owner can use it.
@@ -219,6 +224,7 @@
                 && rotation == other.rotation
                 && type == other.type
                 && Objects.equal(address, other.address)
+                && state == other.state
                 && ownerUid == other.ownerUid
                 && Objects.equal(ownerPackageName, other.ownerPackageName);
     }
@@ -241,6 +247,7 @@
         rotation = other.rotation;
         type = other.type;
         address = other.address;
+        state = other.state;
         ownerUid = other.ownerUid;
         ownerPackageName = other.ownerPackageName;
     }
@@ -260,6 +267,7 @@
         if (address != null) {
             sb.append(", address ").append(address);
         }
+        sb.append(", state ").append(Display.stateToString(state));
         if (ownerUid != 0 || ownerPackageName != null) {
             sb.append(", owner ").append(ownerPackageName);
             sb.append(" (uid ").append(ownerUid).append(")");
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 6be6405..071417b 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -21,6 +21,7 @@
 import android.Manifest;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.hardware.SensorManager;
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManagerGlobal;
 import android.hardware.display.DisplayManagerInternal;
@@ -120,10 +121,6 @@
     private static final int MSG_REQUEST_TRAVERSAL = 4;
     private static final int MSG_UPDATE_VIEWPORT = 5;
 
-    private static final int DISPLAY_BLANK_STATE_UNKNOWN = 0;
-    private static final int DISPLAY_BLANK_STATE_BLANKED = 1;
-    private static final int DISPLAY_BLANK_STATE_UNBLANKED = 2;
-
     private final Context mContext;
     private final DisplayManagerHandler mHandler;
     private final Handler mUiHandler;
@@ -172,8 +169,12 @@
     private final CopyOnWriteArrayList<DisplayTransactionListener> mDisplayTransactionListeners =
             new CopyOnWriteArrayList<DisplayTransactionListener>();
 
-    // Set to true if all displays have been blanked by the power manager.
-    private int mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_UNKNOWN;
+    // Display power controller.
+    private DisplayPowerController mDisplayPowerController;
+
+    // The overall display state, independent of changes that might influence one
+    // display or another in particular.
+    private int mGlobalDisplayState = Display.STATE_UNKNOWN;
 
     // Set to true when there are pending display changes that have yet to be applied
     // to the surface flinger state.
@@ -311,21 +312,11 @@
         }
     }
 
-    private void blankAllDisplaysFromPowerManagerInternal() {
+    private void requestGlobalDisplayStateInternal(int state) {
         synchronized (mSyncRoot) {
-            if (mAllDisplayBlankStateFromPowerManager != DISPLAY_BLANK_STATE_BLANKED) {
-                mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_BLANKED;
-                updateAllDisplayBlankingLocked();
-                scheduleTraversalLocked(false);
-            }
-        }
-    }
-
-    private void unblankAllDisplaysFromPowerManagerInternal() {
-        synchronized (mSyncRoot) {
-            if (mAllDisplayBlankStateFromPowerManager != DISPLAY_BLANK_STATE_UNBLANKED) {
-                mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_UNBLANKED;
-                updateAllDisplayBlankingLocked();
+            if (mGlobalDisplayState != state) {
+                mGlobalDisplayState = state;
+                updateGlobalDisplayStateLocked();
                 scheduleTraversalLocked(false);
             }
         }
@@ -612,7 +603,7 @@
 
         mDisplayDevices.add(device);
         addLogicalDisplayLocked(device);
-        updateDisplayBlankingLocked(device);
+        updateDisplayStateLocked(device);
         scheduleTraversalLocked(false);
     }
 
@@ -651,27 +642,20 @@
         scheduleTraversalLocked(false);
     }
 
-    private void updateAllDisplayBlankingLocked() {
+    private void updateGlobalDisplayStateLocked() {
         final int count = mDisplayDevices.size();
         for (int i = 0; i < count; i++) {
             DisplayDevice device = mDisplayDevices.get(i);
-            updateDisplayBlankingLocked(device);
+            updateDisplayStateLocked(device);
         }
     }
 
-    private void updateDisplayBlankingLocked(DisplayDevice device) {
+    private void updateDisplayStateLocked(DisplayDevice device) {
         // Blank or unblank the display immediately to match the state requested
-        // by the power manager (if known).
+        // by the display power controller (if known).
         DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked();
         if ((info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK) == 0) {
-            switch (mAllDisplayBlankStateFromPowerManager) {
-                case DISPLAY_BLANK_STATE_BLANKED:
-                    device.blankLocked();
-                    break;
-                case DISPLAY_BLANK_STATE_UNBLANKED:
-                    device.unblankLocked();
-                    break;
-            }
+            device.requestDisplayStateLocked(mGlobalDisplayState);
         }
     }
 
@@ -812,9 +796,7 @@
                     + device.getDisplayDeviceInfoLocked());
             return;
         }
-        boolean isBlanked = (mAllDisplayBlankStateFromPowerManager == DISPLAY_BLANK_STATE_BLANKED)
-                && (info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK) == 0;
-        display.configureDisplayInTransactionLocked(device, isBlanked);
+        display.configureDisplayInTransactionLocked(device, info.state == Display.STATE_OFF);
 
         // Update the viewports if needed.
         if (!mDefaultViewport.valid
@@ -893,8 +875,7 @@
             pw.println("  mOnlyCode=" + mOnlyCore);
             pw.println("  mSafeMode=" + mSafeMode);
             pw.println("  mPendingTraversal=" + mPendingTraversal);
-            pw.println("  mAllDisplayBlankStateFromPowerManager="
-                    + mAllDisplayBlankStateFromPowerManager);
+            pw.println("  mGlobalDisplayState=" + Display.stateToString(mGlobalDisplayState));
             pw.println("  mNextNonDefaultDisplayId=" + mNextNonDefaultDisplayId);
             pw.println("  mDefaultViewport=" + mDefaultViewport);
             pw.println("  mExternalTouchViewport=" + mExternalTouchViewport);
@@ -936,6 +917,10 @@
                 pw.println("  " + i + ": mPid=" + callback.mPid
                         + ", mWifiDisplayScanRequested=" + callback.mWifiDisplayScanRequested);
             }
+
+            if (mDisplayPowerController != null) {
+                mDisplayPowerController.dump(pw);
+            }
         }
     }
 
@@ -1314,13 +1299,39 @@
 
     private final class LocalService extends DisplayManagerInternal {
         @Override
-        public void blankAllDisplaysFromPowerManager() {
-            blankAllDisplaysFromPowerManagerInternal();
+        public void initPowerManagement(final DisplayPowerCallbacks callbacks, Handler handler,
+                SensorManager sensorManager) {
+            synchronized (mSyncRoot) {
+                DisplayBlanker blanker = new DisplayBlanker() {
+                    @Override
+                    public void requestDisplayState(int state) {
+                        // The order of operations is important for legacy reasons.
+                        if (state == Display.STATE_OFF) {
+                            requestGlobalDisplayStateInternal(state);
+                        }
+
+                        callbacks.onDisplayStateChange(state);
+
+                        if (state != Display.STATE_OFF) {
+                            requestGlobalDisplayStateInternal(state);
+                        }
+                    }
+                };
+                mDisplayPowerController = new DisplayPowerController(
+                        mContext, callbacks, handler, sensorManager, blanker);
+            }
         }
 
         @Override
-        public void unblankAllDisplaysFromPowerManager() {
-            unblankAllDisplaysFromPowerManagerInternal();
+        public boolean requestPowerState(DisplayPowerRequest request,
+                boolean waitForNegativeProximity) {
+            return mDisplayPowerController.requestPowerState(request,
+                    waitForNegativeProximity);
+        }
+
+        @Override
+        public boolean isProximitySensorAvailable() {
+            return mDisplayPowerController.isProximitySensorAvailable();
         }
 
         @Override
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
new file mode 100644
index 0000000..1f38eb6
--- /dev/null
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -0,0 +1,946 @@
+/*
+ * 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.
+ */
+
+package com.android.server.display;
+
+import com.android.internal.app.IBatteryStats;
+import com.android.server.LocalServices;
+import com.android.server.am.BatteryStatsService;
+import com.android.server.lights.LightsManager;
+
+import android.animation.Animator;
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.content.res.Resources;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.hardware.display.DisplayManagerInternal.DisplayPowerCallbacks;
+import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.text.format.DateUtils;
+import android.util.MathUtils;
+import android.util.Slog;
+import android.util.Spline;
+import android.util.TimeUtils;
+import android.view.Display;
+
+import java.io.PrintWriter;
+
+/**
+ * Controls the power state of the display.
+ *
+ * Handles the proximity sensor, light sensor, and animations between states
+ * including the screen off animation.
+ *
+ * This component acts independently of the rest of the power manager service.
+ * In particular, it does not share any state and it only communicates
+ * via asynchronous callbacks to inform the power manager that something has
+ * changed.
+ *
+ * Everything this class does internally is serialized on its handler although
+ * it may be accessed by other threads from the outside.
+ *
+ * Note that the power manager service guarantees that it will hold a suspend
+ * blocker as long as the display is not ready.  So most of the work done here
+ * does not need to worry about holding a suspend blocker unless it happens
+ * independently of the display ready signal.
+ *
+ * For debugging, you can make the electron beam and brightness animations run
+ * slower by changing the "animator duration scale" option in Development Settings.
+ */
+final class DisplayPowerController implements AutomaticBrightnessController.Callbacks {
+    private static final String TAG = "DisplayPowerController";
+
+    private static boolean DEBUG = false;
+    private static final boolean DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT = false;
+
+    // If true, uses the electron beam on animation.
+    // We might want to turn this off if we cannot get a guarantee that the screen
+    // actually turns on and starts showing new content after the call to set the
+    // screen state returns.  Playing the animation can also be somewhat slow.
+    private static final boolean USE_ELECTRON_BEAM_ON_ANIMATION = false;
+
+
+    // The minimum reduction in brightness when dimmed.
+    private static final int SCREEN_DIM_MINIMUM_REDUCTION = 10;
+
+    private static final int ELECTRON_BEAM_ON_ANIMATION_DURATION_MILLIS = 250;
+    private static final int ELECTRON_BEAM_OFF_ANIMATION_DURATION_MILLIS = 400;
+
+    private static final int MSG_UPDATE_POWER_STATE = 1;
+    private static final int MSG_PROXIMITY_SENSOR_DEBOUNCED = 2;
+
+    private static final int PROXIMITY_UNKNOWN = -1;
+    private static final int PROXIMITY_NEGATIVE = 0;
+    private static final int PROXIMITY_POSITIVE = 1;
+
+    // Proximity sensor debounce delay in milliseconds for positive or negative transitions.
+    private static final int PROXIMITY_SENSOR_POSITIVE_DEBOUNCE_DELAY = 0;
+    private static final int PROXIMITY_SENSOR_NEGATIVE_DEBOUNCE_DELAY = 250;
+
+    // Trigger proximity if distance is less than 5 cm.
+    private static final float TYPICAL_PROXIMITY_THRESHOLD = 5.0f;
+
+    // Brightness animation ramp rate in brightness units per second.
+    private static final int BRIGHTNESS_RAMP_RATE_FAST = 200;
+    private static final int BRIGHTNESS_RAMP_RATE_SLOW = 40;
+
+    private final Object mLock = new Object();
+
+    // Our handler.
+    private final DisplayControllerHandler mHandler;
+
+    // Asynchronous callbacks into the power manager service.
+    // Only invoked from the handler thread while no locks are held.
+    private final DisplayPowerCallbacks mCallbacks;
+
+    // Battery stats.
+    private final IBatteryStats mBatteryStats;
+
+    // The lights service.
+    private final LightsManager mLights;
+
+    // The sensor manager.
+    private final SensorManager mSensorManager;
+
+    // The display blanker.
+    private final DisplayBlanker mBlanker;
+
+    // The proximity sensor, or null if not available or needed.
+    private Sensor mProximitySensor;
+
+    // The doze screen brightness.
+    private final int mScreenBrightnessDozeConfig;
+
+    // The dim screen brightness.
+    private final int mScreenBrightnessDimConfig;
+
+    // The minimum allowed brightness.
+    private final int mScreenBrightnessRangeMinimum;
+
+    // The maximum allowed brightness.
+    private final int mScreenBrightnessRangeMaximum;
+
+    // True if auto-brightness should be used.
+    private boolean mUseSoftwareAutoBrightnessConfig;
+
+    // True if we should fade the screen while turning it off, false if we should play
+    // a stylish electron beam animation instead.
+    private boolean mElectronBeamFadesConfig;
+
+    // The pending power request.
+    // Initially null until the first call to requestPowerState.
+    // Guarded by mLock.
+    private DisplayPowerRequest mPendingRequestLocked;
+
+    // True if a request has been made to wait for the proximity sensor to go negative.
+    // Guarded by mLock.
+    private boolean mPendingWaitForNegativeProximityLocked;
+
+    // True if the pending power request or wait for negative proximity flag
+    // has been changed since the last update occurred.
+    // Guarded by mLock.
+    private boolean mPendingRequestChangedLocked;
+
+    // Set to true when the important parts of the pending power request have been applied.
+    // The important parts are mainly the screen state.  Brightness changes may occur
+    // concurrently.
+    // Guarded by mLock.
+    private boolean mDisplayReadyLocked;
+
+    // Set to true if a power state update is required.
+    // Guarded by mLock.
+    private boolean mPendingUpdatePowerStateLocked;
+
+    /* The following state must only be accessed by the handler thread. */
+
+    // The currently requested power state.
+    // The power controller will progressively update its internal state to match
+    // the requested power state.  Initially null until the first update.
+    private DisplayPowerRequest mPowerRequest;
+
+    // The current power state.
+    // Must only be accessed on the handler thread.
+    private DisplayPowerState mPowerState;
+
+    // True if the device should wait for negative proximity sensor before
+    // waking up the screen.  This is set to false as soon as a negative
+    // proximity sensor measurement is observed or when the device is forced to
+    // go to sleep by the user.  While true, the screen remains off.
+    private boolean mWaitingForNegativeProximity;
+
+    // The actual proximity sensor threshold value.
+    private float mProximityThreshold;
+
+    // Set to true if the proximity sensor listener has been registered
+    // with the sensor manager.
+    private boolean mProximitySensorEnabled;
+
+    // The debounced proximity sensor state.
+    private int mProximity = PROXIMITY_UNKNOWN;
+
+    // The raw non-debounced proximity sensor state.
+    private int mPendingProximity = PROXIMITY_UNKNOWN;
+    private long mPendingProximityDebounceTime = -1; // -1 if fully debounced
+
+    // True if the screen was turned off because of the proximity sensor.
+    // When the screen turns on again, we report user activity to the power manager.
+    private boolean mScreenOffBecauseOfProximity;
+
+    // True if the screen on is being blocked.
+    private boolean mScreenOnWasBlocked;
+
+    // The elapsed real time when the screen on was blocked.
+    private long mScreenOnBlockStartRealTime;
+
+    // True if the screen auto-brightness value is actually being used to
+    // set the display brightness.
+    private boolean mUsingScreenAutoBrightness;
+
+    // The controller for the automatic brightness level.
+    private AutomaticBrightnessController mAutomaticBrightnessController;
+
+    // Animators.
+    private ObjectAnimator mElectronBeamOnAnimator;
+    private ObjectAnimator mElectronBeamOffAnimator;
+    private RampAnimator<DisplayPowerState> mScreenBrightnessRampAnimator;
+
+    /**
+     * Creates the display power controller.
+     */
+    public DisplayPowerController(Context context,
+            DisplayPowerCallbacks callbacks, Handler handler,
+            SensorManager sensorManager, DisplayBlanker blanker) {
+        mHandler = new DisplayControllerHandler(handler.getLooper());
+        mCallbacks = callbacks;
+
+        mBatteryStats = BatteryStatsService.getService();
+        mLights = LocalServices.getService(LightsManager.class);
+        mSensorManager = sensorManager;
+        mBlanker = blanker;
+
+        final Resources resources = context.getResources();
+
+        mScreenBrightnessDozeConfig = clampAbsoluteBrightness(resources.getInteger(
+                com.android.internal.R.integer.config_screenBrightnessDoze));
+
+        mScreenBrightnessDimConfig = clampAbsoluteBrightness(resources.getInteger(
+                com.android.internal.R.integer.config_screenBrightnessDim));
+
+        int screenBrightnessRangeMinimum = clampAbsoluteBrightness(Math.min(resources.getInteger(
+                com.android.internal.R.integer.config_screenBrightnessSettingMinimum),
+                mScreenBrightnessDimConfig));
+
+        mScreenBrightnessRangeMaximum = PowerManager.BRIGHTNESS_ON;
+
+        mUseSoftwareAutoBrightnessConfig = resources.getBoolean(
+                com.android.internal.R.bool.config_automatic_brightness_available);
+        if (mUseSoftwareAutoBrightnessConfig) {
+            int[] lux = resources.getIntArray(
+                    com.android.internal.R.array.config_autoBrightnessLevels);
+            int[] screenBrightness = resources.getIntArray(
+                    com.android.internal.R.array.config_autoBrightnessLcdBacklightValues);
+            int lightSensorWarmUpTimeConfig = resources.getInteger(
+                    com.android.internal.R.integer.config_lightSensorWarmupTime);
+
+            Spline screenAutoBrightnessSpline = createAutoBrightnessSpline(lux, screenBrightness);
+            if (screenAutoBrightnessSpline == null) {
+                Slog.e(TAG, "Error in config.xml.  config_autoBrightnessLcdBacklightValues "
+                        + "(size " + screenBrightness.length + ") "
+                        + "must be monotic and have exactly one more entry than "
+                        + "config_autoBrightnessLevels (size " + lux.length + ") "
+                        + "which must be strictly increasing.  "
+                        + "Auto-brightness will be disabled.");
+                mUseSoftwareAutoBrightnessConfig = false;
+            } else {
+                if (screenBrightness[0] < screenBrightnessRangeMinimum) {
+                    screenBrightnessRangeMinimum = clampAbsoluteBrightness(screenBrightness[0]);
+                }
+                mAutomaticBrightnessController = new AutomaticBrightnessController(this,
+                        handler.getLooper(), sensorManager, screenAutoBrightnessSpline,
+                        lightSensorWarmUpTimeConfig, screenBrightnessRangeMinimum,
+                        mScreenBrightnessRangeMaximum);
+            }
+        }
+
+        mScreenBrightnessRangeMinimum = screenBrightnessRangeMinimum;
+
+        mElectronBeamFadesConfig = resources.getBoolean(
+                com.android.internal.R.bool.config_animateScreenLights);
+
+        if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
+            mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+            if (mProximitySensor != null) {
+                mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
+                        TYPICAL_PROXIMITY_THRESHOLD);
+            }
+        }
+
+    }
+
+    /**
+     * Returns true if the proximity sensor screen-off function is available.
+     */
+    public boolean isProximitySensorAvailable() {
+        return mProximitySensor != null;
+    }
+
+    /**
+     * Requests a new power state.
+     * The controller makes a copy of the provided object and then
+     * begins adjusting the power state to match what was requested.
+     *
+     * @param request The requested power state.
+     * @param waitForNegativeProximity If true, issues a request to wait for
+     * negative proximity before turning the screen back on, assuming the screen
+     * was turned off by the proximity sensor.
+     * @return True if display is ready, false if there are important changes that must
+     * be made asynchronously (such as turning the screen on), in which case the caller
+     * should grab a wake lock, watch for {@link Callbacks#onStateChanged()} then try
+     * the request again later until the state converges.
+     */
+    public boolean requestPowerState(DisplayPowerRequest request,
+            boolean waitForNegativeProximity) {
+        if (DEBUG) {
+            Slog.d(TAG, "requestPowerState: "
+                    + request + ", waitForNegativeProximity=" + waitForNegativeProximity);
+        }
+
+        synchronized (mLock) {
+            boolean changed = false;
+
+            if (waitForNegativeProximity
+                    && !mPendingWaitForNegativeProximityLocked) {
+                mPendingWaitForNegativeProximityLocked = true;
+                changed = true;
+            }
+
+            if (mPendingRequestLocked == null) {
+                mPendingRequestLocked = new DisplayPowerRequest(request);
+                changed = true;
+            } else if (!mPendingRequestLocked.equals(request)) {
+                mPendingRequestLocked.copyFrom(request);
+                changed = true;
+            }
+
+            if (changed) {
+                mDisplayReadyLocked = false;
+            }
+
+            if (changed && !mPendingRequestChangedLocked) {
+                mPendingRequestChangedLocked = true;
+                sendUpdatePowerStateLocked();
+            }
+
+            return mDisplayReadyLocked;
+        }
+    }
+
+    private void sendUpdatePowerState() {
+        synchronized (mLock) {
+            sendUpdatePowerStateLocked();
+        }
+    }
+
+    private void sendUpdatePowerStateLocked() {
+        if (!mPendingUpdatePowerStateLocked) {
+            mPendingUpdatePowerStateLocked = true;
+            Message msg = mHandler.obtainMessage(MSG_UPDATE_POWER_STATE);
+            msg.setAsynchronous(true);
+            mHandler.sendMessage(msg);
+        }
+    }
+
+    private void initialize() {
+        // Initialize the power state object for the default display.
+        // In the future, we might manage multiple displays independently.
+        mPowerState = new DisplayPowerState(mBlanker,
+                mLights.getLight(LightsManager.LIGHT_ID_BACKLIGHT),
+                new ElectronBeam(Display.DEFAULT_DISPLAY));
+
+        mElectronBeamOnAnimator = ObjectAnimator.ofFloat(
+                mPowerState, DisplayPowerState.ELECTRON_BEAM_LEVEL, 0.0f, 1.0f);
+        mElectronBeamOnAnimator.setDuration(ELECTRON_BEAM_ON_ANIMATION_DURATION_MILLIS);
+        mElectronBeamOnAnimator.addListener(mAnimatorListener);
+
+        mElectronBeamOffAnimator = ObjectAnimator.ofFloat(
+                mPowerState, DisplayPowerState.ELECTRON_BEAM_LEVEL, 1.0f, 0.0f);
+        mElectronBeamOffAnimator.setDuration(ELECTRON_BEAM_OFF_ANIMATION_DURATION_MILLIS);
+        mElectronBeamOffAnimator.addListener(mAnimatorListener);
+
+        mScreenBrightnessRampAnimator = new RampAnimator<DisplayPowerState>(
+                mPowerState, DisplayPowerState.SCREEN_BRIGHTNESS);
+
+        // Initialize screen state for battery stats.
+        try {
+            if (mPowerState.getScreenState() != Display.STATE_OFF) {
+                mBatteryStats.noteScreenOn();
+            } else {
+                mBatteryStats.noteScreenOff();
+            }
+            mBatteryStats.noteScreenBrightness(mPowerState.getScreenBrightness());
+        } catch (RemoteException ex) {
+            // same process
+        }
+    }
+
+    private final Animator.AnimatorListener mAnimatorListener = new Animator.AnimatorListener() {
+        @Override
+        public void onAnimationStart(Animator animation) {
+        }
+        @Override
+        public void onAnimationEnd(Animator animation) {
+            sendUpdatePowerState();
+        }
+        @Override
+        public void onAnimationRepeat(Animator animation) {
+        }
+        @Override
+        public void onAnimationCancel(Animator animation) {
+        }
+    };
+
+    private void updatePowerState() {
+        // Update the power state request.
+        final boolean mustNotify;
+        boolean mustInitialize = false;
+        boolean wasDimOrDoze = false;
+
+        synchronized (mLock) {
+            mPendingUpdatePowerStateLocked = false;
+            if (mPendingRequestLocked == null) {
+                return; // wait until first actual power request
+            }
+
+            if (mPowerRequest == null) {
+                mPowerRequest = new DisplayPowerRequest(mPendingRequestLocked);
+                mWaitingForNegativeProximity = mPendingWaitForNegativeProximityLocked;
+                mPendingWaitForNegativeProximityLocked = false;
+                mPendingRequestChangedLocked = false;
+                mustInitialize = true;
+            } else if (mPendingRequestChangedLocked) {
+                wasDimOrDoze = (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DIM
+                        || mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DOZE);
+                mPowerRequest.copyFrom(mPendingRequestLocked);
+                mWaitingForNegativeProximity |= mPendingWaitForNegativeProximityLocked;
+                mPendingWaitForNegativeProximityLocked = false;
+                mPendingRequestChangedLocked = false;
+                mDisplayReadyLocked = false;
+            }
+
+            mustNotify = !mDisplayReadyLocked;
+        }
+
+        // Initialize things the first time the power state is changed.
+        if (mustInitialize) {
+            initialize();
+        }
+
+        // Apply the proximity sensor.
+        if (mProximitySensor != null) {
+            if (mPowerRequest.useProximitySensor
+                    && mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
+                setProximitySensorEnabled(true);
+                if (!mScreenOffBecauseOfProximity
+                        && mProximity == PROXIMITY_POSITIVE) {
+                    mScreenOffBecauseOfProximity = true;
+                    sendOnProximityPositiveWithWakelock();
+                }
+            } else if (mWaitingForNegativeProximity
+                    && mScreenOffBecauseOfProximity
+                    && mProximity == PROXIMITY_POSITIVE
+                    && mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
+                setProximitySensorEnabled(true);
+            } else {
+                setProximitySensorEnabled(false);
+                mWaitingForNegativeProximity = false;
+            }
+            if (mScreenOffBecauseOfProximity
+                    && mProximity != PROXIMITY_POSITIVE) {
+                mScreenOffBecauseOfProximity = false;
+                sendOnProximityNegativeWithWakelock();
+            }
+        } else {
+            mWaitingForNegativeProximity = false;
+        }
+
+        // Turn on the light sensor if needed.
+        if (mAutomaticBrightnessController != null) {
+            mAutomaticBrightnessController.updatePowerState(mPowerRequest);
+        }
+
+        // Set the screen brightness.
+        if (mPowerRequest.wantScreenOnAny()) {
+            int target;
+            boolean slow;
+            int screenAutoBrightness = mAutomaticBrightnessController != null ?
+                    mAutomaticBrightnessController.getAutomaticScreenBrightness() : -1;
+            if (screenAutoBrightness >= 0 && mPowerRequest.useAutoBrightness) {
+                // Use current auto-brightness value.
+                target = screenAutoBrightness;
+                slow = mUsingScreenAutoBrightness;
+                mUsingScreenAutoBrightness = true;
+            } else {
+                // Light sensor is disabled or not ready yet.
+                // Use the current brightness setting from the request, which is expected
+                // provide a nominal default value for the case where auto-brightness
+                // is not ready yet.
+                target = mPowerRequest.screenBrightness;
+                slow = false;
+                mUsingScreenAutoBrightness = false;
+            }
+            if (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DOZE) {
+                // Dim quickly to the doze state.
+                target = mScreenBrightnessDozeConfig;
+                slow = false;
+            } else if (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DIM) {
+                // Dim quickly by at least some minimum amount.
+                target = Math.min(target - SCREEN_DIM_MINIMUM_REDUCTION,
+                        mScreenBrightnessDimConfig);
+                slow = false;
+            } else if (wasDimOrDoze) {
+                // Brighten quickly.
+                slow = false;
+            }
+            animateScreenBrightness(clampScreenBrightness(target),
+                    slow ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
+        } else {
+            // Screen is off.  Don't bother changing the brightness.
+            mUsingScreenAutoBrightness = false;
+        }
+
+        // Animate the screen on or off unless blocked.
+        if (mScreenOffBecauseOfProximity) {
+            // Screen off due to proximity.
+            setScreenState(Display.STATE_OFF);
+            unblockScreenOn();
+        } else if (mPowerRequest.wantScreenOnAny()) {
+            // Want screen on.
+            // Wait for previous off animation to complete beforehand.
+            // It is relatively short but if we cancel it and switch to the
+            // on animation immediately then the results are pretty ugly.
+            if (!mElectronBeamOffAnimator.isStarted()) {
+                // Turn the screen on.  The contents of the screen may not yet
+                // be visible if the electron beam has not been dismissed because
+                // its last frame of animation is solid black.
+                setScreenState(mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DOZE
+                        ? Display.STATE_DOZING : Display.STATE_ON);
+
+                if (mPowerRequest.blockScreenOn
+                        && mPowerState.getElectronBeamLevel() == 0.0f) {
+                    blockScreenOn();
+                } else {
+                    unblockScreenOn();
+                    if (USE_ELECTRON_BEAM_ON_ANIMATION) {
+                        if (!mElectronBeamOnAnimator.isStarted()) {
+                            if (mPowerState.getElectronBeamLevel() == 1.0f) {
+                                mPowerState.dismissElectronBeam();
+                            } else if (mPowerState.prepareElectronBeam(
+                                    mElectronBeamFadesConfig ?
+                                            ElectronBeam.MODE_FADE :
+                                                    ElectronBeam.MODE_WARM_UP)) {
+                                mElectronBeamOnAnimator.start();
+                            } else {
+                                mElectronBeamOnAnimator.end();
+                            }
+                        }
+                    } else {
+                        mPowerState.setElectronBeamLevel(1.0f);
+                        mPowerState.dismissElectronBeam();
+                    }
+                }
+            }
+        } else {
+            // Want screen off.
+            // Wait for previous on animation to complete beforehand.
+            unblockScreenOn();
+            if (!mElectronBeamOnAnimator.isStarted()) {
+                if (!mElectronBeamOffAnimator.isStarted()) {
+                    if (mPowerState.getElectronBeamLevel() == 0.0f) {
+                        setScreenState(Display.STATE_OFF);
+                    } else if (mPowerState.prepareElectronBeam(
+                            mElectronBeamFadesConfig ?
+                                    ElectronBeam.MODE_FADE :
+                                            ElectronBeam.MODE_COOL_DOWN)
+                            && mPowerState.getScreenState() != Display.STATE_OFF) {
+                        mElectronBeamOffAnimator.start();
+                    } else {
+                        mElectronBeamOffAnimator.end();
+                    }
+                }
+            }
+        }
+
+        // Report whether the display is ready for use.
+        // We mostly care about the screen state here, ignoring brightness changes
+        // which will be handled asynchronously.
+        if (mustNotify
+                && !mScreenOnWasBlocked
+                && !mElectronBeamOnAnimator.isStarted()
+                && !mElectronBeamOffAnimator.isStarted()
+                && mPowerState.waitUntilClean(mCleanListener)) {
+            synchronized (mLock) {
+                if (!mPendingRequestChangedLocked) {
+                    mDisplayReadyLocked = true;
+
+                    if (DEBUG) {
+                        Slog.d(TAG, "Display ready!");
+                    }
+                }
+            }
+            sendOnStateChangedWithWakelock();
+        }
+    }
+
+    @Override
+    public void updateBrightness() {
+        sendUpdatePowerState();
+    }
+
+    private void blockScreenOn() {
+        if (!mScreenOnWasBlocked) {
+            mScreenOnWasBlocked = true;
+            mScreenOnBlockStartRealTime = SystemClock.elapsedRealtime();
+            if (DEBUG) {
+                Slog.d(TAG, "Blocked screen on.");
+            }
+        }
+    }
+
+    private void unblockScreenOn() {
+        if (mScreenOnWasBlocked) {
+            mScreenOnWasBlocked = false;
+            long delay = SystemClock.elapsedRealtime() - mScreenOnBlockStartRealTime;
+            if (delay > 1000 || DEBUG) {
+                Slog.d(TAG, "Unblocked screen on after " + delay + " ms");
+            }
+        }
+    }
+
+    private void setScreenState(int state) {
+        if (mPowerState.getScreenState() != state) {
+            mPowerState.setScreenState(state);
+            try {
+                if (state != Display.STATE_OFF) {
+                    mBatteryStats.noteScreenOn();
+                } else {
+                    mBatteryStats.noteScreenOff();
+                }
+            } catch (RemoteException ex) {
+                // same process
+            }
+        }
+    }
+
+    private int clampScreenBrightness(int value) {
+        return MathUtils.constrain(
+                value, mScreenBrightnessRangeMinimum, mScreenBrightnessRangeMaximum);
+    }
+
+    private void animateScreenBrightness(int target, int rate) {
+        if (mScreenBrightnessRampAnimator.animateTo(target, rate)) {
+            try {
+                mBatteryStats.noteScreenBrightness(target);
+            } catch (RemoteException ex) {
+                // same process
+            }
+        }
+    }
+
+    private final Runnable mCleanListener = new Runnable() {
+        @Override
+        public void run() {
+            sendUpdatePowerState();
+        }
+    };
+
+    private void setProximitySensorEnabled(boolean enable) {
+        if (enable) {
+            if (!mProximitySensorEnabled) {
+                // Register the listener.
+                // Proximity sensor state already cleared initially.
+                mProximitySensorEnabled = true;
+                mSensorManager.registerListener(mProximitySensorListener, mProximitySensor,
+                        SensorManager.SENSOR_DELAY_NORMAL, mHandler);
+            }
+        } else {
+            if (mProximitySensorEnabled) {
+                // Unregister the listener.
+                // Clear the proximity sensor state for next time.
+                mProximitySensorEnabled = false;
+                mProximity = PROXIMITY_UNKNOWN;
+                mPendingProximity = PROXIMITY_UNKNOWN;
+                mHandler.removeMessages(MSG_PROXIMITY_SENSOR_DEBOUNCED);
+                mSensorManager.unregisterListener(mProximitySensorListener);
+                clearPendingProximityDebounceTime(); // release wake lock (must be last)
+            }
+        }
+    }
+
+    private void handleProximitySensorEvent(long time, boolean positive) {
+        if (mProximitySensorEnabled) {
+            if (mPendingProximity == PROXIMITY_NEGATIVE && !positive) {
+                return; // no change
+            }
+            if (mPendingProximity == PROXIMITY_POSITIVE && positive) {
+                return; // no change
+            }
+
+            // Only accept a proximity sensor reading if it remains
+            // stable for the entire debounce delay.  We hold a wake lock while
+            // debouncing the sensor.
+            mHandler.removeMessages(MSG_PROXIMITY_SENSOR_DEBOUNCED);
+            if (positive) {
+                mPendingProximity = PROXIMITY_POSITIVE;
+                setPendingProximityDebounceTime(
+                        time + PROXIMITY_SENSOR_POSITIVE_DEBOUNCE_DELAY); // acquire wake lock
+            } else {
+                mPendingProximity = PROXIMITY_NEGATIVE;
+                setPendingProximityDebounceTime(
+                        time + PROXIMITY_SENSOR_NEGATIVE_DEBOUNCE_DELAY); // acquire wake lock
+            }
+
+            // Debounce the new sensor reading.
+            debounceProximitySensor();
+        }
+    }
+
+    private void debounceProximitySensor() {
+        if (mProximitySensorEnabled
+                && mPendingProximity != PROXIMITY_UNKNOWN
+                && mPendingProximityDebounceTime >= 0) {
+            final long now = SystemClock.uptimeMillis();
+            if (mPendingProximityDebounceTime <= now) {
+                // Sensor reading accepted.  Apply the change then release the wake lock.
+                mProximity = mPendingProximity;
+                updatePowerState();
+                clearPendingProximityDebounceTime(); // release wake lock (must be last)
+            } else {
+                // Need to wait a little longer.
+                // Debounce again later.  We continue holding a wake lock while waiting.
+                Message msg = mHandler.obtainMessage(MSG_PROXIMITY_SENSOR_DEBOUNCED);
+                msg.setAsynchronous(true);
+                mHandler.sendMessageAtTime(msg, mPendingProximityDebounceTime);
+            }
+        }
+    }
+
+    private void clearPendingProximityDebounceTime() {
+        if (mPendingProximityDebounceTime >= 0) {
+            mPendingProximityDebounceTime = -1;
+            mCallbacks.releaseSuspendBlocker(); // release wake lock
+        }
+    }
+
+    private void setPendingProximityDebounceTime(long debounceTime) {
+        if (mPendingProximityDebounceTime < 0) {
+            mCallbacks.acquireSuspendBlocker(); // acquire wake lock
+        }
+        mPendingProximityDebounceTime = debounceTime;
+    }
+
+    private void sendOnStateChangedWithWakelock() {
+        mCallbacks.acquireSuspendBlocker();
+        mHandler.post(mOnStateChangedRunnable);
+    }
+
+    private final Runnable mOnStateChangedRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mCallbacks.onStateChanged();
+            mCallbacks.releaseSuspendBlocker();
+        }
+    };
+
+    private void sendOnProximityPositiveWithWakelock() {
+        mCallbacks.acquireSuspendBlocker();
+        mHandler.post(mOnProximityPositiveRunnable);
+    }
+
+    private final Runnable mOnProximityPositiveRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mCallbacks.onProximityPositive();
+            mCallbacks.releaseSuspendBlocker();
+        }
+    };
+
+    private void sendOnProximityNegativeWithWakelock() {
+        mCallbacks.acquireSuspendBlocker();
+        mHandler.post(mOnProximityNegativeRunnable);
+    }
+
+    private final Runnable mOnProximityNegativeRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mCallbacks.onProximityNegative();
+            mCallbacks.releaseSuspendBlocker();
+        }
+    };
+
+    public void dump(final PrintWriter pw) {
+        synchronized (mLock) {
+            pw.println();
+            pw.println("Display Power Controller Locked State:");
+            pw.println("  mDisplayReadyLocked=" + mDisplayReadyLocked);
+            pw.println("  mPendingRequestLocked=" + mPendingRequestLocked);
+            pw.println("  mPendingRequestChangedLocked=" + mPendingRequestChangedLocked);
+            pw.println("  mPendingWaitForNegativeProximityLocked="
+                    + mPendingWaitForNegativeProximityLocked);
+            pw.println("  mPendingUpdatePowerStateLocked=" + mPendingUpdatePowerStateLocked);
+        }
+
+        pw.println();
+        pw.println("Display Power Controller Configuration:");
+        pw.println("  mScreenBrightnessDozeConfig=" + mScreenBrightnessDozeConfig);
+        pw.println("  mScreenBrightnessDimConfig=" + mScreenBrightnessDimConfig);
+        pw.println("  mScreenBrightnessRangeMinimum=" + mScreenBrightnessRangeMinimum);
+        pw.println("  mScreenBrightnessRangeMaximum=" + mScreenBrightnessRangeMaximum);
+        pw.println("  mUseSoftwareAutoBrightnessConfig="
+                + mUseSoftwareAutoBrightnessConfig);
+
+        mHandler.runWithScissors(new Runnable() {
+            @Override
+            public void run() {
+                dumpLocal(pw);
+            }
+        }, 1000);
+    }
+
+    private void dumpLocal(PrintWriter pw) {
+        pw.println();
+        pw.println("Display Power Controller Thread State:");
+        pw.println("  mPowerRequest=" + mPowerRequest);
+        pw.println("  mWaitingForNegativeProximity=" + mWaitingForNegativeProximity);
+
+        pw.println("  mProximitySensor=" + mProximitySensor);
+        pw.println("  mProximitySensorEnabled=" + mProximitySensorEnabled);
+        pw.println("  mProximityThreshold=" + mProximityThreshold);
+        pw.println("  mProximity=" + proximityToString(mProximity));
+        pw.println("  mPendingProximity=" + proximityToString(mPendingProximity));
+        pw.println("  mPendingProximityDebounceTime="
+                + TimeUtils.formatUptime(mPendingProximityDebounceTime));
+        pw.println("  mScreenOffBecauseOfProximity=" + mScreenOffBecauseOfProximity);
+        pw.println("  mUsingScreenAutoBrightness=" + mUsingScreenAutoBrightness);
+
+        if (mElectronBeamOnAnimator != null) {
+            pw.println("  mElectronBeamOnAnimator.isStarted()=" +
+                    mElectronBeamOnAnimator.isStarted());
+        }
+        if (mElectronBeamOffAnimator != null) {
+            pw.println("  mElectronBeamOffAnimator.isStarted()=" +
+                    mElectronBeamOffAnimator.isStarted());
+        }
+
+        if (mPowerState != null) {
+            mPowerState.dump(pw);
+        }
+
+        if (mAutomaticBrightnessController != null) {
+            mAutomaticBrightnessController.dump(pw);
+        }
+
+    }
+
+    private static String proximityToString(int state) {
+        switch (state) {
+            case PROXIMITY_UNKNOWN:
+                return "Unknown";
+            case PROXIMITY_NEGATIVE:
+                return "Negative";
+            case PROXIMITY_POSITIVE:
+                return "Positive";
+            default:
+                return Integer.toString(state);
+        }
+    }
+
+    private static Spline createAutoBrightnessSpline(int[] lux, int[] brightness) {
+        try {
+            final int n = brightness.length;
+            float[] x = new float[n];
+            float[] y = new float[n];
+            y[0] = normalizeAbsoluteBrightness(brightness[0]);
+            for (int i = 1; i < n; i++) {
+                x[i] = lux[i - 1];
+                y[i] = normalizeAbsoluteBrightness(brightness[i]);
+            }
+
+            Spline spline = Spline.createMonotoneCubicSpline(x, y);
+            if (DEBUG) {
+                Slog.d(TAG, "Auto-brightness spline: " + spline);
+                for (float v = 1f; v < lux[lux.length - 1] * 1.25f; v *= 1.25f) {
+                    Slog.d(TAG, String.format("  %7.1f: %7.1f", v, spline.interpolate(v)));
+                }
+            }
+            return spline;
+        } catch (IllegalArgumentException ex) {
+            Slog.e(TAG, "Could not create auto-brightness spline.", ex);
+            return null;
+        }
+    }
+
+    private static float normalizeAbsoluteBrightness(int value) {
+        return (float)clampAbsoluteBrightness(value) / PowerManager.BRIGHTNESS_ON;
+    }
+
+    private static int clampAbsoluteBrightness(int value) {
+        return MathUtils.constrain(value, PowerManager.BRIGHTNESS_OFF, PowerManager.BRIGHTNESS_ON);
+    }
+
+    private final class DisplayControllerHandler extends Handler {
+        public DisplayControllerHandler(Looper looper) {
+            super(looper, null, true /*async*/);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_UPDATE_POWER_STATE:
+                    updatePowerState();
+                    break;
+
+                case MSG_PROXIMITY_SENSOR_DEBOUNCED:
+                    debounceProximitySensor();
+                    break;
+            }
+        }
+    }
+
+    private final SensorEventListener mProximitySensorListener = new SensorEventListener() {
+        @Override
+        public void onSensorChanged(SensorEvent event) {
+            if (mProximitySensorEnabled) {
+                final long time = SystemClock.uptimeMillis();
+                final float distance = event.values[0];
+                boolean positive = distance >= 0.0f && distance < mProximityThreshold;
+                handleProximitySensorEvent(time, positive);
+            }
+        }
+
+        @Override
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+            // Not used.
+        }
+    };
+}
diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java
new file mode 100644
index 0000000..a5f8849
--- /dev/null
+++ b/services/core/java/com/android/server/display/DisplayPowerState.java
@@ -0,0 +1,421 @@
+/*
+ * 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.
+ */
+
+package com.android.server.display;
+
+import com.android.server.lights.Light;
+
+import android.os.AsyncTask;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.PowerManager;
+import android.util.FloatProperty;
+import android.util.IntProperty;
+import android.util.Slog;
+import android.view.Choreographer;
+import android.view.Display;
+
+import java.io.PrintWriter;
+
+/**
+ * Controls the display power state.
+ * <p>
+ * This component is similar in nature to a {@link android.view.View} except that it
+ * describes the properties of a display.  When properties are changed, the component
+ * invalidates itself and posts a callback to apply the changes in a consistent order.
+ * This mechanism enables multiple properties of the display power state to be animated
+ * together smoothly by the animation framework.  Some of the work to blank or unblank
+ * the display is done on a separate thread to avoid blocking the looper.
+ * </p><p>
+ * This component must only be created or accessed by the {@link Looper} thread
+ * that belongs to the {@link DisplayPowerController}.
+ * </p><p>
+ * We don't need to worry about holding a suspend blocker here because the
+ * power manager does that for us whenever there is a change in progress.
+ * </p>
+ */
+final class DisplayPowerState {
+    private static final String TAG = "DisplayPowerState";
+
+    private static boolean DEBUG = false;
+
+    private final Handler mHandler;
+    private final Choreographer mChoreographer;
+    private final DisplayBlanker mBlanker;
+    private final Light mBacklight;
+    private final ElectronBeam mElectronBeam;
+    private final PhotonicModulator mPhotonicModulator;
+
+    private int mScreenState;
+    private int mScreenBrightness;
+    private boolean mScreenReady;
+    private boolean mScreenUpdatePending;
+
+    private boolean mElectronBeamPrepared;
+    private float mElectronBeamLevel;
+    private boolean mElectronBeamReady;
+    private boolean mElectronBeamDrawPending;
+
+    private Runnable mCleanListener;
+
+    public DisplayPowerState(DisplayBlanker blanker, Light backlight, ElectronBeam electronBeam) {
+        mHandler = new Handler(true /*async*/);
+        mChoreographer = Choreographer.getInstance();
+        mBlanker = blanker;
+        mBacklight = backlight;
+        mElectronBeam = electronBeam;
+        mPhotonicModulator = new PhotonicModulator();
+
+        // At boot time, we know that the screen is on and the electron beam
+        // animation is not playing.  We don't know the screen's brightness though,
+        // so prepare to set it to a known state when the state is next applied.
+        // Although we set the brightness to full on here, the display power controller
+        // will reset the brightness to a new level immediately before the changes
+        // actually have a chance to be applied.
+        mScreenState = Display.STATE_ON;
+        mScreenBrightness = PowerManager.BRIGHTNESS_ON;
+        scheduleScreenUpdate();
+
+        mElectronBeamPrepared = false;
+        mElectronBeamLevel = 1.0f;
+        mElectronBeamReady = true;
+    }
+
+    public static final FloatProperty<DisplayPowerState> ELECTRON_BEAM_LEVEL =
+            new FloatProperty<DisplayPowerState>("electronBeamLevel") {
+        @Override
+        public void setValue(DisplayPowerState object, float value) {
+            object.setElectronBeamLevel(value);
+        }
+
+        @Override
+        public Float get(DisplayPowerState object) {
+            return object.getElectronBeamLevel();
+        }
+    };
+
+    public static final IntProperty<DisplayPowerState> SCREEN_BRIGHTNESS =
+            new IntProperty<DisplayPowerState>("screenBrightness") {
+        @Override
+        public void setValue(DisplayPowerState object, int value) {
+            object.setScreenBrightness(value);
+        }
+
+        @Override
+        public Integer get(DisplayPowerState object) {
+            return object.getScreenBrightness();
+        }
+    };
+
+    /**
+     * Sets whether the screen is on, off, or dozing.
+     */
+    public void setScreenState(int state) {
+        if (mScreenState != state) {
+            if (DEBUG) {
+                Slog.d(TAG, "setScreenState: state=" + state);
+            }
+
+            mScreenState = state;
+            mScreenReady = false;
+            scheduleScreenUpdate();
+        }
+    }
+
+    /**
+     * Gets the desired screen state.
+     */
+    public int getScreenState() {
+        return mScreenState;
+    }
+
+    /**
+     * Sets the display brightness.
+     *
+     * @param brightness The brightness, ranges from 0 (minimum / off) to 255 (brightest).
+     */
+    public void setScreenBrightness(int brightness) {
+        if (mScreenBrightness != brightness) {
+            if (DEBUG) {
+                Slog.d(TAG, "setScreenBrightness: brightness=" + brightness);
+            }
+
+            mScreenBrightness = brightness;
+            if (mScreenState != Display.STATE_OFF) {
+                mScreenReady = false;
+                scheduleScreenUpdate();
+            }
+        }
+    }
+
+    /**
+     * Gets the screen brightness.
+     */
+    public int getScreenBrightness() {
+        return mScreenBrightness;
+    }
+
+    /**
+     * Prepares the electron beam to turn on or off.
+     * This method should be called before starting an animation because it
+     * can take a fair amount of time to prepare the electron beam surface.
+     *
+     * @param mode The electron beam animation mode to prepare.
+     * @return True if the electron beam was prepared.
+     */
+    public boolean prepareElectronBeam(int mode) {
+        if (!mElectronBeam.prepare(mode)) {
+            mElectronBeamPrepared = false;
+            mElectronBeamReady = true;
+            return false;
+        }
+
+        mElectronBeamPrepared = true;
+        mElectronBeamReady = false;
+        scheduleElectronBeamDraw();
+        return true;
+    }
+
+    /**
+     * Dismisses the electron beam surface.
+     */
+    public void dismissElectronBeam() {
+        mElectronBeam.dismiss();
+        mElectronBeamPrepared = false;
+        mElectronBeamReady = true;
+    }
+
+    /**
+     * Sets the level of the electron beam steering current.
+     *
+     * The display is blanked when the level is 0.0.  In normal use, the electron
+     * beam should have a value of 1.0.  The electron beam is unstable in between
+     * these states and the picture quality may be compromised.  For best effect,
+     * the electron beam should be warmed up or cooled off slowly.
+     *
+     * Warning: Electron beam emits harmful radiation.  Avoid direct exposure to
+     * skin or eyes.
+     *
+     * @param level The level, ranges from 0.0 (full off) to 1.0 (full on).
+     */
+    public void setElectronBeamLevel(float level) {
+        if (mElectronBeamLevel != level) {
+            if (DEBUG) {
+                Slog.d(TAG, "setElectronBeamLevel: level=" + level);
+            }
+
+            mElectronBeamLevel = level;
+            if (mScreenState != Display.STATE_OFF) {
+                mScreenReady = false;
+                scheduleScreenUpdate(); // update backlight brightness
+            }
+            if (mElectronBeamPrepared) {
+                mElectronBeamReady = false;
+                scheduleElectronBeamDraw();
+            }
+        }
+    }
+
+    /**
+     * Gets the level of the electron beam steering current.
+     */
+    public float getElectronBeamLevel() {
+        return mElectronBeamLevel;
+    }
+
+    /**
+     * Returns true if no properties have been invalidated.
+     * Otherwise, returns false and promises to invoke the specified listener
+     * when the properties have all been applied.
+     * The listener always overrides any previously set listener.
+     */
+    public boolean waitUntilClean(Runnable listener) {
+        if (!mScreenReady || !mElectronBeamReady) {
+            mCleanListener = listener;
+            return false;
+        } else {
+            mCleanListener = null;
+            return true;
+        }
+    }
+
+    public void dump(PrintWriter pw) {
+        pw.println();
+        pw.println("Display Power State:");
+        pw.println("  mScreenState=" + Display.stateToString(mScreenState));
+        pw.println("  mScreenBrightness=" + mScreenBrightness);
+        pw.println("  mScreenReady=" + mScreenReady);
+        pw.println("  mScreenUpdatePending=" + mScreenUpdatePending);
+        pw.println("  mElectronBeamPrepared=" + mElectronBeamPrepared);
+        pw.println("  mElectronBeamLevel=" + mElectronBeamLevel);
+        pw.println("  mElectronBeamReady=" + mElectronBeamReady);
+        pw.println("  mElectronBeamDrawPending=" + mElectronBeamDrawPending);
+
+        mPhotonicModulator.dump(pw);
+        mElectronBeam.dump(pw);
+    }
+
+    private void scheduleScreenUpdate() {
+        if (!mScreenUpdatePending) {
+            mScreenUpdatePending = true;
+            postScreenUpdateThreadSafe();
+        }
+    }
+
+    private void postScreenUpdateThreadSafe() {
+        mHandler.removeCallbacks(mScreenUpdateRunnable);
+        mHandler.post(mScreenUpdateRunnable);
+    }
+
+    private void scheduleElectronBeamDraw() {
+        if (!mElectronBeamDrawPending) {
+            mElectronBeamDrawPending = true;
+            mChoreographer.postCallback(Choreographer.CALLBACK_TRAVERSAL,
+                    mElectronBeamDrawRunnable, null);
+        }
+    }
+
+    private void invokeCleanListenerIfNeeded() {
+        final Runnable listener = mCleanListener;
+        if (listener != null && mScreenReady && mElectronBeamReady) {
+            mCleanListener = null;
+            listener.run();
+        }
+    }
+
+    private final Runnable mScreenUpdateRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mScreenUpdatePending = false;
+
+            int brightness = mScreenState != Display.STATE_OFF
+                    && mElectronBeamLevel > 0f ? mScreenBrightness : 0;
+            if (mPhotonicModulator.setState(mScreenState, brightness)) {
+                if (DEBUG) {
+                    Slog.d(TAG, "Screen ready");
+                }
+                mScreenReady = true;
+                invokeCleanListenerIfNeeded();
+            } else {
+                if (DEBUG) {
+                    Slog.d(TAG, "Screen not ready");
+                }
+            }
+        }
+    };
+
+    private final Runnable mElectronBeamDrawRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mElectronBeamDrawPending = false;
+
+            if (mElectronBeamPrepared) {
+                mElectronBeam.draw(mElectronBeamLevel);
+            }
+
+            mElectronBeamReady = true;
+            invokeCleanListenerIfNeeded();
+        }
+    };
+
+    /**
+     * Updates the state of the screen and backlight asynchronously on a separate thread.
+     */
+    private final class PhotonicModulator {
+        private static final int INITIAL_SCREEN_STATE = Display.STATE_OFF; // unknown, assume off
+        private static final int INITIAL_BACKLIGHT = -1; // unknown
+
+        private final Object mLock = new Object();
+
+        private int mPendingState = INITIAL_SCREEN_STATE;
+        private int mPendingBacklight = INITIAL_BACKLIGHT;
+        private int mActualState = INITIAL_SCREEN_STATE;
+        private int mActualBacklight = INITIAL_BACKLIGHT;
+        private boolean mChangeInProgress;
+
+        public boolean setState(int state, int backlight) {
+            synchronized (mLock) {
+                if (state != mPendingState || backlight != mPendingBacklight) {
+                    if (DEBUG) {
+                        Slog.d(TAG, "Requesting new screen state: state="
+                                + Display.stateToString(state) + ", backlight=" + backlight);
+                    }
+
+                    mPendingState = state;
+                    mPendingBacklight = backlight;
+
+                    if (!mChangeInProgress) {
+                        mChangeInProgress = true;
+                        AsyncTask.THREAD_POOL_EXECUTOR.execute(mTask);
+                    }
+                }
+                return !mChangeInProgress;
+            }
+        }
+
+        public void dump(PrintWriter pw) {
+            pw.println();
+            pw.println("Photonic Modulator State:");
+            pw.println("  mPendingState=" + Display.stateToString(mPendingState));
+            pw.println("  mPendingBacklight=" + mPendingBacklight);
+            pw.println("  mActualState=" + Display.stateToString(mActualState));
+            pw.println("  mActualBacklight=" + mActualBacklight);
+            pw.println("  mChangeInProgress=" + mChangeInProgress);
+        }
+
+        private final Runnable mTask = new Runnable() {
+            @Override
+            public void run() {
+                // Apply pending changes until done.
+                for (;;) {
+                    final int state;
+                    final boolean stateChanged;
+                    final int backlight;
+                    final boolean backlightChanged;
+                    synchronized (mLock) {
+                        state = mPendingState;
+                        stateChanged = (state != mActualState);
+                        backlight = mPendingBacklight;
+                        backlightChanged = (backlight != mActualBacklight);
+                        if (!stateChanged && !backlightChanged) {
+                            mChangeInProgress = false;
+                            break;
+                        }
+                        mActualState = state;
+                        mActualBacklight = backlight;
+                    }
+
+                    if (DEBUG) {
+                        Slog.d(TAG, "Updating screen state: state="
+                                + Display.stateToString(state) + ", backlight=" + backlight);
+                    }
+                    if (stateChanged && state != Display.STATE_OFF) {
+                        mBlanker.requestDisplayState(state);
+                    }
+                    if (backlightChanged) {
+                        mBacklight.setBrightness(backlight);
+                    }
+                    if (stateChanged && state == Display.STATE_OFF) {
+                        mBlanker.requestDisplayState(state);
+                    }
+                }
+
+                // Let the outer class know that all changes have been applied.
+                postScreenUpdateThreadSafe();
+            }
+        };
+    }
+}
diff --git a/services/core/java/com/android/server/display/ElectronBeam.java b/services/core/java/com/android/server/display/ElectronBeam.java
new file mode 100644
index 0000000..18e4049
--- /dev/null
+++ b/services/core/java/com/android/server/display/ElectronBeam.java
@@ -0,0 +1,739 @@
+/*
+ * 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.
+ */
+
+package com.android.server.display;
+
+import java.io.PrintWriter;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import android.graphics.PixelFormat;
+import android.graphics.SurfaceTexture;
+import android.hardware.display.DisplayManagerInternal;
+import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
+import android.opengl.EGL14;
+import android.opengl.EGLConfig;
+import android.opengl.EGLContext;
+import android.opengl.EGLDisplay;
+import android.opengl.EGLSurface;
+import android.opengl.GLES10;
+import android.opengl.GLES11Ext;
+import android.os.Looper;
+import android.util.FloatMath;
+import android.util.Slog;
+import android.view.DisplayInfo;
+import android.view.Surface.OutOfResourcesException;
+import android.view.Surface;
+import android.view.SurfaceControl;
+import android.view.SurfaceSession;
+
+import com.android.server.LocalServices;
+
+/**
+ * Bzzzoooop!  *crackle*
+ * <p>
+ * Animates a screen transition from on to off or off to on by applying
+ * some GL transformations to a screenshot.
+ * </p><p>
+ * This component must only be created or accessed by the {@link Looper} thread
+ * that belongs to the {@link DisplayPowerController}.
+ * </p>
+ */
+final class ElectronBeam {
+    private static final String TAG = "ElectronBeam";
+
+    private static final boolean DEBUG = false;
+
+    // The layer for the electron beam surface.
+    // This is currently hardcoded to be one layer above the boot animation.
+    private static final int ELECTRON_BEAM_LAYER = 0x40000001;
+
+    // The relative proportion of the animation to spend performing
+    // the horizontal stretch effect.  The remainder is spent performing
+    // the vertical stretch effect.
+    private static final float HSTRETCH_DURATION = 0.5f;
+    private static final float VSTRETCH_DURATION = 1.0f - HSTRETCH_DURATION;
+
+    // The number of frames to draw when preparing the animation so that it will
+    // be ready to run smoothly.  We use 3 frames because we are triple-buffered.
+    // See code for details.
+    private static final int DEJANK_FRAMES = 3;
+
+    private final int mDisplayId;
+
+    // Set to true when the animation context has been fully prepared.
+    private boolean mPrepared;
+    private int mMode;
+
+    private final DisplayManagerInternal mDisplayManagerInternal;
+    private int mDisplayLayerStack; // layer stack associated with primary display
+    private int mDisplayWidth;      // real width, not rotated
+    private int mDisplayHeight;     // real height, not rotated
+    private SurfaceSession mSurfaceSession;
+    private SurfaceControl mSurfaceControl;
+    private Surface mSurface;
+    private NaturalSurfaceLayout mSurfaceLayout;
+    private EGLDisplay mEglDisplay;
+    private EGLConfig mEglConfig;
+    private EGLContext mEglContext;
+    private EGLSurface mEglSurface;
+    private boolean mSurfaceVisible;
+    private float mSurfaceAlpha;
+
+    // Texture names.  We only use one texture, which contains the screenshot.
+    private final int[] mTexNames = new int[1];
+    private boolean mTexNamesGenerated;
+    private final float mTexMatrix[] = new float[16];
+
+    // Vertex and corresponding texture coordinates.
+    // We have 4 2D vertices, so 8 elements.  The vertices form a quad.
+    private final FloatBuffer mVertexBuffer = createNativeFloatBuffer(8);
+    private final FloatBuffer mTexCoordBuffer = createNativeFloatBuffer(8);
+
+    /**
+     * Animates an electron beam warming up.
+     */
+    public static final int MODE_WARM_UP = 0;
+
+    /**
+     * Animates an electron beam shutting off.
+     */
+    public static final int MODE_COOL_DOWN = 1;
+
+    /**
+     * Animates a simple dim layer to fade the contents of the screen in or out progressively.
+     */
+    public static final int MODE_FADE = 2;
+
+    public ElectronBeam(int displayId) {
+        mDisplayId = displayId;
+        mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
+    }
+
+    /**
+     * Warms up the electron beam in preparation for turning on or off.
+     * This method prepares a GL context, and captures a screen shot.
+     *
+     * @param mode The desired mode for the upcoming animation.
+     * @return True if the electron beam is ready, false if it is uncontrollable.
+     */
+    public boolean prepare(int mode) {
+        if (DEBUG) {
+            Slog.d(TAG, "prepare: mode=" + mode);
+        }
+
+        mMode = mode;
+
+        // Get the display size and layer stack.
+        // This is not expected to change while the electron beam surface is showing.
+        DisplayInfo displayInfo = mDisplayManagerInternal.getDisplayInfo(mDisplayId);
+        mDisplayLayerStack = displayInfo.layerStack;
+        mDisplayWidth = displayInfo.getNaturalWidth();
+        mDisplayHeight = displayInfo.getNaturalHeight();
+
+        // Prepare the surface for drawing.
+        if (!tryPrepare()) {
+            dismiss();
+            return false;
+        }
+
+        // Done.
+        mPrepared = true;
+
+        // Dejanking optimization.
+        // Some GL drivers can introduce a lot of lag in the first few frames as they
+        // initialize their state and allocate graphics buffers for rendering.
+        // Work around this problem by rendering the first frame of the animation a few
+        // times.  The rest of the animation should run smoothly thereafter.
+        // The frames we draw here aren't visible because we are essentially just
+        // painting the screenshot as-is.
+        if (mode == MODE_COOL_DOWN) {
+            for (int i = 0; i < DEJANK_FRAMES; i++) {
+                draw(1.0f);
+            }
+        }
+        return true;
+    }
+
+    private boolean tryPrepare() {
+        if (createSurface()) {
+            if (mMode == MODE_FADE) {
+                return true;
+            }
+            return createEglContext()
+                    && createEglSurface()
+                    && captureScreenshotTextureAndSetViewport();
+        }
+        return false;
+    }
+
+    /**
+     * Dismisses the electron beam animation surface and cleans up.
+     *
+     * To prevent stray photons from leaking out after the electron beam has been
+     * turned off, it is a good idea to defer dismissing the animation until the
+     * electron beam has been turned back on fully.
+     */
+    public void dismiss() {
+        if (DEBUG) {
+            Slog.d(TAG, "dismiss");
+        }
+
+        destroyScreenshotTexture();
+        destroyEglSurface();
+        destroySurface();
+        mPrepared = false;
+    }
+
+    /**
+     * Draws an animation frame showing the electron beam activated at the
+     * specified level.
+     *
+     * @param level The electron beam level.
+     * @return True if successful.
+     */
+    public boolean draw(float level) {
+        if (DEBUG) {
+            Slog.d(TAG, "drawFrame: level=" + level);
+        }
+
+        if (!mPrepared) {
+            return false;
+        }
+
+        if (mMode == MODE_FADE) {
+            return showSurface(1.0f - level);
+        }
+
+        if (!attachEglContext()) {
+            return false;
+        }
+        try {
+            // Clear frame to solid black.
+            GLES10.glClearColor(0f, 0f, 0f, 1f);
+            GLES10.glClear(GLES10.GL_COLOR_BUFFER_BIT);
+
+            // Draw the frame.
+            if (level < HSTRETCH_DURATION) {
+                drawHStretch(1.0f - (level / HSTRETCH_DURATION));
+            } else {
+                drawVStretch(1.0f - ((level - HSTRETCH_DURATION) / VSTRETCH_DURATION));
+            }
+            if (checkGlErrors("drawFrame")) {
+                return false;
+            }
+
+            EGL14.eglSwapBuffers(mEglDisplay, mEglSurface);
+        } finally {
+            detachEglContext();
+        }
+        return showSurface(1.0f);
+    }
+
+    /**
+     * Draws a frame where the content of the electron beam is collapsing inwards upon
+     * itself vertically with red / green / blue channels dispersing and eventually
+     * merging down to a single horizontal line.
+     *
+     * @param stretch The stretch factor.  0.0 is no collapse, 1.0 is full collapse.
+     */
+    private void drawVStretch(float stretch) {
+        // compute interpolation scale factors for each color channel
+        final float ar = scurve(stretch, 7.5f);
+        final float ag = scurve(stretch, 8.0f);
+        final float ab = scurve(stretch, 8.5f);
+        if (DEBUG) {
+            Slog.d(TAG, "drawVStretch: stretch=" + stretch
+                    + ", ar=" + ar + ", ag=" + ag + ", ab=" + ab);
+        }
+
+        // set blending
+        GLES10.glBlendFunc(GLES10.GL_ONE, GLES10.GL_ONE);
+        GLES10.glEnable(GLES10.GL_BLEND);
+
+        // bind vertex buffer
+        GLES10.glVertexPointer(2, GLES10.GL_FLOAT, 0, mVertexBuffer);
+        GLES10.glEnableClientState(GLES10.GL_VERTEX_ARRAY);
+
+        // set-up texturing
+        GLES10.glDisable(GLES10.GL_TEXTURE_2D);
+        GLES10.glEnable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
+
+        // bind texture and set blending for drawing planes
+        GLES10.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTexNames[0]);
+        GLES10.glTexEnvx(GLES10.GL_TEXTURE_ENV, GLES10.GL_TEXTURE_ENV_MODE,
+                mMode == MODE_WARM_UP ? GLES10.GL_MODULATE : GLES10.GL_REPLACE);
+        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
+                GLES10.GL_TEXTURE_MAG_FILTER, GLES10.GL_LINEAR);
+        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
+                GLES10.GL_TEXTURE_MIN_FILTER, GLES10.GL_LINEAR);
+        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
+                GLES10.GL_TEXTURE_WRAP_S, GLES10.GL_CLAMP_TO_EDGE);
+        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
+                GLES10.GL_TEXTURE_WRAP_T, GLES10.GL_CLAMP_TO_EDGE);
+        GLES10.glEnable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
+        GLES10.glTexCoordPointer(2, GLES10.GL_FLOAT, 0, mTexCoordBuffer);
+        GLES10.glEnableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);
+
+        // draw the red plane
+        setVStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ar);
+        GLES10.glColorMask(true, false, false, true);
+        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
+
+        // draw the green plane
+        setVStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ag);
+        GLES10.glColorMask(false, true, false, true);
+        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
+
+        // draw the blue plane
+        setVStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ab);
+        GLES10.glColorMask(false, false, true, true);
+        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
+
+        // clean up after drawing planes
+        GLES10.glDisable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
+        GLES10.glDisableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);
+        GLES10.glColorMask(true, true, true, true);
+
+        // draw the white highlight (we use the last vertices)
+        if (mMode == MODE_COOL_DOWN) {
+            GLES10.glColor4f(ag, ag, ag, 1.0f);
+            GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
+        }
+
+        // clean up
+        GLES10.glDisableClientState(GLES10.GL_VERTEX_ARRAY);
+        GLES10.glDisable(GLES10.GL_BLEND);
+    }
+
+    /**
+     * Draws a frame where the electron beam has been stretched out into
+     * a thin white horizontal line that fades as it collapses inwards.
+     *
+     * @param stretch The stretch factor.  0.0 is maximum stretch / no fade,
+     * 1.0 is collapsed / maximum fade.
+     */
+    private void drawHStretch(float stretch) {
+        // compute interpolation scale factor
+        final float ag = scurve(stretch, 8.0f);
+        if (DEBUG) {
+            Slog.d(TAG, "drawHStretch: stretch=" + stretch + ", ag=" + ag);
+        }
+
+        if (stretch < 1.0f) {
+            // bind vertex buffer
+            GLES10.glVertexPointer(2, GLES10.GL_FLOAT, 0, mVertexBuffer);
+            GLES10.glEnableClientState(GLES10.GL_VERTEX_ARRAY);
+
+            // draw narrow fading white line
+            setHStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ag);
+            GLES10.glColor4f(1.0f - ag*0.75f, 1.0f - ag*0.75f, 1.0f - ag*0.75f, 1.0f);
+            GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
+
+            // clean up
+            GLES10.glDisableClientState(GLES10.GL_VERTEX_ARRAY);
+        }
+    }
+
+    private static void setVStretchQuad(FloatBuffer vtx, float dw, float dh, float a) {
+        final float w = dw + (dw * a);
+        final float h = dh - (dh * a);
+        final float x = (dw - w) * 0.5f;
+        final float y = (dh - h) * 0.5f;
+        setQuad(vtx, x, y, w, h);
+    }
+
+    private static void setHStretchQuad(FloatBuffer vtx, float dw, float dh, float a) {
+        final float w = 2 * dw * (1.0f - a);
+        final float h = 1.0f;
+        final float x = (dw - w) * 0.5f;
+        final float y = (dh - h) * 0.5f;
+        setQuad(vtx, x, y, w, h);
+    }
+
+    private static void setQuad(FloatBuffer vtx, float x, float y, float w, float h) {
+        if (DEBUG) {
+            Slog.d(TAG, "setQuad: x=" + x + ", y=" + y + ", w=" + w + ", h=" + h);
+        }
+        vtx.put(0, x);
+        vtx.put(1, y);
+        vtx.put(2, x);
+        vtx.put(3, y + h);
+        vtx.put(4, x + w);
+        vtx.put(5, y + h);
+        vtx.put(6, x + w);
+        vtx.put(7, y);
+    }
+
+    private boolean captureScreenshotTextureAndSetViewport() {
+        if (!attachEglContext()) {
+            return false;
+        }
+        try {
+            if (!mTexNamesGenerated) {
+                GLES10.glGenTextures(1, mTexNames, 0);
+                if (checkGlErrors("glGenTextures")) {
+                    return false;
+                }
+                mTexNamesGenerated = true;
+            }
+
+            final SurfaceTexture st = new SurfaceTexture(mTexNames[0]);
+            final Surface s = new Surface(st);
+            try {
+                SurfaceControl.screenshot(SurfaceControl.getBuiltInDisplay(
+                        SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN), s);
+            } finally {
+                s.release();
+            }
+
+            st.updateTexImage();
+            st.getTransformMatrix(mTexMatrix);
+
+            // Set up texture coordinates for a quad.
+            // We might need to change this if the texture ends up being
+            // a different size from the display for some reason.
+            mTexCoordBuffer.put(0, 0f); mTexCoordBuffer.put(1, 0f);
+            mTexCoordBuffer.put(2, 0f); mTexCoordBuffer.put(3, 1f);
+            mTexCoordBuffer.put(4, 1f); mTexCoordBuffer.put(5, 1f);
+            mTexCoordBuffer.put(6, 1f); mTexCoordBuffer.put(7, 0f);
+
+            // Set up our viewport.
+            GLES10.glViewport(0, 0, mDisplayWidth, mDisplayHeight);
+            GLES10.glMatrixMode(GLES10.GL_PROJECTION);
+            GLES10.glLoadIdentity();
+            GLES10.glOrthof(0, mDisplayWidth, 0, mDisplayHeight, 0, 1);
+            GLES10.glMatrixMode(GLES10.GL_MODELVIEW);
+            GLES10.glLoadIdentity();
+            GLES10.glMatrixMode(GLES10.GL_TEXTURE);
+            GLES10.glLoadIdentity();
+            GLES10.glLoadMatrixf(mTexMatrix, 0);
+        } finally {
+            detachEglContext();
+        }
+        return true;
+    }
+
+    private void destroyScreenshotTexture() {
+        if (mTexNamesGenerated) {
+            mTexNamesGenerated = false;
+            if (attachEglContext()) {
+                try {
+                    GLES10.glDeleteTextures(1, mTexNames, 0);
+                    checkGlErrors("glDeleteTextures");
+                } finally {
+                    detachEglContext();
+                }
+            }
+        }
+    }
+
+    private boolean createEglContext() {
+        if (mEglDisplay == null) {
+            mEglDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
+            if (mEglDisplay == EGL14.EGL_NO_DISPLAY) {
+                logEglError("eglGetDisplay");
+                return false;
+            }
+
+            int[] version = new int[2];
+            if (!EGL14.eglInitialize(mEglDisplay, version, 0, version, 1)) {
+                mEglDisplay = null;
+                logEglError("eglInitialize");
+                return false;
+            }
+        }
+
+        if (mEglConfig == null) {
+            int[] eglConfigAttribList = new int[] {
+                    EGL14.EGL_RED_SIZE, 8,
+                    EGL14.EGL_GREEN_SIZE, 8,
+                    EGL14.EGL_BLUE_SIZE, 8,
+                    EGL14.EGL_ALPHA_SIZE, 8,
+                    EGL14.EGL_NONE
+            };
+            int[] numEglConfigs = new int[1];
+            EGLConfig[] eglConfigs = new EGLConfig[1];
+            if (!EGL14.eglChooseConfig(mEglDisplay, eglConfigAttribList, 0,
+                    eglConfigs, 0, eglConfigs.length, numEglConfigs, 0)) {
+                logEglError("eglChooseConfig");
+                return false;
+            }
+            mEglConfig = eglConfigs[0];
+        }
+
+        if (mEglContext == null) {
+            int[] eglContextAttribList = new int[] {
+                    EGL14.EGL_NONE
+            };
+            mEglContext = EGL14.eglCreateContext(mEglDisplay, mEglConfig,
+                    EGL14.EGL_NO_CONTEXT, eglContextAttribList, 0);
+            if (mEglContext == null) {
+                logEglError("eglCreateContext");
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /* not used because it is too expensive to create / destroy contexts all of the time
+    private void destroyEglContext() {
+        if (mEglContext != null) {
+            if (!EGL14.eglDestroyContext(mEglDisplay, mEglContext)) {
+                logEglError("eglDestroyContext");
+            }
+            mEglContext = null;
+        }
+    }*/
+
+    private boolean createSurface() {
+        if (mSurfaceSession == null) {
+            mSurfaceSession = new SurfaceSession();
+        }
+
+        SurfaceControl.openTransaction();
+        try {
+            if (mSurfaceControl == null) {
+                try {
+                    int flags;
+                    if (mMode == MODE_FADE) {
+                        flags = SurfaceControl.FX_SURFACE_DIM | SurfaceControl.HIDDEN;
+                    } else {
+                        flags = SurfaceControl.OPAQUE | SurfaceControl.HIDDEN;
+                    }
+                    mSurfaceControl = new SurfaceControl(mSurfaceSession,
+                            "ElectronBeam", mDisplayWidth, mDisplayHeight,
+                            PixelFormat.OPAQUE, flags);
+                } catch (OutOfResourcesException ex) {
+                    Slog.e(TAG, "Unable to create surface.", ex);
+                    return false;
+                }
+            }
+
+            mSurfaceControl.setLayerStack(mDisplayLayerStack);
+            mSurfaceControl.setSize(mDisplayWidth, mDisplayHeight);
+            mSurface = new Surface();
+            mSurface.copyFrom(mSurfaceControl);
+
+            mSurfaceLayout = new NaturalSurfaceLayout(mDisplayManagerInternal,
+                    mDisplayId, mSurfaceControl);
+            mSurfaceLayout.onDisplayTransaction();
+        } finally {
+            SurfaceControl.closeTransaction();
+        }
+        return true;
+    }
+
+    private boolean createEglSurface() {
+        if (mEglSurface == null) {
+            int[] eglSurfaceAttribList = new int[] {
+                    EGL14.EGL_NONE
+            };
+            // turn our SurfaceControl into a Surface
+            mEglSurface = EGL14.eglCreateWindowSurface(mEglDisplay, mEglConfig, mSurface,
+                    eglSurfaceAttribList, 0);
+            if (mEglSurface == null) {
+                logEglError("eglCreateWindowSurface");
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private void destroyEglSurface() {
+        if (mEglSurface != null) {
+            if (!EGL14.eglDestroySurface(mEglDisplay, mEglSurface)) {
+                logEglError("eglDestroySurface");
+            }
+            mEglSurface = null;
+        }
+    }
+
+    private void destroySurface() {
+        if (mSurfaceControl != null) {
+            mSurfaceLayout.dispose();
+            mSurfaceLayout = null;
+            SurfaceControl.openTransaction();
+            try {
+                mSurfaceControl.destroy();
+                mSurface.release();
+            } finally {
+                SurfaceControl.closeTransaction();
+            }
+            mSurfaceControl = null;
+            mSurfaceVisible = false;
+            mSurfaceAlpha = 0f;
+        }
+    }
+
+    private boolean showSurface(float alpha) {
+        if (!mSurfaceVisible || mSurfaceAlpha != alpha) {
+            SurfaceControl.openTransaction();
+            try {
+                mSurfaceControl.setLayer(ELECTRON_BEAM_LAYER);
+                mSurfaceControl.setAlpha(alpha);
+                mSurfaceControl.show();
+            } finally {
+                SurfaceControl.closeTransaction();
+            }
+            mSurfaceVisible = true;
+            mSurfaceAlpha = alpha;
+        }
+        return true;
+    }
+
+    private boolean attachEglContext() {
+        if (mEglSurface == null) {
+            return false;
+        }
+        if (!EGL14.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) {
+            logEglError("eglMakeCurrent");
+            return false;
+        }
+        return true;
+    }
+
+    private void detachEglContext() {
+        if (mEglDisplay != null) {
+            EGL14.eglMakeCurrent(mEglDisplay,
+                    EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT);
+        }
+    }
+
+    /**
+     * Interpolates a value in the range 0 .. 1 along a sigmoid curve
+     * yielding a result in the range 0 .. 1 scaled such that:
+     * scurve(0) == 0, scurve(0.5) == 0.5, scurve(1) == 1.
+     */
+    private static float scurve(float value, float s) {
+        // A basic sigmoid has the form y = 1.0f / FloatMap.exp(-x * s).
+        // Here we take the input datum and shift it by 0.5 so that the
+        // domain spans the range -0.5 .. 0.5 instead of 0 .. 1.
+        final float x = value - 0.5f;
+
+        // Next apply the sigmoid function to the scaled value
+        // which produces a value in the range 0 .. 1 so we subtract
+        // 0.5 to get a value in the range -0.5 .. 0.5 instead.
+        final float y = sigmoid(x, s) - 0.5f;
+
+        // To obtain the desired boundary conditions we need to scale
+        // the result so that it fills a range of -1 .. 1.
+        final float v = sigmoid(0.5f, s) - 0.5f;
+
+        // And finally remap the value back to a range of 0 .. 1.
+        return y / v * 0.5f + 0.5f;
+    }
+
+    private static float sigmoid(float x, float s) {
+        return 1.0f / (1.0f + FloatMath.exp(-x * s));
+    }
+
+    private static FloatBuffer createNativeFloatBuffer(int size) {
+        ByteBuffer bb = ByteBuffer.allocateDirect(size * 4);
+        bb.order(ByteOrder.nativeOrder());
+        return bb.asFloatBuffer();
+    }
+
+    private static void logEglError(String func) {
+        Slog.e(TAG, func + " failed: error " + EGL14.eglGetError(), new Throwable());
+    }
+
+    private static boolean checkGlErrors(String func) {
+        return checkGlErrors(func, true);
+    }
+
+    private static boolean checkGlErrors(String func, boolean log) {
+        boolean hadError = false;
+        int error;
+        while ((error = GLES10.glGetError()) != GLES10.GL_NO_ERROR) {
+            if (log) {
+                Slog.e(TAG, func + " failed: error " + error, new Throwable());
+            }
+            hadError = true;
+        }
+        return hadError;
+    }
+
+    public void dump(PrintWriter pw) {
+        pw.println();
+        pw.println("Electron Beam State:");
+        pw.println("  mPrepared=" + mPrepared);
+        pw.println("  mMode=" + mMode);
+        pw.println("  mDisplayLayerStack=" + mDisplayLayerStack);
+        pw.println("  mDisplayWidth=" + mDisplayWidth);
+        pw.println("  mDisplayHeight=" + mDisplayHeight);
+        pw.println("  mSurfaceVisible=" + mSurfaceVisible);
+        pw.println("  mSurfaceAlpha=" + mSurfaceAlpha);
+    }
+
+    /**
+     * Keeps a surface aligned with the natural orientation of the device.
+     * Updates the position and transformation of the matrix whenever the display
+     * is rotated.  This is a little tricky because the display transaction
+     * callback can be invoked on any thread, not necessarily the thread that
+     * owns the electron beam.
+     */
+    private static final class NaturalSurfaceLayout implements DisplayTransactionListener {
+        private final DisplayManagerInternal mDisplayManagerInternal;
+        private final int mDisplayId;
+        private SurfaceControl mSurfaceControl;
+
+        public NaturalSurfaceLayout(DisplayManagerInternal displayManagerInternal,
+                int displayId, SurfaceControl surfaceControl) {
+            mDisplayManagerInternal = displayManagerInternal;
+            mDisplayId = displayId;
+            mSurfaceControl = surfaceControl;
+            mDisplayManagerInternal.registerDisplayTransactionListener(this);
+        }
+
+        public void dispose() {
+            synchronized (this) {
+                mSurfaceControl = null;
+            }
+            mDisplayManagerInternal.unregisterDisplayTransactionListener(this);
+        }
+
+        @Override
+        public void onDisplayTransaction() {
+            synchronized (this) {
+                if (mSurfaceControl == null) {
+                    return;
+                }
+
+                DisplayInfo displayInfo = mDisplayManagerInternal.getDisplayInfo(mDisplayId);
+                switch (displayInfo.rotation) {
+                    case Surface.ROTATION_0:
+                        mSurfaceControl.setPosition(0, 0);
+                        mSurfaceControl.setMatrix(1, 0, 0, 1);
+                        break;
+                    case Surface.ROTATION_90:
+                        mSurfaceControl.setPosition(0, displayInfo.logicalHeight);
+                        mSurfaceControl.setMatrix(0, -1, 1, 0);
+                        break;
+                    case Surface.ROTATION_180:
+                        mSurfaceControl.setPosition(displayInfo.logicalWidth, displayInfo.logicalHeight);
+                        mSurfaceControl.setMatrix(-1, 0, 0, -1);
+                        break;
+                    case Surface.ROTATION_270:
+                        mSurfaceControl.setPosition(displayInfo.logicalWidth, 0);
+                        mSurfaceControl.setMatrix(0, 1, -1, 0);
+                        break;
+                }
+            }
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 02be477..2c8f1b4 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -101,7 +101,7 @@
 
         private DisplayDeviceInfo mInfo;
         private boolean mHavePendingChanges;
-        private boolean mBlanked;
+        private int mState = Display.STATE_UNKNOWN;
 
         public LocalDisplayDevice(IBinder displayToken, int builtInDisplayId,
                 SurfaceControl.PhysicalDisplayInfo phys) {
@@ -134,6 +134,7 @@
                 mInfo.width = mPhys.width;
                 mInfo.height = mPhys.height;
                 mInfo.refreshRate = mPhys.refreshRate;
+                mInfo.state = mState;
 
                 // Assume that all built-in displays that have secure output (eg. HDCP) also
                 // support compositing from gralloc protected buffers.
@@ -177,15 +178,16 @@
         }
 
         @Override
-        public void blankLocked() {
-            mBlanked = true;
-            SurfaceControl.blankDisplay(getDisplayTokenLocked());
-        }
-
-        @Override
-        public void unblankLocked() {
-            mBlanked = false;
-            SurfaceControl.unblankDisplay(getDisplayTokenLocked());
+        public void requestDisplayStateLocked(int state) {
+            if (mState != state) {
+                if (state == Display.STATE_OFF && mState != Display.STATE_OFF) {
+                    SurfaceControl.blankDisplay(getDisplayTokenLocked());
+                } else if (state != Display.STATE_OFF && mState == Display.STATE_OFF) {
+                    SurfaceControl.unblankDisplay(getDisplayTokenLocked());
+                }
+                mState = state;
+                updateDeviceInfoLocked();
+            }
         }
 
         @Override
@@ -193,7 +195,12 @@
             super.dumpLocked(pw);
             pw.println("mBuiltInDisplayId=" + mBuiltInDisplayId);
             pw.println("mPhys=" + mPhys);
-            pw.println("mBlanked=" + mBlanked);
+            pw.println("mState=" + Display.stateToString(mState));
+        }
+
+        private void updateDeviceInfoLocked() {
+            mInfo = null;
+            sendDisplayDeviceEventLocked(this, DISPLAY_DEVICE_EVENT_CHANGED);
         }
     }
 
diff --git a/services/core/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java
index c26c438..d61a35b 100644
--- a/services/core/java/com/android/server/display/LogicalDisplay.java
+++ b/services/core/java/com/android/server/display/LogicalDisplay.java
@@ -114,6 +114,7 @@
                 mInfo.copyFrom(mOverrideDisplayInfo);
                 mInfo.layerStack = mBaseDisplayInfo.layerStack;
                 mInfo.name = mBaseDisplayInfo.name;
+                mInfo.state = mBaseDisplayInfo.state;
             } else {
                 mInfo.copyFrom(mBaseDisplayInfo);
             }
@@ -212,6 +213,7 @@
             mBaseDisplayInfo.logicalDensityDpi = deviceInfo.densityDpi;
             mBaseDisplayInfo.physicalXDpi = deviceInfo.xDpi;
             mBaseDisplayInfo.physicalYDpi = deviceInfo.yDpi;
+            mBaseDisplayInfo.state = deviceInfo.state;
             mBaseDisplayInfo.smallestNominalAppWidth = deviceInfo.width;
             mBaseDisplayInfo.smallestNominalAppHeight = deviceInfo.height;
             mBaseDisplayInfo.largestNominalAppWidth = deviceInfo.width;
diff --git a/services/core/java/com/android/server/display/OverlayDisplayAdapter.java b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java
index 007acf7..bfd8372c 100644
--- a/services/core/java/com/android/server/display/OverlayDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java
@@ -194,12 +194,14 @@
         private final int mDensityDpi;
         private final boolean mSecure;
 
-        private Surface mSurface;
+        private int mState;
         private SurfaceTexture mSurfaceTexture;
+        private Surface mSurface;
         private DisplayDeviceInfo mInfo;
 
         public OverlayDisplayDevice(IBinder displayToken, String name,
-                int width, int height, float refreshRate, int densityDpi, boolean secure,
+                int width, int height, float refreshRate,
+                int densityDpi, boolean secure, int state,
                 SurfaceTexture surfaceTexture) {
             super(OverlayDisplayAdapter.this, displayToken);
             mName = name;
@@ -208,6 +210,7 @@
             mRefreshRate = refreshRate;
             mDensityDpi = densityDpi;
             mSecure = secure;
+            mState = state;
             mSurfaceTexture = surfaceTexture;
         }
 
@@ -230,6 +233,11 @@
             }
         }
 
+        public void setStateLocked(int state) {
+            mState = state;
+            mInfo = null;
+        }
+
         @Override
         public DisplayDeviceInfo getDisplayDeviceInfoLocked() {
             if (mInfo == null) {
@@ -247,6 +255,7 @@
                 }
                 mInfo.type = Display.TYPE_OVERLAY;
                 mInfo.touch = DisplayDeviceInfo.TOUCH_NONE;
+                mInfo.state = mState;
             }
             return mInfo;
         }
@@ -288,11 +297,12 @@
 
         // Called on the UI thread.
         @Override
-        public void onWindowCreated(SurfaceTexture surfaceTexture, float refreshRate) {
+        public void onWindowCreated(SurfaceTexture surfaceTexture, float refreshRate, int state) {
             synchronized (getSyncRoot()) {
                 IBinder displayToken = SurfaceControl.createDisplay(mName, mSecure);
                 mDevice = new OverlayDisplayDevice(displayToken, mName,
-                        mWidth, mHeight, refreshRate, mDensityDpi, mSecure, surfaceTexture);
+                        mWidth, mHeight, refreshRate, mDensityDpi, mSecure,
+                        state, surfaceTexture);
 
                 sendDisplayDeviceEventLocked(mDevice, DISPLAY_DEVICE_EVENT_ADDED);
             }
@@ -309,6 +319,17 @@
             }
         }
 
+        // Called on the UI thread.
+        @Override
+        public void onStateChanged(int state) {
+            synchronized (getSyncRoot()) {
+                if (mDevice != null) {
+                    mDevice.setStateLocked(state);
+                    sendDisplayDeviceEventLocked(mDevice, DISPLAY_DEVICE_EVENT_CHANGED);
+                }
+            }
+        }
+
         public void dumpLocked(PrintWriter pw) {
             pw.println("  " + mName + ":");
             pw.println("    mWidth=" + mWidth);
diff --git a/services/core/java/com/android/server/display/OverlayDisplayWindow.java b/services/core/java/com/android/server/display/OverlayDisplayWindow.java
index f1dd60a..06891f3 100644
--- a/services/core/java/com/android/server/display/OverlayDisplayWindow.java
+++ b/services/core/java/com/android/server/display/OverlayDisplayWindow.java
@@ -282,6 +282,7 @@
             if (displayId == mDefaultDisplay.getDisplayId()) {
                 if (updateDefaultDisplayInfo()) {
                     relayout();
+                    mListener.onStateChanged(mDefaultDisplayInfo.state);
                 } else {
                     dismiss();
                 }
@@ -301,7 +302,8 @@
         @Override
         public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture,
                 int width, int height) {
-            mListener.onWindowCreated(surfaceTexture, mDefaultDisplayInfo.refreshRate);
+            mListener.onWindowCreated(surfaceTexture, mDefaultDisplayInfo.refreshRate,
+                    mDefaultDisplayInfo.state);
         }
 
         @Override
@@ -370,7 +372,9 @@
      * Watches for significant changes in the overlay display window lifecycle.
      */
     public interface Listener {
-        public void onWindowCreated(SurfaceTexture surfaceTexture, float refreshRate);
+        public void onWindowCreated(SurfaceTexture surfaceTexture,
+                float refreshRate, int state);
         public void onWindowDestroyed();
+        public void onStateChanged(int state);
     }
 }
\ No newline at end of file
diff --git a/services/core/java/com/android/server/display/RampAnimator.java b/services/core/java/com/android/server/display/RampAnimator.java
new file mode 100644
index 0000000..6688d6a
--- /dev/null
+++ b/services/core/java/com/android/server/display/RampAnimator.java
@@ -0,0 +1,137 @@
+/*
+ * 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.
+ */
+
+package com.android.server.display;
+
+import android.animation.ValueAnimator;
+import android.util.IntProperty;
+import android.view.Choreographer;
+
+/**
+ * A custom animator that progressively updates a property value at
+ * a given variable rate until it reaches a particular target value.
+ */
+final class RampAnimator<T> {
+    private final T mObject;
+    private final IntProperty<T> mProperty;
+    private final Choreographer mChoreographer;
+
+    private int mCurrentValue;
+    private int mTargetValue;
+    private int mRate;
+
+    private boolean mAnimating;
+    private float mAnimatedValue; // higher precision copy of mCurrentValue
+    private long mLastFrameTimeNanos;
+
+    private boolean mFirstTime = true;
+
+    public RampAnimator(T object, IntProperty<T> property) {
+        mObject = object;
+        mProperty = property;
+        mChoreographer = Choreographer.getInstance();
+    }
+
+    /**
+     * Starts animating towards the specified value.
+     *
+     * If this is the first time the property is being set, the value jumps
+     * directly to the target.
+     *
+     * @param target The target value.
+     * @param rate The convergence rate, in units per second.
+     * @return True if the target differs from the previous target.
+     */
+    public boolean animateTo(int target, int rate) {
+        // Immediately jump to the target the first time.
+        if (mFirstTime) {
+            mFirstTime = false;
+            mProperty.setValue(mObject, target);
+            mCurrentValue = target;
+            return true;
+        }
+
+        // Adjust the rate based on the closest target.
+        // If a faster rate is specified, then use the new rate so that we converge
+        // more rapidly based on the new request.
+        // If a slower rate is specified, then use the new rate only if the current
+        // value is somewhere in between the new and the old target meaning that
+        // we will be ramping in a different direction to get there.
+        // Otherwise, continue at the previous rate.
+        if (!mAnimating
+                || rate > mRate
+                || (target <= mCurrentValue && mCurrentValue <= mTargetValue)
+                || (mTargetValue <= mCurrentValue && mCurrentValue <= target)) {
+            mRate = rate;
+        }
+
+        final boolean changed = (mTargetValue != target);
+        mTargetValue = target;
+
+        // Start animating.
+        if (!mAnimating && target != mCurrentValue) {
+            mAnimating = true;
+            mAnimatedValue = mCurrentValue;
+            mLastFrameTimeNanos = System.nanoTime();
+            postCallback();
+        }
+
+        return changed;
+    }
+
+    private void postCallback() {
+        mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mCallback, null);
+    }
+
+    private final Runnable mCallback = new Runnable() {
+        @Override // Choreographer callback
+        public void run() {
+            final long frameTimeNanos = mChoreographer.getFrameTimeNanos();
+            final float timeDelta = (frameTimeNanos - mLastFrameTimeNanos)
+                    * 0.000000001f;
+            mLastFrameTimeNanos = frameTimeNanos;
+
+            // Advance the animated value towards the target at the specified rate
+            // and clamp to the target. This gives us the new current value but
+            // we keep the animated value around to allow for fractional increments
+            // towards the target.
+            final float scale = ValueAnimator.getDurationScale();
+            if (scale == 0) {
+                // Animation off.
+                mAnimatedValue = mTargetValue;
+            } else {
+                final float amount = timeDelta * mRate / scale;
+                if (mTargetValue > mCurrentValue) {
+                    mAnimatedValue = Math.min(mAnimatedValue + amount, mTargetValue);
+                } else {
+                    mAnimatedValue = Math.max(mAnimatedValue - amount, mTargetValue);
+                }
+            }
+            final int oldCurrentValue = mCurrentValue;
+            mCurrentValue = Math.round(mAnimatedValue);
+
+            if (oldCurrentValue != mCurrentValue) {
+                mProperty.setValue(mObject, mCurrentValue);
+            }
+
+            if (mTargetValue != mCurrentValue) {
+                postCallback();
+            } else {
+                mAnimating = false;
+            }
+        }
+    };
+}
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecDevice.java
index 9916435..baae1d9 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecDevice.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecDevice.java
@@ -27,8 +27,12 @@
 import java.util.List;
 
 /**
- * CecDevice class represents a CEC logical device characterized
- * by its device type. A physical device can contain the functions of
+ * HdmiCecDevice class represents a CEC logical device characterized
+ * by its device type. It is a superclass of those serving concrete device type.
+ * Currently we're interested in playback(one of sources), display(sink) device type
+ * only. The support for the other types like recorder, audio system will come later.
+ *
+ * <p>A physical device can contain the functions of
  * more than one logical device, in which case it should create
  * as many logical devices as necessary.
  *
@@ -41,7 +45,7 @@
  *
  * <p>Declared as package-private, accessed by HdmiCecService only.
  */
-final class HdmiCecDevice {
+abstract class HdmiCecDevice {
     private static final String TAG = "HdmiCecDevice";
 
     private final int mType;
@@ -49,19 +53,38 @@
     // List of listeners to the message/event coming to the device.
     private final List<IHdmiCecListener> mListeners = new ArrayList<IHdmiCecListener>();
     private final Binder mBinder = new Binder();
+    private final HdmiCecService mService;
 
-    private String mName;
     private boolean mIsActiveSource;
 
     /**
+     * Factory method that creates HdmiCecDevice instance to the device type.
+     */
+    public static HdmiCecDevice create(HdmiCecService service, int type) {
+        if (type == HdmiCec.DEVICE_PLAYBACK) {
+            return new HdmiCecDevicePlayback(service, type);
+        } else if (type == HdmiCec.DEVICE_TV) {
+            return new HdmiCecDeviceTv(service, type);
+        }
+        return null;
+    }
+
+    /**
      * Constructor.
      */
-    public HdmiCecDevice(int type) {
+    public HdmiCecDevice(HdmiCecService service, int type) {
+        mService = service;
         mType = type;
         mIsActiveSource = false;
     }
 
     /**
+     * Called right after the class is instantiated. This method can be used to
+     * implement any initialization tasks for the instance.
+     */
+    abstract public void initialize();
+
+    /**
      * Return the binder token that identifies this instance.
      */
     public Binder getToken() {
@@ -69,6 +92,13 @@
     }
 
     /**
+     * Return the service instance.
+     */
+    public HdmiCecService getService() {
+        return mService;
+    }
+
+    /**
      * Return the type of this device.
      */
     public int getType() {
@@ -76,24 +106,6 @@
     }
 
     /**
-     * Set the name of the device. The name will be transferred via the message
-     * &lt;Set OSD Name&gt; to other HDMI-CEC devices connected through HDMI
-     * cables and shown on TV screen to identify the devicie.
-     *
-     * @param name name of the device
-     */
-    public void setName(String name) {
-        mName = name;
-    }
-
-    /**
-     * Return the name of this device.
-     */
-    public String getName() {
-        return mName;
-    }
-
-    /**
      * Register a listener to be invoked when events occur.
      *
      * @param listener the listern that will run
@@ -128,6 +140,7 @@
         if (opcode == HdmiCec.MESSAGE_ACTIVE_SOURCE) {
             mIsActiveSource = false;
         }
+
         if (mListeners.size() == 0) {
             return;
         }
@@ -167,4 +180,51 @@
     public void setIsActiveSource(boolean state) {
         mIsActiveSource = state;
     }
+
+    /**
+     * Send &lt;Active Source&gt; command. The default implementation does nothing. Should be
+     * overriden by subclass.
+     */
+    public void sendActiveSource(int physicalAddress) {
+        logWarning("<Active Source> not valid for the device type: " + mType
+                + " address:" + physicalAddress);
+    }
+
+    /**
+     * Send &lt;Inactive Source&gt; command. The default implementation does nothing. Should be
+     * overriden by subclass.
+     */
+    public void sendInactiveSource(int physicalAddress) {
+        logWarning("<Inactive Source> not valid for the device type: " + mType
+                + " address:" + physicalAddress);
+    }
+
+    /**
+     * Send &lt;Image View On&gt; command. The default implementation does nothing. Should be
+     * overriden by subclass.
+     */
+    public void sendImageViewOn() {
+        logWarning("<Image View On> not valid for the device type: " + mType);
+    }
+
+    /**
+     * Send &lt;Text View On&gt; command. The default implementation does nothing. Should be
+     * overriden by subclass.
+     */
+    public void sendTextViewOn() {
+        logWarning("<Text View On> not valid for the device type: " + mType);
+    }
+
+    /**
+     * Check if the connected sink device is in powered-on state. The default implementation
+     * simply returns false. Should be overriden by subclass to report the correct state.
+     */
+    public boolean isSinkDeviceOn() {
+        logWarning("isSinkDeviceOn() not valid for the device type: " + mType);
+        return false;
+    }
+
+    private void logWarning(String msg) {
+        Log.w(TAG, msg);
+    }
 }
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecDevicePlayback.java
new file mode 100644
index 0000000..f8cf11d
--- /dev/null
+++ b/services/core/java/com/android/server/hdmi/HdmiCecDevicePlayback.java
@@ -0,0 +1,129 @@
+/*
+ * 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.android.server.hdmi;
+
+import android.hardware.hdmi.HdmiCec;
+
+/**
+ * Class for the logical device of playback type. Devices such as DVD/Blueray player
+ * that support 'playback' feature are classified as playback device. It is common
+ * that they don't have built-in display, therefore need to talk, stream their contents
+ * to TV/display device which is connected through HDMI cable.
+ *
+ * <p>It closely monitors the status of display device (other devices can be of interest
+ * too, but with much less priority), declares itself as 'active source' to have
+ * display show its output, switch the source state as ordered by display that may be
+ * talking to many other devices connected to it. It also receives commands from display
+ * such as remote control signal, standby, status report, playback mode.
+ *
+ * <p>Declared as package-private, accessed by HdmiCecService only.
+ */
+final class HdmiCecDevicePlayback extends HdmiCecDevice {
+    private static final String TAG = "HdmiCecDevicePlayback";
+
+    private int mSinkDevicePowerStatus;
+
+    /**
+     * Constructor.
+     */
+    public HdmiCecDevicePlayback(HdmiCecService service, int type) {
+        super(service, type);
+        mSinkDevicePowerStatus = HdmiCec.POWER_STATUS_UNKNOWN;
+    }
+
+    @Override
+    public void initialize() {
+        // Playback device tries to obtain the power status of TV/display when created,
+        // and maintains it all through its lifecycle. CEC spec says there is
+        // a maximum 1 second response time. Therefore it should be kept in mind
+        // that there can be as much amount of period of time the power status
+        // of the display remains unknown after the query is sent out.
+        queryTvPowerStatus();
+    }
+
+    private void queryTvPowerStatus() {
+        getService().sendMessage(getType(), HdmiCec.ADDR_TV,
+                HdmiCec.MESSAGE_GIVE_DEVICE_POWER_STATUS, HdmiCecService.EMPTY_PARAM);
+    }
+
+    @Override
+    public void handleMessage(int srcAddress, int dstAddress, int opcode, byte[] params) {
+        // Updates power status of display. The cases are:
+        // 1) Response for the queried power status request arrives. Update the status.
+        // 2) Broadcast or direct <Standby> command from TV, which is sent as TV itself is going
+        //    into standby mode too.
+        if (opcode == HdmiCec.MESSAGE_REPORT_POWER_STATUS) {
+            mSinkDevicePowerStatus = params[0];
+        } else if (srcAddress == HdmiCec.ADDR_TV) {
+            if (opcode == HdmiCec.MESSAGE_STANDBY) {
+                mSinkDevicePowerStatus = HdmiCec.POWER_STATUS_STANDBY;
+            }
+        }
+        super.handleMessage(srcAddress, dstAddress, opcode, params);
+    }
+
+    @Override
+    public void handleHotplug(boolean connected) {
+        // If cable get disconnected sink device becomes unreachable. Switch the status
+        // to unknown, and query the status once the cable gets connected back.
+        if (!connected) {
+            mSinkDevicePowerStatus = HdmiCec.POWER_STATUS_UNKNOWN;
+        } else {
+            queryTvPowerStatus();
+        }
+        super.handleHotplug(connected);
+    }
+
+    @Override
+    public boolean isSinkDeviceOn() {
+        return mSinkDevicePowerStatus == HdmiCec.POWER_STATUS_ON;
+    }
+
+    @Override
+    public void sendActiveSource(int physicalAddress) {
+        setIsActiveSource(true);
+        byte[] param = new byte[] {
+                (byte) ((physicalAddress >> 8) & 0xff),
+                (byte) (physicalAddress & 0xff)
+        };
+        getService().sendMessage(getType(), HdmiCec.ADDR_BROADCAST, HdmiCec.MESSAGE_ACTIVE_SOURCE,
+                param);
+    }
+
+    @Override
+    public void sendInactiveSource(int physicalAddress) {
+        setIsActiveSource(false);
+        byte[] param = new byte[] {
+                (byte) ((physicalAddress >> 8) & 0xff),
+                (byte) (physicalAddress & 0xff)
+        };
+        getService().sendMessage(getType(), HdmiCec.ADDR_TV, HdmiCec.MESSAGE_INACTIVE_SOURCE,
+                param);
+    }
+
+    @Override
+    public void sendImageViewOn() {
+        getService().sendMessage(getType(), HdmiCec.ADDR_TV, HdmiCec.MESSAGE_IMAGE_VIEW_ON,
+                HdmiCecService.EMPTY_PARAM);
+    }
+
+    @Override
+    public void sendTextViewOn() {
+        getService().sendMessage(getType(), HdmiCec.ADDR_TV, HdmiCec.MESSAGE_TEXT_VIEW_ON,
+                HdmiCecService.EMPTY_PARAM);
+    }
+}
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecDeviceTv.java
new file mode 100644
index 0000000..09ff3ca
--- /dev/null
+++ b/services/core/java/com/android/server/hdmi/HdmiCecDeviceTv.java
@@ -0,0 +1,35 @@
+/*
+ * 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.android.server.hdmi;
+
+/**
+ * Class for logical device of TV type.
+ */
+final class HdmiCecDeviceTv extends HdmiCecDevice {
+    private static final String TAG = "HdmiCecDeviceTv";
+
+    /**
+     * Constructor.
+     */
+    public HdmiCecDeviceTv(HdmiCecService service, int type) {
+        super(service, type);
+    }
+
+    public void initialize() {
+        // TODO: Do the initialization task for TV device here.
+    }
+}
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecService.java b/services/core/java/com/android/server/hdmi/HdmiCecService.java
index 36a6e84..0a4c719 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecService.java
@@ -23,6 +23,7 @@
 import android.hardware.hdmi.IHdmiCecListener;
 import android.hardware.hdmi.IHdmiCecService;
 import android.os.Binder;
+import android.os.Build;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.text.TextUtils;
@@ -30,6 +31,7 @@
 import android.util.SparseArray;
 
 import com.android.server.SystemService;
+import libcore.util.EmptyArray;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -63,6 +65,8 @@
 
     private static final String PERMISSION = "android.permission.HDMI_CEC";
 
+    static final byte[] EMPTY_PARAM = EmptyArray.BYTE;
+
     public HdmiCecService(Context context) {
         super(context);
     }
@@ -72,7 +76,12 @@
     @Override
     public void onStart() {
         mNativePtr = nativeInit(this);
-        publishBinderService(Context.HDMI_CEC_SERVICE, new BinderService());
+        if (mNativePtr != 0) {
+            // TODO: Consider using a dedicated, configurable identifier for OSD name, maybe from
+            //       Settings. It should be ASCII only, not a very long one (limited to 15 chars).
+            setOsdNameLocked(Build.MODEL);
+            publishBinderService(Context.HDMI_CEC_SERVICE, new BinderService());
+        }
     }
 
     /**
@@ -84,7 +93,6 @@
         //       but better be handled in service by turning off the screen
         //       or putting the device into suspend mode. List up such messages
         //       and handle them here.
-        int type = HdmiCec.getTypeFromAddress(dstAddress);
         synchronized (mLock) {
             if (dstAddress == HdmiCec.ADDR_BROADCAST) {
                 for (int i = 0; i < mLogicalDevices.size(); ++i) {
@@ -92,6 +100,7 @@
                             params);
                 }
             } else {
+                int type = HdmiCec.getTypeFromAddress(dstAddress);
                 HdmiCecDevice device = mLogicalDevices.get(type);
                 if (device == null) {
                     Log.w(TAG, "logical device not found. type: " + type);
@@ -134,22 +143,6 @@
     }
 
     /**
-     * Called by native when a request for the device OSD name was received.
-     * The native part uses the return value to generate the message
-     * &lt;Set Osd Name&gt; in response.
-     */
-    private byte[] getOsdName(int type) {
-        // TODO: Consider getting the OSD name from device name instead.
-        synchronized (mLock) {
-            HdmiCecDevice device = mLogicalDevices.get(type);
-            if (device != null) {
-                return device.getName().getBytes(Charset.forName("US-ASCII"));
-            }
-        }
-        return null;
-    }
-
-    /**
      * Called by native when a request for the menu language of the device was
      * received. The native part uses the return value to generate the message
      * &lt;Set Menu Language&gt; in response. The language should be of
@@ -170,8 +163,7 @@
         synchronized (mLock) {
             for (int i = 0; i < mLogicalDevices.size(); ++i) {
                 HdmiCecDevice device = mLogicalDevices.valueAt(i);
-                pw.println("Device: name=" + device.getName() +
-                           ", type=" + device.getType() +
+                pw.println("Device: type=" + device.getType() +
                            ", active=" + device.isActiveSource());
             }
         }
@@ -201,6 +193,15 @@
         throw new IllegalArgumentException("Device not found");
     }
 
+    // package-private. Used by HdmiCecDevice and its subclasses only.
+    void sendMessage(int type, int address, int opcode, byte[] params) {
+        nativeSendMessage(mNativePtr, type, address, opcode, params);
+    }
+
+    private void setOsdNameLocked(String name) {
+        nativeSetOsdName(mNativePtr, name.getBytes(Charset.forName("US-ASCII")));
+    }
+
     private final class ListenerRecord implements IBinder.DeathRecipient {
         private final IHdmiCecListener mListener;
         private final int mType;
@@ -244,8 +245,12 @@
                         Log.e(TAG, "Logical address was not allocated");
                         return null;
                     } else {
-                        device = new HdmiCecDevice(type);
-                        device.setName(HdmiCec.getDefaultDeviceName(address));
+                        device = HdmiCecDevice.create(HdmiCecService.this, type);
+                        if (device == null) {
+                            Log.e(TAG, "Device type not supported yet.");
+                            return null;
+                        }
+                        device.initialize();
                         mLogicalDevices.put(type, device);
                     }
                 }
@@ -268,24 +273,11 @@
         }
 
         @Override
-        public void setOsdName(IBinder b, String name) {
-            enforceAccessPermission();
-            if (TextUtils.isEmpty(name)) {
-                throw new IllegalArgumentException("name must not be null");
-            }
-            synchronized (mLock) {
-                HdmiCecDevice device = getLogicalDeviceLocked(b);
-                device.setName(name);
-            }
-        }
-
-        @Override
         public void sendActiveSource(IBinder b) {
             enforceAccessPermission();
             synchronized (mLock) {
                 HdmiCecDevice device = getLogicalDeviceLocked(b);
-                device.setIsActiveSource(true);
-                nativeSendActiveSource(mNativePtr, device.getType());
+                device.sendActiveSource(nativeGetPhysicalAddress(mNativePtr));
             }
         }
 
@@ -294,8 +286,7 @@
             enforceAccessPermission();
             synchronized (mLock) {
                 HdmiCecDevice device = getLogicalDeviceLocked(b);
-                device.setIsActiveSource(false);
-                nativeSendInactiveSource(mNativePtr, device.getType());
+                device.sendInactiveSource(nativeGetPhysicalAddress(mNativePtr));
             }
         }
 
@@ -304,7 +295,7 @@
             enforceAccessPermission();
             synchronized (mLock) {
                 HdmiCecDevice device = getLogicalDeviceLocked(b);
-                nativeSendImageViewOn(mNativePtr, device.getType());
+                device.sendImageViewOn();
             }
         }
 
@@ -313,16 +304,25 @@
             enforceAccessPermission();
             synchronized (mLock) {
                 HdmiCecDevice device = getLogicalDeviceLocked(b);
-                nativeSendTextViewOn(mNativePtr, device.getType());
+                device.sendTextViewOn();
             }
         }
 
-        @Override
         public void sendGiveDevicePowerStatus(IBinder b, int address) {
             enforceAccessPermission();
             synchronized (mLock) {
                 HdmiCecDevice device = getLogicalDeviceLocked(b);
-                nativeSendGiveDevicePowerStatus(mNativePtr, device.getType(), address);
+                nativeSendMessage(mNativePtr, device.getType(), address,
+                        HdmiCec.MESSAGE_GIVE_DEVICE_POWER_STATUS, EMPTY_PARAM);
+            }
+        }
+
+        @Override
+        public boolean isTvOn(IBinder b) {
+            enforceAccessPermission();
+            synchronized (mLock) {
+                HdmiCecDevice device = getLogicalDeviceLocked(b);
+                return device.isSinkDeviceOn();
             }
         }
 
@@ -366,7 +366,8 @@
             if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                     != PackageManager.PERMISSION_GRANTED) {
                 pw.println("Permission denial: can't dump HdmiCecService from pid="
-                        + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
+                        + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid()
+                        + " without permission " + android.Manifest.permission.DUMP);
                 return;
             }
             final long ident = Binder.clearCallingIdentity();
@@ -382,10 +383,6 @@
     private static native void nativeRemoveLogicalAddress(long handler, int deviceType);
     private static native void nativeSendMessage(long handler, int deviceType, int destination,
             int opcode, byte[] params);
-    private static native void nativeSendActiveSource(long handler, int deviceType);
-    private static native void nativeSendInactiveSource(long handler, int deviceType);
-    private static native void nativeSendImageViewOn(long handler, int deviceType);
-    private static native void nativeSendTextViewOn(long handler, int deviceType);
-    private static native void nativeSendGiveDevicePowerStatus(long handler, int deviceType,
-            int address);
+    private static native int nativeGetPhysicalAddress(long handler);
+    private static native void nativeSetOsdName(long handler, byte[] name);
 }
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 316bd57..54cb035 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -185,6 +185,7 @@
             InputChannel fromChannel, InputChannel toChannel);
     private static native void nativeSetPointerSpeed(long ptr, int speed);
     private static native void nativeSetShowTouches(long ptr, boolean enabled);
+    private static native void nativeSetInteractive(long ptr, boolean interactive);
     private static native void nativeReloadCalibration(long ptr);
     private static native void nativeVibrate(long ptr, int deviceId, long[] pattern,
             int repeat, int token);
@@ -1404,14 +1405,13 @@
     }
 
     // Native callback.
-    private int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn) {
-        return mWindowManagerCallbacks.interceptKeyBeforeQueueing(
-                event, policyFlags, isScreenOn);
+    private int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
+        return mWindowManagerCallbacks.interceptKeyBeforeQueueing(event, policyFlags);
     }
 
     // Native callback.
-    private int interceptMotionBeforeQueueingWhenScreenOff(long whenNanos, int policyFlags) {
-        return mWindowManagerCallbacks.interceptMotionBeforeQueueingWhenScreenOff(
+    private int interceptWakeMotionBeforeQueueing(long whenNanos, int policyFlags) {
+        return mWindowManagerCallbacks.interceptWakeMotionBeforeQueueing(
                 whenNanos, policyFlags);
     }
 
@@ -1570,9 +1570,9 @@
         public long notifyANR(InputApplicationHandle inputApplicationHandle,
                 InputWindowHandle inputWindowHandle, String reason);
 
-        public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn);
+        public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags);
 
-        public int interceptMotionBeforeQueueingWhenScreenOff(long whenNanos, int policyFlags);
+        public int interceptWakeMotionBeforeQueueing(long whenNanos, int policyFlags);
 
         public long interceptKeyBeforeDispatching(InputWindowHandle focus,
                 KeyEvent event, int policyFlags);
@@ -1740,5 +1740,10 @@
         public boolean injectInputEvent(InputEvent event, int displayId, int mode) {
             return injectInputEventInternal(event, displayId, mode);
         }
+
+        @Override
+        public void setInteractive(boolean interactive) {
+            nativeSetInteractive(mPtr, interactive);
+        }
     }
 }
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index eb7cc4c..855ae23 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1730,7 +1730,7 @@
     private void updateScreenOn() {
         synchronized (mRulesLock) {
             try {
-                mScreenOn = mPowerManager.isScreenOn();
+                mScreenOn = mPowerManager.isInteractive();
             } catch (RemoteException e) {
                 // ignored; service lives in system_server
             }
diff --git a/services/core/java/com/android/server/notification/NotificationDelegate.java b/services/core/java/com/android/server/notification/NotificationDelegate.java
index 4c8dcc3..e0591a2 100644
--- a/services/core/java/com/android/server/notification/NotificationDelegate.java
+++ b/services/core/java/com/android/server/notification/NotificationDelegate.java
@@ -29,5 +29,6 @@
             String pkg, String tag, int id,
             int uid, int initialPid, String message, int userId);
     void onPanelRevealed();
+    void onPanelHidden();
     boolean allowDisable(int what, IBinder token, String pkg);
 }
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 3bc7f4f..6534783 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -51,6 +51,7 @@
 import android.media.IRingtonePlayer;
 import android.net.Uri;
 import android.os.Binder;
+import android.os.Build;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
@@ -65,8 +66,8 @@
 import android.service.notification.StatusBarNotification;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.AtomicFile;
-import android.util.EventLog;
 import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
@@ -76,9 +77,9 @@
 import android.widget.Toast;
 
 import com.android.internal.R;
-
 import com.android.internal.notification.NotificationScorer;
 import com.android.server.EventLogTags;
+import com.android.server.notification.NotificationUsageStats.SingleNotificationStats;
 import com.android.server.statusbar.StatusBarManagerInternal;
 import com.android.server.SystemService;
 import com.android.server.lights.Light;
@@ -169,7 +170,8 @@
     // used as a mutex for access to all active notifications & listeners
     final ArrayList<NotificationRecord> mNotificationList =
             new ArrayList<NotificationRecord>();
-
+    final ArrayMap<String, NotificationRecord> mNotificationsByKey =
+            new ArrayMap<String, NotificationRecord>();
     final ArrayList<ToastRecord> mToastQueue = new ArrayList<ToastRecord>();
 
     ArrayList<NotificationRecord> mLights = new ArrayList<NotificationRecord>();
@@ -184,10 +186,10 @@
     // things that will be put into mListeners as soon as they're ready
     private ArrayList<String> mServicesBinding = new ArrayList<String>();
     // lists the component names of all enabled (and therefore connected) listener
-    // app services for the current user only
-    private HashSet<ComponentName> mEnabledListenersForCurrentUser
+    // app services for current profiles.
+    private HashSet<ComponentName> mEnabledListenersForCurrentProfiles
             = new HashSet<ComponentName>();
-    // Just the packages from mEnabledListenersForCurrentUser
+    // Just the packages from mEnabledListenersForCurrentProfiles
     private HashSet<String> mEnabledListenerPackageNames = new HashSet<String>();
 
     // Notification control database. For now just contains disabled packages.
@@ -205,6 +207,8 @@
 
     final ArrayList<NotificationScorer> mScorers = new ArrayList<NotificationScorer>();
 
+    private final NotificationUsageStats mUsageStats = new NotificationUsageStats();
+
     private int mZenMode;
     // temporary, until we update apps to provide metadata
     private static final Set<String> CALL_PACKAGES = new HashSet<String>(Arrays.asList(
@@ -216,8 +220,8 @@
             ));
     private static final String EXTRA_INTERCEPT = "android.intercept";
 
-    // Users related to the current user.
-    final protected SparseArray<UserInfo> mRelatedUsers = new SparseArray<UserInfo>();
+    // Profiles of the current user.
+    final protected SparseArray<UserInfo> mCurrentProfiles = new SparseArray<UserInfo>();
 
     private static final int MY_UID = Process.myUid();
     private static final int MY_PID = Process.myPid();
@@ -239,32 +243,40 @@
         int userid;
         boolean isSystem;
         ServiceConnection connection;
+        int targetSdkVersion;
 
         public NotificationListenerInfo(INotificationListener listener, ComponentName component,
-                int userid, boolean isSystem) {
+                int userid, boolean isSystem, int targetSdkVersion) {
             this.listener = listener;
             this.component = component;
             this.userid = userid;
             this.isSystem = isSystem;
             this.connection = null;
+            this.targetSdkVersion = targetSdkVersion;
         }
 
         public NotificationListenerInfo(INotificationListener listener, ComponentName component,
-                int userid, ServiceConnection connection) {
+                int userid, ServiceConnection connection, int targetSdkVersion) {
             this.listener = listener;
             this.component = component;
             this.userid = userid;
             this.isSystem = false;
             this.connection = connection;
+            this.targetSdkVersion = targetSdkVersion;
         }
 
         boolean enabledAndUserMatches(StatusBarNotification sbn) {
             final int nid = sbn.getUserId();
-            if (!isEnabledForCurrentUser()) {
+            if (!isEnabledForCurrentProfiles()) {
                 return false;
             }
             if (this.userid == UserHandle.USER_ALL) return true;
-            return (nid == UserHandle.USER_ALL || nid == this.userid);
+            if (nid == UserHandle.USER_ALL || nid == this.userid) return true;
+            return supportsProfiles() && isCurrentProfile(nid);
+        }
+
+        boolean supportsProfiles() {
+            return targetSdkVersion >= Build.VERSION_CODES.L;
         }
 
         public void notifyPostedIfUserMatch(StatusBarNotification sbn) {
@@ -296,11 +308,11 @@
             removeListenerImpl(this.listener, this.userid);
         }
 
-        /** convenience method for looking in mEnabledListenersForCurrentUser */
-        public boolean isEnabledForCurrentUser() {
+        /** convenience method for looking in mEnabledListenersForCurrentProfiles */
+        public boolean isEnabledForCurrentProfiles() {
             if (this.isSystem) return true;
             if (this.connection == null) return false;
-            return mEnabledListenersForCurrentUser.contains(this.component);
+            return mEnabledListenersForCurrentProfiles.contains(this.component);
         }
     }
 
@@ -503,18 +515,25 @@
      * Remove notification access for any services that no longer exist.
      */
     void disableNonexistentListeners() {
-        int currentUser = ActivityManager.getCurrentUser();
+        int[] userIds = getCurrentProfileIds();
+        final int N = userIds.length;
+        for (int i = 0 ; i < N; ++i) {
+            disableNonexistentListeners(userIds[i]);
+        }
+    }
+
+    void disableNonexistentListeners(int userId) {
         String flatIn = Settings.Secure.getStringForUser(
                 getContext().getContentResolver(),
                 Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
-                currentUser);
+                userId);
         if (!TextUtils.isEmpty(flatIn)) {
             if (DBG) Slog.v(TAG, "flat before: " + flatIn);
             PackageManager pm = getContext().getPackageManager();
             List<ResolveInfo> installedServices = pm.queryIntentServicesAsUser(
                     new Intent(NotificationListenerService.SERVICE_INTERFACE),
                     PackageManager.GET_SERVICES | PackageManager.GET_META_DATA,
-                    currentUser);
+                    userId);
 
             Set<ComponentName> installed = new HashSet<ComponentName>();
             for (int i = 0, count = installedServices.size(); i < count; i++) {
@@ -548,7 +567,7 @@
             if (!flatIn.equals(flatOut)) {
                 Settings.Secure.putStringForUser(getContext().getContentResolver(),
                         Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
-                        flatOut, currentUser);
+                        flatOut, userId);
             }
         }
     }
@@ -558,54 +577,70 @@
      * is altered. (For example in response to USER_SWITCHED in our broadcast receiver)
      */
     void rebindListenerServices() {
-        final int currentUser = ActivityManager.getCurrentUser();
-        String flat = Settings.Secure.getStringForUser(
-                getContext().getContentResolver(),
-                Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
-                currentUser);
+        final int[] userIds = getCurrentProfileIds();
+        final int nUserIds = userIds.length;
+
+        final SparseArray<String> flat = new SparseArray<String>();
+
+        for (int i = 0; i < nUserIds; ++i) {
+            flat.put(userIds[i], Settings.Secure.getStringForUser(
+                    getContext().getContentResolver(),
+                    Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
+                    userIds[i]));
+        }
 
         NotificationListenerInfo[] toRemove = new NotificationListenerInfo[mListeners.size()];
-        final ArrayList<ComponentName> toAdd;
+        final SparseArray<ArrayList<ComponentName>> toAdd
+                = new SparseArray<ArrayList<ComponentName>>();
 
         synchronized (mNotificationList) {
             // unbind and remove all existing listeners
             toRemove = mListeners.toArray(toRemove);
 
-            toAdd = new ArrayList<ComponentName>();
             final HashSet<ComponentName> newEnabled = new HashSet<ComponentName>();
             final HashSet<String> newPackages = new HashSet<String>();
 
-            // decode the list of components
-            if (flat != null) {
-                String[] components = flat.split(ENABLED_NOTIFICATION_LISTENERS_SEPARATOR);
-                for (int i=0; i<components.length; i++) {
-                    final ComponentName component
-                            = ComponentName.unflattenFromString(components[i]);
-                    if (component != null) {
-                        newEnabled.add(component);
-                        toAdd.add(component);
-                        newPackages.add(component.getPackageName());
-                    }
-                }
+            for (int i = 0; i < nUserIds; ++i) {
+                final ArrayList<ComponentName> add = new ArrayList<ComponentName>();
+                toAdd.put(userIds[i], add);
 
-                mEnabledListenersForCurrentUser = newEnabled;
-                mEnabledListenerPackageNames = newPackages;
+                // decode the list of components
+                String toDecode = flat.get(userIds[i]);
+                if (toDecode != null) {
+                    String[] components = toDecode.split(ENABLED_NOTIFICATION_LISTENERS_SEPARATOR);
+                    for (int j = 0; j < components.length; j++) {
+                        final ComponentName component
+                                = ComponentName.unflattenFromString(components[j]);
+                        if (component != null) {
+                            newEnabled.add(component);
+                            add.add(component);
+                            newPackages.add(component.getPackageName());
+                        }
+                    }
+
+                }
             }
+            mEnabledListenersForCurrentProfiles = newEnabled;
+            mEnabledListenerPackageNames = newPackages;
         }
 
         for (NotificationListenerInfo info : toRemove) {
             final ComponentName component = info.component;
             final int oldUser = info.userid;
-            Slog.v(TAG, "disabling notification listener for user " + oldUser + ": " + component);
+            Slog.v(TAG, "disabling notification listener for user "
+                    + oldUser + ": " + component);
             unregisterListenerService(component, info.userid);
         }
 
-        final int N = toAdd.size();
-        for (int i=0; i<N; i++) {
-            final ComponentName component = toAdd.get(i);
-            Slog.v(TAG, "enabling notification listener for user " + currentUser + ": "
-                    + component);
-            registerListenerService(component, currentUser);
+        for (int i = 0; i < nUserIds; ++i) {
+            final ArrayList<ComponentName> add = toAdd.get(userIds[i]);
+            final int N = add.size();
+            for (int j = 0; j < N; j++) {
+                final ComponentName component = add.get(j);
+                Slog.v(TAG, "enabling notification listener for user " + userIds[i] + ": "
+                        + component);
+                registerListenerService(component, userIds[i]);
+            }
         }
     }
 
@@ -653,6 +688,16 @@
                     getContext(), 0, new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS), 0);
             intent.putExtra(Intent.EXTRA_CLIENT_INTENT, pendingIntent);
 
+            ApplicationInfo appInfo = null;
+            try {
+                appInfo = getContext().getPackageManager().getApplicationInfo(
+                        name.getPackageName(), 0);
+            } catch (NameNotFoundException e) {
+                // Ignore if the package doesn't exist we won't be able to bind to the service.
+            }
+            final int targetSdkVersion =
+                    appInfo != null ? appInfo.targetSdkVersion : Build.VERSION_CODES.BASE;
+
             try {
                 if (DBG) Slog.v(TAG, "binding: " + intent);
                 if (!getContext().bindServiceAsUser(intent,
@@ -661,19 +706,30 @@
 
                             @Override
                             public void onServiceConnected(ComponentName name, IBinder service) {
+                                boolean added = false;
                                 synchronized (mNotificationList) {
                                     mServicesBinding.remove(servicesBindingTag);
                                     try {
                                         mListener = INotificationListener.Stub.asInterface(service);
                                         NotificationListenerInfo info
                                                 = new NotificationListenerInfo(
-                                                mListener, name, userid, this);
+                                                        mListener, name, userid, this,
+                                                        targetSdkVersion);
                                         service.linkToDeath(info, 0);
-                                        mListeners.add(info);
+                                        added = mListeners.add(info);
                                     } catch (RemoteException e) {
                                         // already dead
                                     }
                                 }
+                                if (added) {
+                                    final String[] keys =
+                                            getActiveNotificationKeysFromListener(mListener);
+                                    try {
+                                        mListener.onListenerConnected(keys);
+                                    } catch (RemoteException e) {
+                                        // we tried
+                                    }
+                                }
                             }
 
                             @Override
@@ -763,7 +819,7 @@
         }
     }
 
-    private NotificationListenerInfo checkListenerToken(INotificationListener listener) {
+    private NotificationListenerInfo checkListenerTokenLocked(INotificationListener listener) {
         checkNullListener(listener);
         final IBinder token = listener.asBinder();
         final int N = mListeners.size();
@@ -781,6 +837,7 @@
     public static final class NotificationRecord
     {
         final StatusBarNotification sbn;
+        final SingleNotificationStats stats = new SingleNotificationStats();
         IBinder statusBarKey;
 
         NotificationRecord(StatusBarNotification sbn)
@@ -799,6 +856,7 @@
             pw.println(prefix + "  icon=0x" + Integer.toHexString(notification.icon)
                     + " / " + idDebugString(baseContext, sbn.getPackageName(), notification.icon));
             pw.println(prefix + "  pri=" + notification.priority + " score=" + sbn.getScore());
+            pw.println(prefix + "  key=" + sbn.getKey());
             pw.println(prefix + "  contentIntent=" + notification.contentIntent);
             pw.println(prefix + "  deleteIntent=" + notification.deleteIntent);
             pw.println(prefix + "  tickerText=" + notification.tickerText);
@@ -850,15 +908,17 @@
                 }
                 pw.println(prefix + "  }");
             }
+            pw.println(prefix + "  stats=" + stats.toString());
         }
 
         @Override
         public final String toString() {
             return String.format(
-                    "NotificationRecord(0x%08x: pkg=%s user=%s id=%d tag=%s score=%d: %s)",
+                    "NotificationRecord(0x%08x: pkg=%s user=%s id=%d tag=%s score=%d key=%s: %s)",
                     System.identityHashCode(this),
                     this.sbn.getPackageName(), this.sbn.getUser(), this.sbn.getId(),
-                    this.sbn.getTag(), this.sbn.getScore(), this.sbn.getNotification());
+                    this.sbn.getTag(), this.sbn.getScore(), this.sbn.getKey(),
+                    this.sbn.getNotification());
         }
     }
 
@@ -927,7 +987,10 @@
 
         @Override
         public void onClearAll(int callingUid, int callingPid, int userId) {
-            cancelAll(callingUid, callingPid, userId, REASON_DELEGATE_CANCEL_ALL, null);
+            synchronized (mNotificationList) {
+                cancelAllLocked(callingUid, callingPid, userId, REASON_DELEGATE_CANCEL_ALL, null,
+                        /*includeCurrentProfiles*/ true);
+            }
         }
 
         @Override
@@ -947,6 +1010,7 @@
 
         @Override
         public void onPanelRevealed() {
+            EventLogTags.writeNotificationPanelRevealed();
             synchronized (mNotificationList) {
                 // sound
                 mSoundNotification = null;
@@ -979,6 +1043,11 @@
         }
 
         @Override
+        public void onPanelHidden() {
+            EventLogTags.writeNotificationPanelHidden();
+        }
+
+        @Override
         public void onNotificationError(int callingUid, int callingPid, String pkg, String tag, int id,
                 int uid, int initialPid, String message, int userId) {
             Slog.d(TAG, "onNotification error pkg=" + pkg + " tag=" + tag + " id=" + id
@@ -1101,9 +1170,9 @@
             } else if (action.equals(Intent.ACTION_USER_SWITCHED)) {
                 // reload per-user settings
                 mSettingsObserver.update(null);
-                updateRelatedUserCache(context);
+                updateCurrentProfilesCache(context);
             } else if (action.equals(Intent.ACTION_USER_ADDED)) {
-                updateRelatedUserCache(context);
+                updateCurrentProfilesCache(context);
             }
         }
     };
@@ -1220,6 +1289,8 @@
         }
         updateZenMode();
 
+        updateCurrentProfilesCache(getContext());
+
         // register for various Intents
         IntentFilter filter = new IntentFilter();
         filter.addAction(Intent.ACTION_SCREEN_ON);
@@ -1552,19 +1623,47 @@
          * @param token The binder for the listener, to check that the caller is allowed
          */
         @Override
-        public void cancelAllNotificationsFromListener(INotificationListener token) {
-            NotificationListenerInfo info = checkListenerToken(token);
+        public void cancelNotificationsFromListener(INotificationListener token, String[] keys) {
             final int callingUid = Binder.getCallingUid();
             final int callingPid = Binder.getCallingPid();
             long identity = Binder.clearCallingIdentity();
             try {
-                cancelAll(callingUid, callingPid, info.userid,
-                        REASON_LISTENER_CANCEL_ALL, info);
+                synchronized (mNotificationList) {
+                    final NotificationListenerInfo info = checkListenerTokenLocked(token);
+                    if (keys != null) {
+                        final int N = keys.length;
+                        for (int i = 0; i < N; i++) {
+                            NotificationRecord r = mNotificationsByKey.get(keys[i]);
+                            final int userId = r.sbn.getUserId();
+                            if (userId != info.userid && userId != UserHandle.USER_ALL &&
+                                    !isCurrentProfile(userId)) {
+                                throw new SecurityException("Disallowed call from listener: "
+                                        + info.listener);
+                            }
+                            if (r != null) {
+                                cancelNotificationFromListenerLocked(info, callingUid, callingPid,
+                                        r.sbn.getPackageName(), r.sbn.getTag(), r.sbn.getId(),
+                                        userId);
+                            }
+                        }
+                    } else {
+                        cancelAllLocked(callingUid, callingPid, info.userid,
+                                REASON_LISTENER_CANCEL_ALL, info, info.supportsProfiles());
+                    }
+                }
             } finally {
                 Binder.restoreCallingIdentity(identity);
             }
         }
 
+        private void cancelNotificationFromListenerLocked(NotificationListenerInfo info,
+                int callingUid, int callingPid, String pkg, String tag, int id, int userId) {
+            cancelNotification(callingUid, callingPid, pkg, tag, id, 0,
+                    Notification.FLAG_ONGOING_EVENT | Notification.FLAG_FOREGROUND_SERVICE,
+                    true,
+                    userId, REASON_LISTENER_CANCEL, info);
+        }
+
         /**
          * Allow an INotificationListener to simulate clearing (dismissing) a single notification.
          *
@@ -1575,15 +1674,21 @@
         @Override
         public void cancelNotificationFromListener(INotificationListener token, String pkg,
                 String tag, int id) {
-            NotificationListenerInfo info = checkListenerToken(token);
             final int callingUid = Binder.getCallingUid();
             final int callingPid = Binder.getCallingPid();
             long identity = Binder.clearCallingIdentity();
             try {
-                cancelNotification(callingUid, callingPid, pkg, tag, id, 0,
-                        Notification.FLAG_ONGOING_EVENT | Notification.FLAG_FOREGROUND_SERVICE,
-                        true,
-                        info.userid, REASON_LISTENER_CANCEL, info);
+                synchronized (mNotificationList) {
+                    final NotificationListenerInfo info = checkListenerTokenLocked(token);
+                    if (info.supportsProfiles()) {
+                        Log.e(TAG, "Ignoring deprecated cancelNotification(pkg, tag, id) "
+                                + "from " + info.component
+                                + " use cancelNotification(key) instead.");
+                    } else {
+                        cancelNotificationFromListenerLocked(info, callingUid, callingPid,
+                                pkg, tag, id, info.userid);
+                    }
+                }
             } finally {
                 Binder.restoreCallingIdentity(identity);
             }
@@ -1598,21 +1703,35 @@
          */
         @Override
         public StatusBarNotification[] getActiveNotificationsFromListener(
-                INotificationListener token) {
-            NotificationListenerInfo info = checkListenerToken(token);
-
-            StatusBarNotification[] result = new StatusBarNotification[0];
-            ArrayList<StatusBarNotification> list = new ArrayList<StatusBarNotification>();
+                INotificationListener token, String[] keys) {
             synchronized (mNotificationList) {
-                final int N = mNotificationList.size();
-                for (int i=0; i<N; i++) {
-                    StatusBarNotification sbn = mNotificationList.get(i).sbn;
-                    if (info.enabledAndUserMatches(sbn)) {
-                        list.add(sbn);
+                final NotificationListenerInfo info = checkListenerTokenLocked(token);
+                final ArrayList<StatusBarNotification> list
+                        = new ArrayList<StatusBarNotification>();
+                if (keys == null) {
+                    final int N = mNotificationList.size();
+                    for (int i=0; i<N; i++) {
+                        StatusBarNotification sbn = mNotificationList.get(i).sbn;
+                        if (info.enabledAndUserMatches(sbn)) {
+                            list.add(sbn);
+                        }
+                    }
+                } else {
+                    final int N = keys.length;
+                    for (int i=0; i<N; i++) {
+                        NotificationRecord r = mNotificationsByKey.get(keys[i]);
+                        if (r != null && info.enabledAndUserMatches(r.sbn)) {
+                            list.add(r.sbn);
+                        }
                     }
                 }
+                return list.toArray(new StatusBarNotification[list.size()]);
             }
-            return list.toArray(result);
+        }
+
+        @Override
+        public String[] getActiveNotificationKeysFromListener(INotificationListener token) {
+            return NotificationManagerService.this.getActiveNotificationKeysFromListener(token);
         }
 
         @Override
@@ -1629,12 +1748,27 @@
         }
     };
 
+    private String[] getActiveNotificationKeysFromListener(INotificationListener token) {
+        synchronized (mNotificationList) {
+            final NotificationListenerInfo info = checkListenerTokenLocked(token);
+            final ArrayList<String> keys = new ArrayList<String>();
+            final int N = mNotificationList.size();
+            for (int i=0; i<N; i++) {
+                final StatusBarNotification sbn = mNotificationList.get(i).sbn;
+                if (info.enabledAndUserMatches(sbn)) {
+                    keys.add(sbn.getKey());
+                }
+            }
+            return keys.toArray(new String[keys.size()]);
+        }
+    }
+
     void dumpImpl(PrintWriter pw) {
         pw.println("Current Notification Manager state:");
 
-        pw.println("  Listeners (" + mEnabledListenersForCurrentUser.size()
-                + ") enabled for current user:");
-        for (ComponentName cmpt : mEnabledListenersForCurrentUser) {
+        pw.println("  Listeners (" + mEnabledListenersForCurrentProfiles.size()
+                + ") enabled for current profiles:");
+        for (ComponentName cmpt : mEnabledListenersForCurrentProfiles) {
             pw.println("    " + cmpt);
         }
 
@@ -1694,6 +1828,9 @@
                 }
             }
 
+            pw.println("\n  Usage Stats:");
+            mUsageStats.dump(pw, "    ");
+
         }
     }
 
@@ -1841,15 +1978,21 @@
                     int index = indexOfNotificationLocked(pkg, tag, id, userId);
                     if (index < 0) {
                         mNotificationList.add(r);
+                        mUsageStats.registerPostedByApp(r);
                     } else {
-                        old = mNotificationList.remove(index);
-                        mNotificationList.add(index, r);
+                        old = mNotificationList.get(index);
+                        mNotificationList.set(index, r);
+                        mUsageStats.registerUpdatedByApp(r);
                         // Make sure we don't lose the foreground service state.
                         if (old != null) {
                             notification.flags |=
                                 old.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE;
                         }
                     }
+                    if (old != null) {
+                        mNotificationsByKey.remove(old.sbn.getKey());
+                    }
+                    mNotificationsByKey.put(n.getKey(), r);
 
                     // Ensure if this is a foreground service that the proper additional
                     // flags are set.
@@ -1917,7 +2060,8 @@
                             && (!(old != null
                                 && (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))
                             && (r.getUserId() == UserHandle.USER_ALL ||
-                                (r.getUserId() == userId && r.getUserId() == currentUser))
+                                (r.getUserId() == userId && r.getUserId() == currentUser) ||
+                                isCurrentProfile(r.getUserId()))
                             && canInterrupt
                             && mSystemReady
                             && mAudioManager != null) {
@@ -2053,7 +2197,8 @@
         synchronized (mNotificationList) {
             try {
                 NotificationListenerInfo info
-                        = new NotificationListenerInfo(listener, component, userid, true);
+                        = new NotificationListenerInfo(listener, component, userid,
+                        /*isSystem*/ true, Build.VERSION_CODES.L);
                 listener.asBinder().linkToDeath(info, 0);
                 mListeners.add(info);
             } catch (RemoteException e) {
@@ -2232,7 +2377,7 @@
         manager.sendAccessibilityEvent(event);
     }
 
-    private void cancelNotificationLocked(NotificationRecord r, boolean sendDelete) {
+    private void cancelNotificationLocked(NotificationRecord r, boolean sendDelete, int reason) {
         // tell the app
         if (sendDelete) {
             if (r.getNotification().deleteIntent != null) {
@@ -2291,6 +2436,26 @@
             mLedNotification = null;
         }
 
+        // Record usage stats
+        switch (reason) {
+            case REASON_DELEGATE_CANCEL:
+            case REASON_DELEGATE_CANCEL_ALL:
+            case REASON_LISTENER_CANCEL:
+            case REASON_LISTENER_CANCEL_ALL:
+                mUsageStats.registerDismissedByUser(r);
+                break;
+            case REASON_NOMAN_CANCEL:
+            case REASON_NOMAN_CANCEL_ALL:
+                mUsageStats.registerRemovedByApp(r);
+                break;
+            case REASON_DELEGATE_CLICK:
+                mUsageStats.registerCancelDueToClick(r);
+                break;
+            default:
+                mUsageStats.registerCancelUnknown(r);
+                break;
+        }
+
         // Save it for users of getHistoricalNotifications()
         mArchive.record(r.sbn);
     }
@@ -2319,6 +2484,12 @@
                     if (index >= 0) {
                         NotificationRecord r = mNotificationList.get(index);
 
+                        // Ideally we'd do this in the caller of this method. However, that would
+                        // require the caller to also find the notification.
+                        if (reason == REASON_DELEGATE_CLICK) {
+                            mUsageStats.registerClickedByUser(r);
+                        }
+
                         if ((r.getNotification().flags & mustHaveFlags) != mustHaveFlags) {
                             return;
                         }
@@ -2327,8 +2498,9 @@
                         }
 
                         mNotificationList.remove(index);
+                        mNotificationsByKey.remove(r.sbn.getKey());
 
-                        cancelNotificationLocked(r, sendDelete);
+                        cancelNotificationLocked(r, sendDelete, reason);
                         updateLightsLocked();
                     }
                 }
@@ -2353,13 +2525,11 @@
     /**
      * Determine whether the userId applies to the notification in question, either because
      * they match exactly, or one of them is USER_ALL (which is treated as a wildcard) or
-     * because it matches a related user.
+     * because it matches one of the users profiles.
      */
-    private boolean notificationMatchesUserIdOrRelated(NotificationRecord r, int userId) {
-        synchronized (mRelatedUsers) {
-            return notificationMatchesUserId(r, userId)
-                    || mRelatedUsers.get(r.getUserId()) != null;
-        }
+    private boolean notificationMatchesCurrentProfiles(NotificationRecord r, int userId) {
+        return notificationMatchesUserId(r, userId)
+                || isCurrentProfile(r.getUserId());
     }
 
     /**
@@ -2399,7 +2569,8 @@
                     return true;
                 }
                 mNotificationList.remove(i);
-                cancelNotificationLocked(r, false);
+                mNotificationsByKey.remove(r.sbn.getKey());
+                cancelNotificationLocked(r, false, reason);
             }
             if (canceledSomething) {
                 updateLightsLocked();
@@ -2446,29 +2617,33 @@
         }
     }
 
-    void cancelAll(int callingUid, int callingPid, int userId, int reason,
-            NotificationListenerInfo listener) {
+    void cancelAllLocked(int callingUid, int callingPid, int userId, int reason,
+            NotificationListenerInfo listener, boolean includeCurrentProfiles) {
         EventLogTags.writeNotificationCancelAll(callingUid, callingPid,
                 null, userId, 0, 0, reason,
                 listener == null ? null : listener.component.toShortString());
-        synchronized (mNotificationList) {
-            final int N = mNotificationList.size();
-            for (int i=N-1; i>=0; i--) {
-                NotificationRecord r = mNotificationList.get(i);
 
-                if (!notificationMatchesUserIdOrRelated(r, userId)) {
+        final int N = mNotificationList.size();
+        for (int i=N-1; i>=0; i--) {
+            NotificationRecord r = mNotificationList.get(i);
+            if (includeCurrentProfiles) {
+                if (!notificationMatchesCurrentProfiles(r, userId)) {
                     continue;
                 }
-
-                if ((r.getFlags() & (Notification.FLAG_ONGOING_EVENT
-                                | Notification.FLAG_NO_CLEAR)) == 0) {
-                    mNotificationList.remove(i);
-                    cancelNotificationLocked(r, true);
+            } else {
+                if (!notificationMatchesUserId(r, userId)) {
+                    continue;
                 }
             }
 
-            updateLightsLocked();
+            if ((r.getFlags() & (Notification.FLAG_ONGOING_EVENT
+                            | Notification.FLAG_NO_CLEAR)) == 0) {
+                mNotificationList.remove(i);
+                mNotificationsByKey.remove(r.sbn.getKey());
+                cancelNotificationLocked(r, true, reason);
+            }
         }
+        updateLightsLocked();
     }
 
     // lock on mNotificationList
@@ -2572,20 +2747,37 @@
                 exceptionPackages);
     }
 
-    private void updateRelatedUserCache(Context context) {
+    private void updateCurrentProfilesCache(Context context) {
         UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        int currentUserId = ActivityManager.getCurrentUser();
         if (userManager != null) {
-            List<UserInfo> relatedUsers = userManager.getRelatedUsers(currentUserId);
-            synchronized (mRelatedUsers) {
-                mRelatedUsers.clear();
-                for (UserInfo related : relatedUsers) {
-                    mRelatedUsers.put(related.id, related);
+            int currentUserId = ActivityManager.getCurrentUser();
+            List<UserInfo> profiles = userManager.getProfiles(currentUserId);
+            synchronized (mCurrentProfiles) {
+                mCurrentProfiles.clear();
+                for (UserInfo user : profiles) {
+                    mCurrentProfiles.put(user.id, user);
                 }
             }
         }
     }
 
+    private int[] getCurrentProfileIds() {
+        synchronized (mCurrentProfiles) {
+            int[] users = new int[mCurrentProfiles.size()];
+            final int N = mCurrentProfiles.size();
+            for (int i = 0; i < N; ++i) {
+                users[i] = mCurrentProfiles.keyAt(i);
+            }
+            return users;
+        }
+    }
+
+    private boolean isCurrentProfile(int userId) {
+        synchronized (mCurrentProfiles) {
+            return mCurrentProfiles.get(userId) != null;
+        }
+    }
+
     private boolean isCall(String pkg, Notification n) {
         return CALL_PACKAGES.contains(pkg);
     }
diff --git a/services/core/java/com/android/server/notification/NotificationUsageStats.java b/services/core/java/com/android/server/notification/NotificationUsageStats.java
new file mode 100644
index 0000000..d9e2b91
--- /dev/null
+++ b/services/core/java/com/android/server/notification/NotificationUsageStats.java
@@ -0,0 +1,277 @@
+/*
+ * 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.android.server.notification;
+
+import com.android.server.notification.NotificationManagerService.NotificationRecord;
+
+import android.os.SystemClock;
+import android.service.notification.StatusBarNotification;
+
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Keeps track of notification activity, display, and user interaction.
+ *
+ * <p>This class receives signals from NoMan and keeps running stats of
+ * notification usage. Some metrics are updated as events occur. Others, namely
+ * those involving durations, are updated as the notification is canceled.</p>
+ *
+ * <p>This class is thread-safe.</p>
+ *
+ * {@hide}
+ */
+public class NotificationUsageStats {
+
+    // Guarded by synchronized(this).
+    private final Map<String, AggregatedStats> mStats = new HashMap<String, AggregatedStats>();
+
+    /**
+     * Called when a notification has been posted.
+     */
+    public synchronized void registerPostedByApp(NotificationRecord notification) {
+        notification.stats.posttimeElapsedMs = SystemClock.elapsedRealtime();
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.numPostedByApp++;
+        }
+    }
+
+    /**
+     * Called when a notification has been updated.
+     */
+    public void registerUpdatedByApp(NotificationRecord notification) {
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.numUpdatedByApp++;
+        }
+    }
+
+    /**
+     * Called when the originating app removed the notification programmatically.
+     */
+    public synchronized void registerRemovedByApp(NotificationRecord notification) {
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.numRemovedByApp++;
+            stats.collect(notification.stats);
+        }
+    }
+
+    /**
+     * Called when the user dismissed the notification via the UI.
+     */
+    public synchronized void registerDismissedByUser(NotificationRecord notification) {
+        notification.stats.onDismiss();
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.numDismissedByUser++;
+            stats.collect(notification.stats);
+        }
+    }
+
+    /**
+     * Called when the user clicked the notification in the UI.
+     */
+    public synchronized void registerClickedByUser(NotificationRecord notification) {
+        notification.stats.onClick();
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.numClickedByUser++;
+        }
+    }
+
+    /**
+     * Called when the notification is canceled because the user clicked it.
+     *
+     * <p>Called after {@link #registerClickedByUser(NotificationRecord)}.</p>
+     */
+    public synchronized void registerCancelDueToClick(NotificationRecord notification) {
+        // No explicit stats for this (the click has already been registered in
+        // registerClickedByUser), just make sure the single notification stats
+        // are folded up into aggregated stats.
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.collect(notification.stats);
+        }
+    }
+
+    /**
+     * Called when the notification is canceled due to unknown reasons.
+     *
+     * <p>Called for notifications of apps being uninstalled, for example.</p>
+     */
+    public synchronized void registerCancelUnknown(NotificationRecord notification) {
+        // Fold up individual stats.
+        for (AggregatedStats stats : getAggregatedStatsLocked(notification)) {
+            stats.collect(notification.stats);
+        }
+    }
+
+    // Locked by this.
+    private AggregatedStats[] getAggregatedStatsLocked(NotificationRecord record) {
+        StatusBarNotification n = record.sbn;
+
+        String user = String.valueOf(n.getUserId());
+        String userPackage = user + ":" + n.getPackageName();
+
+        // TODO: Use pool of arrays.
+        return new AggregatedStats[] {
+                getOrCreateAggregatedStatsLocked(user),
+                getOrCreateAggregatedStatsLocked(userPackage),
+                getOrCreateAggregatedStatsLocked(n.getKey()),
+        };
+    }
+
+    // Locked by this.
+    private AggregatedStats getOrCreateAggregatedStatsLocked(String key) {
+        AggregatedStats result = mStats.get(key);
+        if (result == null) {
+            result = new AggregatedStats(key);
+            mStats.put(key, result);
+        }
+        return result;
+    }
+
+    public synchronized void dump(PrintWriter pw, String indent) {
+        for (AggregatedStats as : mStats.values()) {
+            as.dump(pw, indent);
+        }
+    }
+
+    /**
+     * Aggregated notification stats.
+     */
+    private static class AggregatedStats {
+        public final String key;
+
+        // ---- Updated as the respective events occur.
+        public int numPostedByApp;
+        public int numUpdatedByApp;
+        public int numRemovedByApp;
+        public int numClickedByUser;
+        public int numDismissedByUser;
+
+        // ----  Updated when a notification is canceled.
+        public final Aggregate posttimeMs = new Aggregate();
+        public final Aggregate posttimeToDismissMs = new Aggregate();
+        public final Aggregate posttimeToFirstClickMs = new Aggregate();
+
+        public AggregatedStats(String key) {
+            this.key = key;
+        }
+
+        public void collect(SingleNotificationStats singleNotificationStats) {
+            posttimeMs.addSample(
+	            SystemClock.elapsedRealtime() - singleNotificationStats.posttimeElapsedMs);
+            if (singleNotificationStats.posttimeToDismissMs >= 0) {
+                posttimeToDismissMs.addSample(singleNotificationStats.posttimeToDismissMs);
+            }
+            if (singleNotificationStats.posttimeToFirstClickMs >= 0) {
+                posttimeToFirstClickMs.addSample(singleNotificationStats.posttimeToFirstClickMs);
+            }
+        }
+
+        public void dump(PrintWriter pw, String indent) {
+            pw.println(toStringWithIndent(indent));
+        }
+
+        @Override
+        public String toString() {
+            return toStringWithIndent("");
+        }
+
+        private String toStringWithIndent(String indent) {
+            return indent + "AggregatedStats{\n" +
+                    indent + "  key='" + key + "',\n" +
+                    indent + "  numPostedByApp=" + numPostedByApp + ",\n" +
+                    indent + "  numUpdatedByApp=" + numUpdatedByApp + ",\n" +
+                    indent + "  numRemovedByApp=" + numRemovedByApp + ",\n" +
+                    indent + "  numClickedByUser=" + numClickedByUser + ",\n" +
+                    indent + "  numDismissedByUser=" + numDismissedByUser + ",\n" +
+                    indent + "  posttimeMs=" + posttimeMs + ",\n" +
+                    indent + "  posttimeToDismissMs=" + posttimeToDismissMs + ",\n" +
+                    indent + "  posttimeToFirstClickMs=" + posttimeToFirstClickMs + ",\n" +
+                    indent + "}";
+        }
+    }
+
+    /**
+     * Tracks usage of an individual notification that is currently active.
+     */
+    public static class SingleNotificationStats {
+        /** SystemClock.elapsedRealtime() when the notification was posted. */
+        public long posttimeElapsedMs = -1;
+        /** Elapsed time since the notification was posted until it was first clicked, or -1. */
+        public long posttimeToFirstClickMs = -1;
+        /** Elpased time since the notification was posted until it was dismissed by the user. */
+        public long posttimeToDismissMs = -1;
+
+        /**
+         * Called when the user clicked the notification.
+         */
+        public void onClick() {
+            if (posttimeToFirstClickMs < 0) {
+                posttimeToFirstClickMs = SystemClock.elapsedRealtime() - posttimeElapsedMs;
+            }
+        }
+
+        /**
+         * Called when the user removed the notification.
+         */
+        public void onDismiss() {
+            if (posttimeToDismissMs < 0) {
+                posttimeToDismissMs = SystemClock.elapsedRealtime() - posttimeElapsedMs;
+            }
+        }
+
+        @Override
+        public String toString() {
+            return "SingleNotificationStats{" +
+                    "posttimeElapsedMs=" + posttimeElapsedMs +
+                    ", posttimeToFirstClickMs=" + posttimeToFirstClickMs +
+                    ", posttimeToDismissMs=" + posttimeToDismissMs +
+                    '}';
+        }
+    }
+
+    /**
+     * Aggregates long samples to sum and averages.
+     */
+    public static class Aggregate {
+        long numSamples;
+        double avg;
+        double sum2;
+        double var;
+
+        public void addSample(long sample) {
+            // Welford's "Method for Calculating Corrected Sums of Squares"
+            // http://www.jstor.org/stable/1266577?seq=2
+            numSamples++;
+            final double n = numSamples;
+            final double delta = sample - avg;
+            avg += (1.0 / n) * delta;
+            sum2 += ((n - 1) / n) * delta * delta;
+            final double divisor = numSamples == 1 ? 1.0 : n - 1.0;
+            var = sum2 / divisor;
+        }
+
+        @Override
+        public String toString() {
+            return "Aggregate{" +
+                    "numSamples=" + numSamples +
+                    ", avg=" + avg +
+                    ", var=" + var +
+                    '}';
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java
index ae1cfab..ff816ea 100644
--- a/services/core/java/com/android/server/pm/Installer.java
+++ b/services/core/java/com/android/server/pm/Installer.java
@@ -407,7 +407,14 @@
         return execute(builder.toString());
     }
 
-    public boolean restoreconData() {
-        return (execute("restorecondata") == 0);
+    public boolean restoreconData(String pkgName, String seinfo, int uid) {
+        StringBuilder builder = new StringBuilder("restorecondata");
+        builder.append(' ');
+        builder.append(pkgName);
+        builder.append(' ');
+        builder.append(seinfo != null ? seinfo : "!");
+        builder.append(' ');
+        builder.append(uid);
+        return (execute(builder.toString()) == 0);
     }
 }
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
new file mode 100644
index 0000000..27c7b39
--- /dev/null
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -0,0 +1,292 @@
+/*
+ * 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.android.server.pm;
+
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ILauncherApps;
+import android.content.pm.IOnAppsChangedListener;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
+import android.graphics.Rect;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.IInterface;
+import android.os.RemoteCallbackList;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.Slog;
+
+import com.android.internal.content.PackageMonitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Service that manages requests and callbacks for launchers that support
+ * managed profiles. 
+ */
+public class LauncherAppsService extends ILauncherApps.Stub {
+
+    private static final String TAG = "LauncherAppsService";
+    private final Context mContext;
+    private final PackageManager mPm;
+    private final UserManager mUm;
+    private final PackageCallbackList<IOnAppsChangedListener> mListeners
+            = new PackageCallbackList<IOnAppsChangedListener>();
+
+    private MyPackageMonitor mPackageMonitor = new MyPackageMonitor();
+
+    public LauncherAppsService(Context context) {
+        mContext = context;
+        mPm = mContext.getPackageManager();
+        mUm = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+    }
+
+    /*
+     * @see android.content.pm.ILauncherApps#addOnAppsChangedListener(
+     *          android.content.pm.IOnAppsChangedListener)
+     */
+    @Override
+    public void addOnAppsChangedListener(IOnAppsChangedListener listener) throws RemoteException {
+        synchronized (mListeners) {
+            if (mListeners.getRegisteredCallbackCount() == 0) {
+                startWatchingPackageBroadcasts();
+            }
+            mListeners.unregister(listener);
+            mListeners.register(listener);
+        }
+    }
+
+    /*
+     * @see android.content.pm.ILauncherApps#removeOnAppsChangedListener(
+     *          android.content.pm.IOnAppsChangedListener)
+     */
+    @Override
+    public void removeOnAppsChangedListener(IOnAppsChangedListener listener)
+            throws RemoteException {
+        synchronized (mListeners) {
+            mListeners.unregister(listener);
+            if (mListeners.getRegisteredCallbackCount() == 0) {
+                stopWatchingPackageBroadcasts();
+            }
+        }
+    }
+
+    /**
+     * Register a receiver to watch for package broadcasts
+     */
+    private void startWatchingPackageBroadcasts() {
+        mPackageMonitor.register(mContext, null, UserHandle.ALL, true);
+    }
+
+    /**
+     * Unregister package broadcast receiver
+     */
+    private void stopWatchingPackageBroadcasts() {
+        mPackageMonitor.unregister();
+    }
+
+    void checkCallbackCount() {
+        synchronized (LauncherAppsService.this) {
+            if (mListeners.getRegisteredCallbackCount() == 0) {
+                stopWatchingPackageBroadcasts();
+            }
+        }
+    }
+
+    /**
+     * Checks if the caller is in the same group as the userToCheck.
+     */
+    private void ensureInUserProfiles(UserHandle userToCheck, String message) {
+        final int callingUserId = UserHandle.getCallingUserId();
+        final int targetUserId = userToCheck.getIdentifier();
+
+        if (targetUserId == callingUserId) return;
+
+        long ident = Binder.clearCallingIdentity();
+        try {
+            UserInfo callingUserInfo = mUm.getUserInfo(callingUserId);
+            UserInfo targetUserInfo = mUm.getUserInfo(targetUserId);
+            if (targetUserInfo == null
+                    || targetUserInfo.profileGroupId == UserInfo.NO_PROFILE_GROUP_ID
+                    || targetUserInfo.profileGroupId != callingUserInfo.profileGroupId) {
+                throw new SecurityException(message);
+            }
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    @Override
+    public List<ResolveInfo> getLauncherActivities(String packageName, UserHandle user)
+            throws RemoteException {
+        ensureInUserProfiles(user, "Cannot retrieve activities for unrelated profile " + user);
+
+        final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
+        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+        long ident = Binder.clearCallingIdentity();
+        try {
+            List<ResolveInfo> apps = mPm.queryIntentActivitiesAsUser(mainIntent, 0,
+                    user.getIdentifier());
+            return apps;
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    @Override
+    public ResolveInfo resolveActivity(Intent intent, UserHandle user)
+            throws RemoteException {
+        ensureInUserProfiles(user, "Cannot resolve activity for unrelated profile " + user);
+
+        long ident = Binder.clearCallingIdentity();
+        try {
+            ResolveInfo app = mPm.resolveActivityAsUser(intent, 0, user.getIdentifier());
+            return app;
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    @Override
+    public void startActivityAsUser(ComponentName component, Rect sourceBounds,
+            Bundle opts, UserHandle user) throws RemoteException {
+        ensureInUserProfiles(user, "Cannot start activity for unrelated profile " + user);
+
+        Intent launchIntent = new Intent(Intent.ACTION_MAIN);
+        launchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+        launchIntent.setComponent(component);
+        launchIntent.setSourceBounds(sourceBounds);
+        launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        final int callingUserId = UserHandle.getCallingUserId();
+        long ident = Binder.clearCallingIdentity();
+        try {
+            mContext.startActivityAsUser(launchIntent, opts, user);
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    private class MyPackageMonitor extends PackageMonitor {
+
+        @Override
+        public void onPackageAdded(String packageName, int uid) {
+            UserHandle user = new UserHandle(getChangingUserId());
+            // TODO: if (!isProfile(user)) return;
+            final int n = mListeners.beginBroadcast();
+            for (int i = 0; i < n; i++) {
+                IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
+                try {
+                    listener.onPackageAdded(user, packageName);
+                } catch (RemoteException re) {
+                    Slog.d(TAG, "Callback failed ", re);
+                }
+            }
+            mListeners.finishBroadcast();
+
+            super.onPackageAdded(packageName, uid);
+        }
+
+        @Override
+        public void onPackageRemoved(String packageName, int uid) {
+            UserHandle user = new UserHandle(getChangingUserId());
+            // TODO: if (!isCurrentProfile(user)) return;
+            final int n = mListeners.beginBroadcast();
+            for (int i = 0; i < n; i++) {
+                IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
+                try {
+                    listener.onPackageRemoved(user, packageName);
+                } catch (RemoteException re) {
+                    Slog.d(TAG, "Callback failed ", re);
+                }
+            }
+            mListeners.finishBroadcast();
+
+            super.onPackageRemoved(packageName, uid);
+        }
+
+        @Override
+        public void onPackageModified(String packageName) {
+            UserHandle user = new UserHandle(getChangingUserId());
+            // TODO: if (!isProfile(user)) return;
+            final int n = mListeners.beginBroadcast();
+            for (int i = 0; i < n; i++) {
+                IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
+                try {
+                    listener.onPackageChanged(user, packageName);
+                } catch (RemoteException re) {
+                    Slog.d(TAG, "Callback failed ", re);
+                }
+            }
+            mListeners.finishBroadcast();
+
+            super.onPackageModified(packageName);
+        }
+
+        @Override
+        public void onPackagesAvailable(String[] packages) {
+            UserHandle user = new UserHandle(getChangingUserId());
+            // TODO: if (!isProfile(user)) return;
+            final int n = mListeners.beginBroadcast();
+            for (int i = 0; i < n; i++) {
+                IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
+                try {
+                    listener.onPackagesAvailable(user, packages, isReplacing());
+                } catch (RemoteException re) {
+                    Slog.d(TAG, "Callback failed ", re);
+                }
+            }
+            mListeners.finishBroadcast();
+
+            super.onPackagesAvailable(packages);
+        }
+
+        @Override
+        public void onPackagesUnavailable(String[] packages) {
+            UserHandle user = new UserHandle(getChangingUserId());
+            // TODO: if (!isProfile(user)) return;
+            final int n = mListeners.beginBroadcast();
+            for (int i = 0; i < n; i++) {
+                IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
+                try {
+                    listener.onPackagesUnavailable(user, packages, isReplacing());
+                } catch (RemoteException re) {
+                    Slog.d(TAG, "Callback failed ", re);
+                }
+            }
+            mListeners.finishBroadcast();
+
+            super.onPackagesUnavailable(packages);
+        }
+
+    }
+
+    class PackageCallbackList<T extends IInterface> extends RemoteCallbackList<T> {
+
+        @Override
+        public void onCallbackDied(T callback, Object cookie) {
+            checkCallbackCount();
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index a01c586..747d0a7 100755
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -60,8 +60,8 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.IntentSender;
-import android.content.ServiceConnection;
 import android.content.IntentSender.SendIntentException;
+import android.content.ServiceConnection;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ContainerEncryptionParams;
@@ -69,18 +69,20 @@
 import android.content.pm.IPackageDataObserver;
 import android.content.pm.IPackageDeleteObserver;
 import android.content.pm.IPackageInstallObserver;
+import android.content.pm.IPackageInstallObserver2;
 import android.content.pm.IPackageManager;
 import android.content.pm.IPackageMoveObserver;
 import android.content.pm.IPackageStatsObserver;
 import android.content.pm.InstrumentationInfo;
+import android.content.pm.ManifestDigest;
 import android.content.pm.PackageCleanItem;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInfoLite;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
-import android.content.pm.PackageUserState;
 import android.content.pm.PackageParser.ActivityIntentInfo;
 import android.content.pm.PackageStats;
+import android.content.pm.PackageUserState;
 import android.content.pm.ParceledListSlice;
 import android.content.pm.PermissionGroupInfo;
 import android.content.pm.PermissionInfo;
@@ -88,7 +90,6 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.content.pm.Signature;
-import android.content.pm.ManifestDigest;
 import android.content.pm.VerificationParams;
 import android.content.pm.VerifierDeviceIdentity;
 import android.content.pm.VerifierInfo;
@@ -99,6 +100,7 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Environment;
+import android.os.Environment.UserEnvironment;
 import android.os.FileObserver;
 import android.os.FileUtils;
 import android.os.Handler;
@@ -115,7 +117,6 @@
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.UserHandle;
-import android.os.Environment.UserEnvironment;
 import android.os.UserManager;
 import android.security.KeyStore;
 import android.security.SystemKeyStore;
@@ -340,7 +341,7 @@
 
     // Lock for state used when installing and doing other long running
     // operations.  Methods that must be called with this lock held have
-    // the prefix "LI".
+    // the suffix "LI".
     final Object mInstallLock = new Object();
 
     // These are the directories in the 3rd party applications installed dir
@@ -401,6 +402,9 @@
     // If mac_permissions.xml was found for seinfo labeling.
     boolean mFoundPolicyFile;
 
+    // If a recursive restorecon of /data/data/<pkg> is needed.
+    private boolean mShouldRestoreconData = SELinuxMMAC.shouldRestorecon();
+
     // All available activities, for your resolving pleasure.
     final ActivityIntentResolver mActivities =
             new ActivityIntentResolver();
@@ -696,7 +700,7 @@
                                     // Just post MCS_BOUND message to trigger processing
                                     // of next pending install.
                                     if (DEBUG_SD_INSTALL) Log.i(TAG,
-                                            "Posting MCS_BOUND for next woek");
+                                            "Posting MCS_BOUND for next work");
                                     mHandler.sendEmptyMessage(MCS_BOUND);
                                 }
                             }
@@ -916,6 +920,14 @@
                                 Slog.i(TAG, "Observer no longer exists.");
                             }
                         }
+                        if (args.observer2 != null) {
+                            try {
+                                Bundle extras = extrasForInstallResult(res);
+                                args.observer2.packageInstalled(res.name, extras, res.returnCode);
+                            } catch (RemoteException e) {
+                                Slog.i(TAG, "Observer no longer exists.");
+                            }
+                        }
                     } else {
                         Slog.e(TAG, "Bogus post-install token " + msg.arg1);
                     }
@@ -1044,6 +1056,21 @@
         }
     }
 
+    Bundle extrasForInstallResult(PackageInstalledInfo res) {
+        Bundle extras = null;
+        switch (res.returnCode) {
+            case PackageManager.INSTALL_FAILED_DUPLICATE_PERMISSION: {
+                extras = new Bundle();
+                extras.putString(PackageManager.EXTRA_FAILURE_EXISTING_PERMISSION,
+                        res.origPermission);
+                extras.putString(PackageManager.EXTRA_FAILURE_EXISTING_PACKAGE,
+                        res.origPackage);
+                break;
+            }
+        }
+        return extras;
+    }
+
     void scheduleWriteSettingsLocked() {
         if (!mHandler.hasMessages(WRITE_SETTINGS)) {
             mHandler.sendEmptyMessageDelayed(WRITE_SETTINGS, WRITE_SETTINGS_DELAY);
@@ -1512,13 +1539,6 @@
             // can downgrade to reader
             mSettings.writeLPr();
 
-            if (SELinuxMMAC.shouldRestorecon()) {
-                Slog.i(TAG, "Relabeling of /data/data and /data/user issued.");
-                if (mInstaller.restoreconData()) {
-                    SELinuxMMAC.setRestoreconDone();
-                }
-            }
-
             EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_READY,
                     SystemClock.uptimeMillis());
 
@@ -2034,6 +2054,7 @@
                 pkg.applicationInfo.dataDir =
                         getDataPathForPackage(packageName, 0).getPath();
                 pkg.applicationInfo.nativeLibraryDir = ps.nativeLibraryPathString;
+                pkg.applicationInfo.requiredCpuAbi = ps.requiredCpuAbiString;
             }
             return generatePackageInfo(pkg, flags, userId);
         }
@@ -3974,6 +3995,8 @@
         codePath = pkg.mScanPath;
         // Set application objects path explicitly.
         setApplicationInfoPaths(pkg, codePath, resPath);
+        // Applications can run with the primary Cpu Abi unless otherwise is specified
+        pkg.applicationInfo.requiredCpuAbi = null;
         // Note that we invoke the following method only if we are about to unpack an application
         PackageParser.Package scannedPkg = scanPackageLI(pkg, parseFlags, scanMode
                 | SCAN_UPDATE_SIGNATURE, currentTime, user);
@@ -4545,6 +4568,7 @@
             // the PkgSetting exists already and doesn't have to be created.
             pkgSetting = mSettings.getPackageLPw(pkg, origPackage, realName, suid, destCodeFile,
                     destResourceFile, pkg.applicationInfo.nativeLibraryDir,
+                    pkg.applicationInfo.requiredCpuAbi,
                     pkg.applicationInfo.flags, user, false);
             if (pkgSetting == null) {
                 Slog.w(TAG, "Creating application package " + pkg.packageName + " failed");
@@ -4763,6 +4787,11 @@
                     }
                 }
                 pkg.applicationInfo.dataDir = dataPath.getPath();
+                if (mShouldRestoreconData) {
+                    Slog.i(TAG, "SELinux relabeling of " + pkg.packageName + " issued.");
+                    mInstaller.restoreconData(pkg.packageName, pkg.applicationInfo.seinfo,
+                                pkg.applicationInfo.uid);
+                }
             } else {
                 if (DEBUG_PACKAGE_SCANNING) {
                     if ((parseFlags & PackageParser.PARSE_CHATTY) != 0)
@@ -4845,11 +4874,20 @@
                         }
 
                         try {
-                            if (copyNativeLibrariesForInternalApp(scanFile, nativeLibraryDir) != PackageManager.INSTALL_SUCCEEDED) {
+                            int copyRet = copyNativeLibrariesForInternalApp(scanFile, nativeLibraryDir);
+                            if (copyRet < 0 && copyRet != PackageManager.NO_NATIVE_LIBRARIES) {
                                 Slog.e(TAG, "Unable to copy native libraries");
                                 mLastScanError = PackageManager.INSTALL_FAILED_INTERNAL_ERROR;
                                 return null;
                             }
+
+                            // We've successfully copied native libraries across, so we make a
+                            // note of what ABI we're using
+                            if (copyRet != PackageManager.NO_NATIVE_LIBRARIES) {
+                                pkg.applicationInfo.requiredCpuAbi = Build.SUPPORTED_ABIS[copyRet];
+                            } else {
+                                pkg.applicationInfo.requiredCpuAbi = null;
+                            }
                         } catch (IOException e) {
                             Slog.e(TAG, "Unable to copy native libraries", e);
                             mLastScanError = PackageManager.INSTALL_FAILED_INTERNAL_ERROR;
@@ -5405,7 +5443,21 @@
          * If this is an internal application or our nativeLibraryPath points to
          * the app-lib directory, unpack the libraries if necessary.
          */
-        return NativeLibraryHelper.copyNativeBinariesIfNeededLI(scanFile, nativeLibraryDir);
+        final NativeLibraryHelper.ApkHandle handle = new NativeLibraryHelper.ApkHandle(scanFile);
+        try {
+            int abi = NativeLibraryHelper.findSupportedAbi(handle, Build.SUPPORTED_ABIS);
+            if (abi >= 0) {
+                int copyRet = NativeLibraryHelper.copyNativeBinariesIfNeededLI(handle,
+                        nativeLibraryDir, Build.SUPPORTED_ABIS[abi]);
+                if (copyRet != PackageManager.INSTALL_SUCCEEDED) {
+                    return copyRet;
+                }
+            }
+
+            return abi;
+        } finally {
+            handle.close();
+        }
     }
 
     private void killApplication(String pkgName, int appId, String reason) {
@@ -6772,18 +6824,24 @@
         private final boolean mIsPrivileged;
     }
 
+    /*
+     * The old-style observer methods all just trampoline to the newer signature with
+     * expanded install observer API.  The older API continues to work but does not
+     * supply the additional details of the Observer2 API.
+     */
+
     /* Called when a downloaded package installation has been confirmed by the user */
     public void installPackage(
             final Uri packageURI, final IPackageInstallObserver observer, final int flags) {
-        installPackage(packageURI, observer, flags, null);
+        installPackageEtc(packageURI, observer, null, flags, null);
     }
 
     /* Called when a downloaded package installation has been confirmed by the user */
     public void installPackage(
             final Uri packageURI, final IPackageInstallObserver observer, final int flags,
             final String installerPackageName) {
-        installPackageWithVerification(packageURI, observer, flags, installerPackageName, null,
-                null, null);
+        installPackageWithVerificationEtc(packageURI, observer, null, flags,
+                installerPackageName, null, null, null);
     }
 
     @Override
@@ -6792,20 +6850,67 @@
             ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) {
         VerificationParams verificationParams = new VerificationParams(verificationURI, null, null,
                 VerificationParams.NO_UID, manifestDigest);
-        installPackageWithVerificationAndEncryption(packageURI, observer, flags,
+        installPackageWithVerificationAndEncryptionEtc(packageURI, observer, null, flags,
                 installerPackageName, verificationParams, encryptionParams);
     }
 
     public void installPackageWithVerificationAndEncryption(Uri packageURI,
             IPackageInstallObserver observer, int flags, String installerPackageName,
             VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) {
+        installPackageWithVerificationAndEncryptionEtc(packageURI, observer, null, flags,
+                installerPackageName, verificationParams, encryptionParams);
+    }
+
+    /*
+     * And here are the "live" versions that take both observer arguments
+     */
+    public void installPackageEtc(
+            final Uri packageURI, final IPackageInstallObserver observer,
+            IPackageInstallObserver2 observer2, final int flags) {
+        installPackageEtc(packageURI, observer, observer2, flags, null);
+    }
+
+    public void installPackageEtc(
+            final Uri packageURI, final IPackageInstallObserver observer,
+            final IPackageInstallObserver2 observer2, final int flags,
+            final String installerPackageName) {
+        installPackageWithVerificationEtc(packageURI, observer, observer2, flags,
+                installerPackageName, null, null, null);
+    }
+
+    @Override
+    public void installPackageWithVerificationEtc(Uri packageURI, IPackageInstallObserver observer,
+            IPackageInstallObserver2 observer2,
+            int flags, String installerPackageName, Uri verificationURI,
+            ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) {
+        VerificationParams verificationParams = new VerificationParams(verificationURI, null, null,
+                VerificationParams.NO_UID, manifestDigest);
+        installPackageWithVerificationAndEncryptionEtc(packageURI, observer, observer2, flags,
+                installerPackageName, verificationParams, encryptionParams);
+    }
+
+    /*
+     * All of the installPackage...*() methods redirect to this one for the master implementation
+     */
+    public void installPackageWithVerificationAndEncryptionEtc(Uri packageURI,
+            IPackageInstallObserver observer, IPackageInstallObserver2 observer2,
+            int flags, String installerPackageName,
+            VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) {
+        if (observer == null && observer2 == null) {
+            throw new IllegalArgumentException("No install observer supplied");
+        }
         mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INSTALL_PACKAGES,
                 null);
 
         final int uid = Binder.getCallingUid();
         if (isUserRestricted(UserHandle.getUserId(uid), UserManager.DISALLOW_INSTALL_APPS)) {
             try {
-                observer.packageInstalled("", PackageManager.INSTALL_FAILED_USER_RESTRICTED);
+                if (observer != null) {
+                    observer.packageInstalled("", PackageManager.INSTALL_FAILED_USER_RESTRICTED);
+                }
+                if (observer2 != null) {
+                    observer2.packageInstalled("", null, PackageManager.INSTALL_FAILED_USER_RESTRICTED);
+                }
             } catch (RemoteException re) {
             }
             return;
@@ -6832,8 +6937,8 @@
         verificationParams.setInstallerUid(uid);
 
         final Message msg = mHandler.obtainMessage(INIT_COPY);
-        msg.obj = new InstallParams(packageURI, observer, filteredFlags, installerPackageName,
-                verificationParams, encryptionParams, user);
+        msg.obj = new InstallParams(packageURI, observer, observer2, filteredFlags,
+                installerPackageName, verificationParams, encryptionParams, user);
         mHandler.sendMessage(msg);
     }
 
@@ -7455,32 +7560,34 @@
                 mSuccess = getPackageSizeInfoLI(mStats.packageName, mStats.userHandle, mStats);
             }
 
-            final boolean mounted;
-            if (Environment.isExternalStorageEmulated()) {
-                mounted = true;
-            } else {
-                final String status = Environment.getExternalStorageState();
-                mounted = (Environment.MEDIA_MOUNTED.equals(status)
-                        || Environment.MEDIA_MOUNTED_READ_ONLY.equals(status));
-            }
+            if (mSuccess) {
+                final boolean mounted;
+                if (Environment.isExternalStorageEmulated()) {
+                    mounted = true;
+                } else {
+                    final String status = Environment.getExternalStorageState();
+                    mounted = (Environment.MEDIA_MOUNTED.equals(status)
+                            || Environment.MEDIA_MOUNTED_READ_ONLY.equals(status));
+                }
 
-            if (mounted) {
-                final UserEnvironment userEnv = new UserEnvironment(mStats.userHandle);
+                if (mounted) {
+                    final UserEnvironment userEnv = new UserEnvironment(mStats.userHandle);
 
-                mStats.externalCacheSize = calculateDirectorySize(mContainerService,
-                        userEnv.buildExternalStorageAppCacheDirs(mStats.packageName));
+                    mStats.externalCacheSize = calculateDirectorySize(mContainerService,
+                            userEnv.buildExternalStorageAppCacheDirs(mStats.packageName));
 
-                mStats.externalDataSize = calculateDirectorySize(mContainerService,
-                        userEnv.buildExternalStorageAppDataDirs(mStats.packageName));
+                    mStats.externalDataSize = calculateDirectorySize(mContainerService,
+                            userEnv.buildExternalStorageAppDataDirs(mStats.packageName));
 
-                // Always subtract cache size, since it's a subdirectory
-                mStats.externalDataSize -= mStats.externalCacheSize;
+                    // Always subtract cache size, since it's a subdirectory
+                    mStats.externalDataSize -= mStats.externalCacheSize;
 
-                mStats.externalMediaSize = calculateDirectorySize(mContainerService,
-                        userEnv.buildExternalStorageAppMediaDirs(mStats.packageName));
+                    mStats.externalMediaSize = calculateDirectorySize(mContainerService,
+                            userEnv.buildExternalStorageAppMediaDirs(mStats.packageName));
 
-                mStats.externalObbSize = calculateDirectorySize(mContainerService,
-                        userEnv.buildExternalStorageAppObbDirs(mStats.packageName));
+                    mStats.externalObbSize = calculateDirectorySize(mContainerService,
+                            userEnv.buildExternalStorageAppObbDirs(mStats.packageName));
+                }
             }
         }
 
@@ -7522,6 +7629,7 @@
 
     class InstallParams extends HandlerParams {
         final IPackageInstallObserver observer;
+        final IPackageInstallObserver2 observer2;
         int flags;
 
         private final Uri mPackageURI;
@@ -7533,13 +7641,14 @@
         final ContainerEncryptionParams encryptionParams;
 
         InstallParams(Uri packageURI,
-                IPackageInstallObserver observer, int flags,
-                String installerPackageName, VerificationParams verificationParams,
+                IPackageInstallObserver observer, IPackageInstallObserver2 observer2,
+                int flags, String installerPackageName, VerificationParams verificationParams,
                 ContainerEncryptionParams encryptionParams, UserHandle user) {
             super(user);
             this.mPackageURI = packageURI;
             this.flags = flags;
             this.observer = observer;
+            this.observer2 = observer2;
             this.installerPackageName = installerPackageName;
             this.verificationParams = verificationParams;
             this.encryptionParams = encryptionParams;
@@ -8109,6 +8218,7 @@
 
     static abstract class InstallArgs {
         final IPackageInstallObserver observer;
+        final IPackageInstallObserver2 observer2;
         // Always refers to PackageManager flags only
         final int flags;
         final Uri packageURI;
@@ -8116,12 +8226,14 @@
         final ManifestDigest manifestDigest;
         final UserHandle user;
 
-        InstallArgs(Uri packageURI, IPackageInstallObserver observer, int flags,
-                String installerPackageName, ManifestDigest manifestDigest,
+        InstallArgs(Uri packageURI,
+                IPackageInstallObserver observer, IPackageInstallObserver2 observer2,
+                int flags, String installerPackageName, ManifestDigest manifestDigest,
                 UserHandle user) {
             this.packageURI = packageURI;
             this.flags = flags;
             this.observer = observer;
+            this.observer2 = observer2;
             this.installerPackageName = installerPackageName;
             this.manifestDigest = manifestDigest;
             this.user = user;
@@ -8178,13 +8290,13 @@
         boolean created = false;
 
         FileInstallArgs(InstallParams params) {
-            super(params.getPackageUri(), params.observer, params.flags,
+            super(params.getPackageUri(), params.observer, params.observer2, params.flags,
                     params.installerPackageName, params.getManifestDigest(),
                     params.getUser());
         }
 
         FileInstallArgs(String fullCodePath, String fullResourcePath, String nativeLibraryPath) {
-            super(null, null, 0, null, null, null);
+            super(null, null, null, 0, null, null, null);
             File codeFile = new File(fullCodePath);
             installDir = codeFile.getParentFile();
             codeFileName = fullCodePath;
@@ -8193,7 +8305,7 @@
         }
 
         FileInstallArgs(Uri packageURI, String pkgName, String dataDir) {
-            super(packageURI, null, 0, null, null, null);
+            super(packageURI, null, null, 0, null, null, null);
             installDir = isFwdLocked() ? mDrmAppPrivateInstallDir : mAppInstallDir;
             String apkName = getNextCodePath(null, pkgName, ".apk");
             codeFileName = new File(installDir, apkName + ".apk").getPath();
@@ -8299,7 +8411,7 @@
             }
             try {
                 int copyRet = copyNativeLibrariesForInternalApp(codeFile, nativeLibraryFile);
-                if (copyRet != PackageManager.INSTALL_SUCCEEDED) {
+                if (copyRet < 0 && copyRet != PackageManager.NO_NATIVE_LIBRARIES) {
                     return copyRet;
                 }
             } catch (IOException e) {
@@ -8514,14 +8626,14 @@
         String libraryPath;
 
         AsecInstallArgs(InstallParams params) {
-            super(params.getPackageUri(), params.observer, params.flags,
+            super(params.getPackageUri(), params.observer, params.observer2, params.flags,
                     params.installerPackageName, params.getManifestDigest(),
                     params.getUser());
         }
 
         AsecInstallArgs(String fullCodePath, String fullResourcePath, String nativeLibraryPath,
                 boolean isExternal, boolean isForwardLocked) {
-            super(null, null, (isExternal ? PackageManager.INSTALL_EXTERNAL : 0)
+            super(null, null, null, (isExternal ? PackageManager.INSTALL_EXTERNAL : 0)
                     | (isForwardLocked ? PackageManager.INSTALL_FORWARD_LOCK : 0),
                     null, null, null);
             // Extract cid from fullCodePath
@@ -8533,7 +8645,7 @@
         }
 
         AsecInstallArgs(String cid, boolean isForwardLocked) {
-            super(null, null, (isAsecExternal(cid) ? PackageManager.INSTALL_EXTERNAL : 0)
+            super(null, null, null, (isAsecExternal(cid) ? PackageManager.INSTALL_EXTERNAL : 0)
                     | (isForwardLocked ? PackageManager.INSTALL_FORWARD_LOCK : 0),
                     null, null, null);
             this.cid = cid;
@@ -8541,7 +8653,7 @@
         }
 
         AsecInstallArgs(Uri packageURI, String cid, boolean isExternal, boolean isForwardLocked) {
-            super(packageURI, null, (isExternal ? PackageManager.INSTALL_EXTERNAL : 0)
+            super(packageURI, null, null, (isExternal ? PackageManager.INSTALL_EXTERNAL : 0)
                     | (isForwardLocked ? PackageManager.INSTALL_FORWARD_LOCK : 0),
                     null, null, null);
             this.cid = cid;
@@ -8875,6 +8987,10 @@
         PackageParser.Package pkg;
         int returnCode;
         PackageRemovedInfo removedInfo;
+
+        // In some error cases we want to convey more info back to the observer
+        String origPackage;
+        String origPermission;
     }
 
     /*
@@ -9112,7 +9228,7 @@
         }
         
         // Successfully disabled the old package. Now proceed with re-installation
-        mLastScanError = PackageManager.INSTALL_SUCCEEDED;
+        res.returnCode = mLastScanError = PackageManager.INSTALL_SUCCEEDED;
         pkg.applicationInfo.flags |= ApplicationInfo.FLAG_UPDATED_SYSTEM_APP;
         newPackage = scanPackageLI(pkg, parseFlags, scanMode, 0, user);
         if (newPackage == null) {
@@ -9125,9 +9241,20 @@
                 final PackageSetting newPkgSetting = (PackageSetting)newPackage.mExtras;
                 newPkgSetting.firstInstallTime = oldPkgSetting.firstInstallTime;
                 newPkgSetting.lastUpdateTime = System.currentTimeMillis();
+
+                // is the update attempting to change shared user? that isn't going to work...
+                if (oldPkgSetting.sharedUser != newPkgSetting.sharedUser) {
+                    Slog.w(TAG, "Forbidding shared user change from " + oldPkgSetting.sharedUser
+                            + " to " + newPkgSetting.sharedUser);
+                    res.returnCode = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE;
+                    updatedSettings = true;
+                }
             }
-            updateSettingsLI(newPackage, installerPackageName, allUsers, perUserInstalled, res);
-            updatedSettings = true;
+
+            if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) {
+                updateSettingsLI(newPackage, installerPackageName, allUsers, perUserInstalled, res);
+                updatedSettings = true;
+            }
         }
 
         if (res.returnCode != PackageManager.INSTALL_SUCCEEDED) {
@@ -9299,6 +9426,27 @@
         String oldCodePath = null;
         boolean systemApp = false;
         synchronized (mPackages) {
+            // Check whether the newly-scanned package wants to define an already-defined perm
+            int N = pkg.permissions.size();
+            for (int i = 0; i < N; i++) {
+                PackageParser.Permission perm = pkg.permissions.get(i);
+                BasePermission bp = mSettings.mPermissions.get(perm.info.name);
+                if (bp != null) {
+                    // If the defining package is signed with our cert, it's okay.  This
+                    // also includes the "updating the same package" case, of course.
+                    if (compareSignatures(bp.packageSetting.signatures.mSignatures,
+                            pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) {
+                        Slog.w(TAG, "Package " + pkg.packageName
+                                + " attempting to redeclare permission " + perm.info.name
+                                + " already owned by " + bp.sourcePackage);
+                        res.returnCode = PackageManager.INSTALL_FAILED_DUPLICATE_PERMISSION;
+                        res.origPermission = perm.info.name;
+                        res.origPackage = bp.sourcePackage;
+                        return;
+                    }
+                }
+            }
+
             // Check if installing already existing package
             if ((pFlags&PackageManager.INSTALL_REPLACE_EXISTING) != 0) {
                 String oldName = mSettings.mRenamedPackages.get(pkgName);
@@ -10163,6 +10311,9 @@
             final IPackageStatsObserver observer) {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.GET_PACKAGE_SIZE, null);
+        if (packageName == null) {
+            throw new IllegalArgumentException("Attempt to get size of null packageName");
+        }
 
         PackageStats stats = new PackageStats(packageName, userHandle);
 
@@ -11325,6 +11476,10 @@
      */
     public void scanAvailableAsecs() {
         updateExternalMediaStatusInner(true, false, false);
+        if (mShouldRestoreconData) {
+            SELinuxMMAC.setRestoreconDone();
+            mShouldRestoreconData = false;
+        }
     }
 
     /*
@@ -11770,8 +11925,17 @@
                                     final File newNativeDir = new File(newNativePath);
 
                                     if (!isForwardLocked(pkg) && !isExternal(pkg)) {
-                                        NativeLibraryHelper.copyNativeBinariesIfNeededLI(
-                                                new File(newCodePath), newNativeDir);
+                                        // NOTE: We do not report any errors from the APK scan and library
+                                        // copy at this point.
+                                        NativeLibraryHelper.ApkHandle handle =
+                                                new NativeLibraryHelper.ApkHandle(newCodePath);
+                                        final int abi = NativeLibraryHelper.findSupportedAbi(
+                                                handle, Build.SUPPORTED_ABIS);
+                                        if (abi >= 0) {
+                                            NativeLibraryHelper.copyNativeBinariesIfNeededLI(
+                                                    handle, newNativeDir, Build.SUPPORTED_ABIS[abi]);
+                                        }
+                                        handle.close();
                                     }
                                     final int[] users = sUserManager.getUserIds();
                                     for (int user : users) {
diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
index b447861..15df3d2 100644
--- a/services/core/java/com/android/server/pm/PackageSetting.java
+++ b/services/core/java/com/android/server/pm/PackageSetting.java
@@ -30,8 +30,8 @@
     SharedUserSetting sharedUser;
 
     PackageSetting(String name, String realName, File codePath, File resourcePath,
-            String nativeLibraryPathString, int pVersionCode, int pkgFlags) {
-        super(name, realName, codePath, resourcePath, nativeLibraryPathString, pVersionCode,
+            String nativeLibraryPathString, String requiredCpuAbiString, int pVersionCode, int pkgFlags) {
+        super(name, realName, codePath, resourcePath, nativeLibraryPathString, requiredCpuAbiString, pVersionCode,
                 pkgFlags);
     }
 
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index 2a5698b9..c8af9d1 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -50,6 +50,7 @@
     File resourcePath;
     String resourcePathString;
     String nativeLibraryPathString;
+    String requiredCpuAbiString;
     long timeStamp;
     long firstInstallTime;
     long lastUpdateTime;
@@ -77,11 +78,11 @@
     /* package name of the app that installed this package */
     String installerPackageName;
     PackageSettingBase(String name, String realName, File codePath, File resourcePath,
-            String nativeLibraryPathString, int pVersionCode, int pkgFlags) {
+            String nativeLibraryPathString, String requiredCpuAbiString, int pVersionCode, int pkgFlags) {
         super(pkgFlags);
         this.name = name;
         this.realName = realName;
-        init(codePath, resourcePath, nativeLibraryPathString, pVersionCode);
+        init(codePath, resourcePath, nativeLibraryPathString, requiredCpuAbiString, pVersionCode);
     }
 
     /**
@@ -98,6 +99,7 @@
         resourcePath = base.resourcePath;
         resourcePathString = base.resourcePathString;
         nativeLibraryPathString = base.nativeLibraryPathString;
+        requiredCpuAbiString = base.requiredCpuAbiString;
         timeStamp = base.timeStamp;
         firstInstallTime = base.firstInstallTime;
         lastUpdateTime = base.lastUpdateTime;
@@ -125,12 +127,13 @@
     }
 
     void init(File codePath, File resourcePath, String nativeLibraryPathString,
-            int pVersionCode) {
+            String requiredCpuAbiString, int pVersionCode) {
         this.codePath = codePath;
         this.codePathString = codePath.toString();
         this.resourcePath = resourcePath;
         this.resourcePathString = resourcePath.toString();
         this.nativeLibraryPathString = nativeLibraryPathString;
+        this.requiredCpuAbiString = requiredCpuAbiString;
         this.versionCode = pVersionCode;
     }
 
@@ -161,6 +164,7 @@
         grantedPermissions = base.grantedPermissions;
         gids = base.gids;
 
+        requiredCpuAbiString = base.requiredCpuAbiString;
         timeStamp = base.timeStamp;
         firstInstallTime = base.firstInstallTime;
         lastUpdateTime = base.lastUpdateTime;
diff --git a/services/core/java/com/android/server/pm/PendingPackage.java b/services/core/java/com/android/server/pm/PendingPackage.java
index c17cc46..36c3a34 100644
--- a/services/core/java/com/android/server/pm/PendingPackage.java
+++ b/services/core/java/com/android/server/pm/PendingPackage.java
@@ -22,8 +22,8 @@
     final int sharedId;
 
     PendingPackage(String name, String realName, File codePath, File resourcePath,
-            String nativeLibraryPathString, int sharedId, int pVersionCode, int pkgFlags) {
-        super(name, realName, codePath, resourcePath, nativeLibraryPathString, pVersionCode,
+            String nativeLibraryPathString, String requiredCpuAbiString, int sharedId, int pVersionCode, int pkgFlags) {
+        super(name, realName, codePath, resourcePath, nativeLibraryPathString, requiredCpuAbiString, pVersionCode,
                 pkgFlags);
         this.sharedId = sharedId;
     }
diff --git a/services/core/java/com/android/server/pm/PersistentPreferredActivity.java b/services/core/java/com/android/server/pm/PersistentPreferredActivity.java
index 4284a6d..0d4cdf9 100644
--- a/services/core/java/com/android/server/pm/PersistentPreferredActivity.java
+++ b/services/core/java/com/android/server/pm/PersistentPreferredActivity.java
@@ -48,7 +48,7 @@
         mComponent = ComponentName.unflattenFromString(shortComponent);
         if (mComponent == null) {
             PackageManagerService.reportSettingsProblem(Log.WARN,
-                    "Error in package manager settings <hard-preferred-activity>: " +
+                    "Error in package manager settings: " +
                             "Bad activity name " + shortComponent +
                             " at " + parser.getPositionDescription());
         }
@@ -65,7 +65,7 @@
                     break;
                 } else {
                     PackageManagerService.reportSettingsProblem(Log.WARN,
-                            "Unknown element under <hard-preferred-activity>: " + tagName +
+                            "Unknown element: " + tagName +
                             " at " + parser.getPositionDescription());
                     XmlUtils.skipCurrentTag(parser);
                 }
@@ -75,7 +75,7 @@
             readFromXml(parser);
         } else {
             PackageManagerService.reportSettingsProblem(Log.WARN,
-                    "Missing element under <hard-preferred-activity>: filter at " +
+                    "Missing element filter at " +
                     parser.getPositionDescription());
             XmlUtils.skipCurrentTag(parser);
         }
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 37547f2..80f716c 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -100,6 +100,8 @@
     private static final String TAG_ENABLED_COMPONENTS = "enabled-components";
     private static final String TAG_PACKAGE_RESTRICTIONS = "package-restrictions";
     private static final String TAG_PACKAGE = "pkg";
+    private static final String TAG_PERSISTENT_PREFERRED_ACTIVITIES =
+            "persistent-preferred-activities";
 
     private static final String ATTR_NAME = "name";
     private static final String ATTR_USER = "user";
@@ -215,10 +217,10 @@
 
     PackageSetting getPackageLPw(PackageParser.Package pkg, PackageSetting origPackage,
             String realName, SharedUserSetting sharedUser, File codePath, File resourcePath,
-            String nativeLibraryPathString, int pkgFlags, UserHandle user, boolean add) {
+            String nativeLibraryPathString, String requiredCpuAbiString, int pkgFlags, UserHandle user, boolean add) {
         final String name = pkg.packageName;
         PackageSetting p = getPackageLPw(name, origPackage, realName, sharedUser, codePath,
-                resourcePath, nativeLibraryPathString, pkg.mVersionCode, pkgFlags,
+                resourcePath, nativeLibraryPathString, requiredCpuAbiString, pkg.mVersionCode, pkgFlags,
                 user, add, true /* allowInstall */);
         return p;
     }
@@ -300,7 +302,7 @@
             p.pkg.applicationInfo.flags &= ~ApplicationInfo.FLAG_UPDATED_SYSTEM_APP;
         }
         PackageSetting ret = addPackageLPw(name, p.realName, p.codePath, p.resourcePath,
-                p.nativeLibraryPathString, p.appId, p.versionCode, p.pkgFlags);
+                p.nativeLibraryPathString, p.requiredCpuAbiString, p.appId, p.versionCode, p.pkgFlags);
         mDisabledSysPackages.remove(name);
         return ret;
     }
@@ -314,7 +316,7 @@
     }
 
     PackageSetting addPackageLPw(String name, String realName, File codePath, File resourcePath,
-            String nativeLibraryPathString, int uid, int vc, int pkgFlags) {
+            String nativeLibraryPathString, String requiredCpuAbiString, int uid, int vc, int pkgFlags) {
         PackageSetting p = mPackages.get(name);
         if (p != null) {
             if (p.appId == uid) {
@@ -324,7 +326,7 @@
                     "Adding duplicate package, keeping first: " + name);
             return null;
         }
-        p = new PackageSetting(name, realName, codePath, resourcePath, nativeLibraryPathString,
+        p = new PackageSetting(name, realName, codePath, resourcePath, nativeLibraryPathString, requiredCpuAbiString,
                 vc, pkgFlags);
         p.appId = uid;
         if (addUserIdLPw(uid, p, name)) {
@@ -393,10 +395,11 @@
 
     private PackageSetting getPackageLPw(String name, PackageSetting origPackage,
             String realName, SharedUserSetting sharedUser, File codePath, File resourcePath,
-            String nativeLibraryPathString, int vc, int pkgFlags,
+            String nativeLibraryPathString, String requiredCpuAbiString, int vc, int pkgFlags,
             UserHandle installUser, boolean add, boolean allowInstall) {
         PackageSetting p = mPackages.get(name);
         if (p != null) {
+            p.requiredCpuAbiString = requiredCpuAbiString;
             if (!p.codePath.equals(codePath)) {
                 // Check to see if its a disabled system app
                 if ((p.pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0) {
@@ -440,7 +443,7 @@
             if (origPackage != null) {
                 // We are consuming the data from an existing package.
                 p = new PackageSetting(origPackage.name, name, codePath, resourcePath,
-                        nativeLibraryPathString, vc, pkgFlags);
+                        nativeLibraryPathString, requiredCpuAbiString, vc, pkgFlags);
                 if (PackageManagerService.DEBUG_UPGRADE) Log.v(PackageManagerService.TAG, "Package "
                         + name + " is adopting original package " + origPackage.name);
                 // Note that we will retain the new package's signature so
@@ -457,7 +460,7 @@
                 p.setTimeStamp(codePath.lastModified());
             } else {
                 p = new PackageSetting(name, realName, codePath, resourcePath,
-                        nativeLibraryPathString, vc, pkgFlags);
+                        nativeLibraryPathString, requiredCpuAbiString, vc, pkgFlags);
                 p.setTimeStamp(codePath.lastModified());
                 p.sharedUser = sharedUser;
                 // If this is not a system app, it starts out stopped.
@@ -583,6 +586,8 @@
                 && !nativeLibraryPath.equalsIgnoreCase(p.nativeLibraryPathString)) {
             p.nativeLibraryPathString = nativeLibraryPath;
         }
+        // Update the required Cpu Abi
+        p.requiredCpuAbiString = pkg.applicationInfo.requiredCpuAbi;
         // Update version code if needed
         if (pkg.mVersionCode != p.versionCode) {
             p.versionCode = pkg.mVersionCode;
@@ -864,7 +869,8 @@
                 editPersistentPreferredActivitiesLPw(userId).addFilter(ppa);
             } else {
                 PackageManagerService.reportSettingsProblem(Log.WARN,
-                        "Unknown element under <hard-preferred-activities>: " + parser.getName());
+                        "Unknown element under <" + TAG_PERSISTENT_PREFERRED_ACTIVITIES + ">: "
+                        + parser.getName());
                 XmlUtils.skipCurrentTag(parser);
             }
         }
@@ -996,7 +1002,7 @@
                             enabledCaller, enabledComponents, disabledComponents);
                 } else if (tagName.equals("preferred-activities")) {
                     readPreferredActivitiesLPw(parser, userId);
-                } else if (tagName.equals("hard-preferred-activities")) {
+                } else if (tagName.equals(TAG_PERSISTENT_PREFERRED_ACTIVITIES)) {
                     readPersistentPreferredActivitiesLPw(parser, userId);
                 } else {
                     Slog.w(PackageManagerService.TAG, "Unknown element under <stopped-packages>: "
@@ -1063,7 +1069,7 @@
 
     void writePersistentPreferredActivitiesLPr(XmlSerializer serializer, int userId)
             throws IllegalArgumentException, IllegalStateException, IOException {
-        serializer.startTag(null, "hard-preferred-activities");
+        serializer.startTag(null, TAG_PERSISTENT_PREFERRED_ACTIVITIES);
         PersistentPreferredIntentResolver ppir = mPersistentPreferredActivities.get(userId);
         if (ppir != null) {
             for (final PersistentPreferredActivity ppa : ppir.filterSet()) {
@@ -1072,7 +1078,7 @@
                 serializer.endTag(null, TAG_ITEM);
             }
         }
-        serializer.endTag(null, "hard-preferred-activities");
+        serializer.endTag(null, TAG_PERSISTENT_PREFERRED_ACTIVITIES);
     }
 
     void writePackageRestrictionsLPr(int userId) {
@@ -1548,6 +1554,9 @@
         if (pkg.nativeLibraryPathString != null) {
             serializer.attribute(null, "nativeLibraryPath", pkg.nativeLibraryPathString);
         }
+        if (pkg.requiredCpuAbiString != null) {
+           serializer.attribute(null, "requiredCpuAbi", pkg.requiredCpuAbiString);
+        }
         if (pkg.sharedUser == null) {
             serializer.attribute(null, "userId", Integer.toString(pkg.appId));
         } else {
@@ -1590,6 +1599,9 @@
         if (pkg.nativeLibraryPathString != null) {
             serializer.attribute(null, "nativeLibraryPath", pkg.nativeLibraryPathString);
         }
+        if (pkg.requiredCpuAbiString != null) {
+           serializer.attribute(null, "requiredCpuAbi", pkg.requiredCpuAbiString);
+        }
         serializer.attribute(null, "flags", Integer.toString(pkg.pkgFlags));
         serializer.attribute(null, "ft", Long.toHexString(pkg.timeStamp));
         serializer.attribute(null, "it", Long.toHexString(pkg.firstInstallTime));
@@ -1775,7 +1787,7 @@
                     // Upgrading from old single-user implementation;
                     // these are the preferred activities for user 0.
                     readPreferredActivitiesLPw(parser, 0);
-                } else if (tagName.equals("hard-preferred-activities")) {
+                } else if (tagName.equals(TAG_PERSISTENT_PREFERRED_ACTIVITIES)) {
                     // TODO: check whether this is okay! as it is very
                     // similar to how preferred-activities are treated
                     readPersistentPreferredActivitiesLPw(parser, 0);
@@ -1858,7 +1870,7 @@
             if (idObj != null && idObj instanceof SharedUserSetting) {
                 PackageSetting p = getPackageLPw(pp.name, null, pp.realName,
                         (SharedUserSetting) idObj, pp.codePath, pp.resourcePath,
-                        pp.nativeLibraryPathString, pp.versionCode, pp.pkgFlags,
+                        pp.nativeLibraryPathString, pp.requiredCpuAbiString, pp.versionCode, pp.pkgFlags,
                         null, true /* add */, false /* allowInstall */);
                 if (p == null) {
                     PackageManagerService.reportSettingsProblem(Log.WARN,
@@ -2278,6 +2290,8 @@
         String codePathStr = parser.getAttributeValue(null, "codePath");
         String resourcePathStr = parser.getAttributeValue(null, "resourcePath");
         String nativeLibraryPathStr = parser.getAttributeValue(null, "nativeLibraryPath");
+        String requiredCpuAbiString = parser.getAttributeValue(null, "requiredCpuAbi");
+
         if (resourcePathStr == null) {
             resourcePathStr = codePathStr;
         }
@@ -2297,7 +2311,7 @@
             pkgFlags |= ApplicationInfo.FLAG_PRIVILEGED;
         }
         PackageSetting ps = new PackageSetting(name, realName, codePathFile,
-                new File(resourcePathStr), nativeLibraryPathStr, versionCode, pkgFlags);
+                new File(resourcePathStr), nativeLibraryPathStr, requiredCpuAbiString, versionCode, pkgFlags);
         String timeStampStr = parser.getAttributeValue(null, "ft");
         if (timeStampStr != null) {
             try {
@@ -2364,6 +2378,7 @@
         String codePathStr = null;
         String resourcePathStr = null;
         String nativeLibraryPathStr = null;
+        String requiredCpuAbiString = null;
         String systemStr = null;
         String installerPackageName = null;
         String uidError = null;
@@ -2383,6 +2398,8 @@
             codePathStr = parser.getAttributeValue(null, "codePath");
             resourcePathStr = parser.getAttributeValue(null, "resourcePath");
             nativeLibraryPathStr = parser.getAttributeValue(null, "nativeLibraryPath");
+            requiredCpuAbiString = parser.getAttributeValue(null, "requiredCpuAbi");
+
             version = parser.getAttributeValue(null, "version");
             if (version != null) {
                 try {
@@ -2459,7 +2476,7 @@
                                 + parser.getPositionDescription());
             } else if (userId > 0) {
                 packageSetting = addPackageLPw(name.intern(), realName, new File(codePathStr),
-                        new File(resourcePathStr), nativeLibraryPathStr, userId, versionCode,
+                        new File(resourcePathStr), nativeLibraryPathStr, requiredCpuAbiString, userId, versionCode,
                         pkgFlags);
                 if (PackageManagerService.DEBUG_SETTINGS)
                     Log.i(PackageManagerService.TAG, "Reading package " + name + ": userId="
@@ -2477,7 +2494,7 @@
                 userId = sharedIdStr != null ? Integer.parseInt(sharedIdStr) : 0;
                 if (userId > 0) {
                     packageSetting = new PendingPackage(name.intern(), realName, new File(
-                            codePathStr), new File(resourcePathStr), nativeLibraryPathStr, userId,
+                            codePathStr), new File(resourcePathStr), nativeLibraryPathStr, requiredCpuAbiString, userId,
                             versionCode, pkgFlags);
                     packageSetting.setTimeStamp(timeStamp);
                     packageSetting.firstInstallTime = firstInstallTime;
@@ -2506,6 +2523,7 @@
             packageSetting.uidError = "true".equals(uidError);
             packageSetting.installerPackageName = installerPackageName;
             packageSetting.nativeLibraryPathString = nativeLibraryPathStr;
+            packageSetting.requiredCpuAbiString = requiredCpuAbiString;
             // Handle legacy string here for single-user mode
             final String enabledStr = parser.getAttributeValue(null, ATTR_ENABLED);
             if (enabledStr != null) {
@@ -3005,6 +3023,7 @@
         pw.print(prefix); pw.print("  codePath="); pw.println(ps.codePathString);
         pw.print(prefix); pw.print("  resourcePath="); pw.println(ps.resourcePathString);
         pw.print(prefix); pw.print("  nativeLibraryPath="); pw.println(ps.nativeLibraryPathString);
+        pw.print(prefix); pw.print("  requiredCpuAbi="); pw.println(ps.requiredCpuAbiString);
         pw.print(prefix); pw.print("  versionCode="); pw.print(ps.versionCode);
         if (ps.pkg != null) {
             pw.print(" targetSdk="); pw.print(ps.pkg.applicationInfo.targetSdkVersion);
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 7f55464..32515b5 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -92,7 +92,7 @@
     private static final String ATTR_NEXT_SERIAL_NO = "nextSerialNumber";
     private static final String ATTR_PARTIAL = "partial";
     private static final String ATTR_USER_VERSION = "version";
-    private static final String ATTR_RELATED_GROUP_ID = "relatedGroupId";
+    private static final String ATTR_PROFILE_GROUP_ID = "profileGroupId";
     private static final String TAG_USERS = "users";
     private static final String TAG_USER = "user";
     private static final String TAG_RESTRICTIONS = "restrictions";
@@ -257,26 +257,28 @@
     }
 
     @Override
-    public List<UserInfo> getRelatedUsers(int userId) {
-        checkManageUsersPermission("query users");
+    public List<UserInfo> getProfiles(int userId) {
+        if (userId != UserHandle.getCallingUserId()) {
+            checkManageUsersPermission("getting profiles related to user " + userId);
+        }
         synchronized (mPackagesLock) {
             UserInfo user = getUserInfoLocked(userId);
             ArrayList<UserInfo> users = new ArrayList<UserInfo>(mUsers.size());
             for (int i = 0; i < mUsers.size(); i++) {
-                UserInfo ui = mUsers.valueAt(i);
-                if (!areRelatedUsers(user, ui)) {
+                UserInfo profile = mUsers.valueAt(i);
+                if (!isProfileOf(user, profile)) {
                     continue;
                 }
-                users.add(ui);
+                users.add(profile);
             }
             return users;
         }
     }
 
-    private boolean areRelatedUsers(UserInfo user1, UserInfo user2) {
-        return user1.relatedGroupId != UserInfo.NO_RELATED_GROUP_ID &&
-                user1.relatedGroupId == user2.relatedGroupId &&
-                user1.id != user2.id;
+    private boolean isProfileOf(UserInfo user, UserInfo profile) {
+        return user.id == profile.id ||
+                (user.profileGroupId != UserInfo.NO_PROFILE_GROUP_ID
+                && user.profileGroupId == profile.profileGroupId);
     }
 
     @Override
@@ -684,9 +686,9 @@
             if (userInfo.partial) {
                 serializer.attribute(null, ATTR_PARTIAL, "true");
             }
-            if (userInfo.relatedGroupId != UserInfo.NO_RELATED_GROUP_ID) {
-                serializer.attribute(null, ATTR_RELATED_GROUP_ID,
-                        Integer.toString(userInfo.relatedGroupId));
+            if (userInfo.profileGroupId != UserInfo.NO_PROFILE_GROUP_ID) {
+                serializer.attribute(null, ATTR_PROFILE_GROUP_ID,
+                        Integer.toString(userInfo.profileGroupId));
             }
 
             serializer.startTag(null, TAG_NAME);
@@ -771,7 +773,7 @@
         long salt = 0L;
         String pinHash = null;
         int failedAttempts = 0;
-        int relatedGroupId = UserInfo.NO_RELATED_GROUP_ID;
+        int profileGroupId = UserInfo.NO_PROFILE_GROUP_ID;
         long lastAttemptTime = 0L;
         boolean partial = false;
         Bundle restrictions = new Bundle();
@@ -809,8 +811,14 @@
                 pinHash = parser.getAttributeValue(null, ATTR_PIN_HASH);
                 failedAttempts = readIntAttribute(parser, ATTR_FAILED_ATTEMPTS, 0);
                 lastAttemptTime = readLongAttribute(parser, ATTR_LAST_RETRY_MS, 0L);
-                relatedGroupId = readIntAttribute(parser, ATTR_RELATED_GROUP_ID,
-                        UserInfo.NO_RELATED_GROUP_ID);
+                profileGroupId = readIntAttribute(parser, ATTR_PROFILE_GROUP_ID,
+                        UserInfo.NO_PROFILE_GROUP_ID);
+                if (profileGroupId == UserInfo.NO_PROFILE_GROUP_ID) {
+                    // This attribute was added and renamed during development of L.
+                    // TODO Remove upgrade path by 1st May 2014
+                    profileGroupId = readIntAttribute(parser, "relatedGroupId",
+                            UserInfo.NO_PROFILE_GROUP_ID);
+                }
                 String valueString = parser.getAttributeValue(null, ATTR_PARTIAL);
                 if ("true".equals(valueString)) {
                     partial = true;
@@ -849,7 +857,7 @@
             userInfo.creationTime = creationTime;
             userInfo.lastLoggedInTime = lastLoggedInTime;
             userInfo.partial = partial;
-            userInfo.relatedGroupId = relatedGroupId;
+            userInfo.profileGroupId = profileGroupId;
             mUserRestrictions.append(id, restrictions);
             if (salt != 0L) {
                 RestrictionsPinState pinState = mRestrictionsPinStates.get(id);
@@ -964,25 +972,25 @@
         }
     }
 
-    private int getNextRelatedGroupIdLocked() {
-        int maxGroupId = UserInfo.NO_RELATED_GROUP_ID;
+    private int getNextProfileGroupIdLocked() {
+        int maxGroupId = UserInfo.NO_PROFILE_GROUP_ID;
         for (int i = 0; i < mUsers.size(); i++) {
             UserInfo ui = mUsers.valueAt(i);
-            if (maxGroupId < ui.relatedGroupId) {
-                maxGroupId = ui.relatedGroupId;
+            if (maxGroupId < ui.profileGroupId) {
+                maxGroupId = ui.profileGroupId;
             }
         }
         return maxGroupId + 1;
     }
 
     @Override
-    public UserInfo createRelatedUser(String name, int flags, int relatedUserId) {
+    public UserInfo createProfileForUser(String name, int flags, int userId) {
         checkManageUsersPermission("Only the system can create users");
-        if (relatedUserId != UserHandle.USER_OWNER) {
-            Slog.w(LOG_TAG, "Only user owner can have related users");
+        if (userId != UserHandle.USER_OWNER) {
+            Slog.w(LOG_TAG, "Only user owner can have profiles");
             return null;
         }
-        return createUserInternal(name, flags, relatedUserId);
+        return createUserInternal(name, flags, userId);
     }
 
     @Override
@@ -991,16 +999,16 @@
         return createUserInternal(name, flags, UserHandle.USER_NULL);
     }
 
-    private UserInfo createUserInternal(String name, int flags, int relatedUserId) {
+    private UserInfo createUserInternal(String name, int flags, int profileId) {
         final long ident = Binder.clearCallingIdentity();
         UserInfo userInfo = null;
         try {
             synchronized (mInstallLock) {
                 synchronized (mPackagesLock) {
-                    UserInfo relatedUser = null;
-                    if (relatedUserId != UserHandle.USER_NULL) {
-                        relatedUser = getUserInfoLocked(relatedUserId);
-                        if (relatedUser == null) return null;
+                    UserInfo profile = null;
+                    if (profileId != UserHandle.USER_NULL) {
+                        profile = getUserInfoLocked(profileId);
+                        if (profile == null) return null;
                     }
                     if (isUserLimitReachedLocked()) return null;
                     int userId = getNextAvailableIdLocked();
@@ -1013,12 +1021,12 @@
                     Environment.getUserSystemDirectory(userInfo.id).mkdirs();
                     mUsers.put(userId, userInfo);
                     writeUserListLocked();
-                    if (relatedUser != null) {
-                        if (relatedUser.relatedGroupId == UserInfo.NO_RELATED_GROUP_ID) {
-                            relatedUser.relatedGroupId = getNextRelatedGroupIdLocked();
+                    if (profile != null) {
+                        if (profile.profileGroupId == UserInfo.NO_PROFILE_GROUP_ID) {
+                            profile.profileGroupId = getNextProfileGroupIdLocked();
+                            writeUserLocked(profile);
                         }
-                        userInfo.relatedGroupId = relatedUser.relatedGroupId;
-                        writeUserLocked(relatedUser);
+                        userInfo.profileGroupId = profile.profileGroupId;
                     }
                     writeUserLocked(userInfo);
                     mPm.createNewUserLILPw(userId, userPath);
diff --git a/services/core/java/com/android/server/power/AutomaticBrightnessController.java b/services/core/java/com/android/server/power/AutomaticBrightnessController.java
deleted file mode 100644
index 807262a..0000000
--- a/services/core/java/com/android/server/power/AutomaticBrightnessController.java
+++ /dev/null
@@ -1,686 +0,0 @@
-/*
- * 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.android.server.power;
-
-import com.android.server.twilight.TwilightListener;
-import com.android.server.twilight.TwilightManager;
-import com.android.server.twilight.TwilightState;
-
-import android.content.res.Resources;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.PowerManager;
-import android.os.SystemClock;
-import android.text.format.DateUtils;
-import android.util.MathUtils;
-import android.util.Spline;
-import android.util.Slog;
-import android.util.TimeUtils;
-
-import java.io.PrintWriter;
-import java.util.Arrays;
-
-class AutomaticBrightnessController {
-    private static final String TAG = "AutomaticBrightnessController";
-
-    private static final boolean DEBUG = false;
-    private static final boolean DEBUG_PRETEND_LIGHT_SENSOR_ABSENT = false;
-
-    // If true, enables the use of the screen auto-brightness adjustment setting.
-    private static final boolean USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT =
-            PowerManager.useScreenAutoBrightnessAdjustmentFeature();
-
-    // The maximum range of gamma adjustment possible using the screen
-    // auto-brightness adjustment setting.
-    private static final float SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT_MAX_GAMMA = 3.0f;
-
-    // Light sensor event rate in milliseconds.
-    private static final int LIGHT_SENSOR_RATE_MILLIS = 1000;
-
-    // Period of time in which to consider light samples in milliseconds.
-    private static final int AMBIENT_LIGHT_HORIZON = 10000;
-
-    // Stability requirements in milliseconds for accepting a new brightness level.  This is used
-    // for debouncing the light sensor.  Different constants are used to debounce the light sensor
-    // when adapting to brighter or darker environments.  This parameter controls how quickly
-    // brightness changes occur in response to an observed change in light level that exceeds the
-    // hysteresis threshold.
-    private static final long BRIGHTENING_LIGHT_DEBOUNCE = 4000;
-    private static final long DARKENING_LIGHT_DEBOUNCE = 8000;
-
-    // Hysteresis constraints for brightening or darkening.
-    // The recent lux must have changed by at least this fraction relative to the
-    // current ambient lux before a change will be considered.
-    private static final float BRIGHTENING_LIGHT_HYSTERESIS = 0.10f;
-    private static final float DARKENING_LIGHT_HYSTERESIS = 0.20f;
-
-    // The intercept used for the weighting calculation. This is used in order to keep all possible
-    // weighting values positive.
-    private static final int WEIGHTING_INTERCEPT = AMBIENT_LIGHT_HORIZON;
-
-    // How long the current sensor reading is assumed to be valid beyond the current time.
-    // This provides a bit of prediction, as well as ensures that the weight for the last sample is
-    // non-zero, which in turn ensures that the total weight is non-zero.
-    private static final long AMBIENT_LIGHT_PREDICTION_TIME_MILLIS = 100;
-
-    // If true, enables the use of the current time as an auto-brightness adjustment.
-    // The basic idea here is to expand the dynamic range of auto-brightness
-    // when it is especially dark outside.  The light sensor tends to perform
-    // poorly at low light levels so we compensate for it by making an
-    // assumption about the environment.
-    private static final boolean USE_TWILIGHT_ADJUSTMENT =
-            PowerManager.useTwilightAdjustmentFeature();
-
-    // Specifies the maximum magnitude of the time of day adjustment.
-    private static final float TWILIGHT_ADJUSTMENT_MAX_GAMMA = 1.5f;
-
-    // The amount of time after or before sunrise over which to start adjusting
-    // the gamma.  We want the change to happen gradually so that it is below the
-    // threshold of perceptibility and so that the adjustment has maximum effect
-    // well after dusk.
-    private static final long TWILIGHT_ADJUSTMENT_TIME = DateUtils.HOUR_IN_MILLIS * 2;
-
-    private static final int MSG_UPDATE_AMBIENT_LUX = 1;
-
-    // Callbacks for requesting updates to the the display's power state
-    private final Callbacks mCallbacks;
-
-    // The sensor manager.
-    private final SensorManager mSensorManager;
-
-    // The light sensor, or null if not available or needed.
-    private final Sensor mLightSensor;
-
-    // The twilight service.
-    private final TwilightManager mTwilight;
-
-    // The auto-brightness spline adjustment.
-    // The brightness values have been scaled to a range of 0..1.
-    private final Spline mScreenAutoBrightnessSpline;
-
-    // The minimum and maximum screen brightnesses.
-    private final int mScreenBrightnessRangeMinimum;
-    private final int mScreenBrightnessRangeMaximum;
-
-    // Amount of time to delay auto-brightness after screen on while waiting for
-    // the light sensor to warm-up in milliseconds.
-    // May be 0 if no warm-up is required.
-    private int mLightSensorWarmUpTimeConfig;
-
-    // Set to true if the light sensor is enabled.
-    private boolean mLightSensorEnabled;
-
-    // The time when the light sensor was enabled.
-    private long mLightSensorEnableTime;
-
-    // The currently accepted nominal ambient light level.
-    private float mAmbientLux;
-
-    // True if mAmbientLux holds a valid value.
-    private boolean mAmbientLuxValid;
-
-    // The ambient light level threshold at which to brighten or darken the screen.
-    private float mBrighteningLuxThreshold;
-    private float mDarkeningLuxThreshold;
-
-    // The most recent light sample.
-    private float mLastObservedLux;
-
-    // The time of the most light recent sample.
-    private long mLastObservedLuxTime;
-
-    // The number of light samples collected since the light sensor was enabled.
-    private int mRecentLightSamples;
-
-    // A ring buffer containing all of the recent ambient light sensor readings.
-    private AmbientLightRingBuffer mAmbientLightRingBuffer;
-
-    // The handler
-    private AutomaticBrightnessHandler mHandler;
-
-    // The screen brightness level that has been chosen by the auto-brightness
-    // algorithm.  The actual brightness should ramp towards this value.
-    // We preserve this value even when we stop using the light sensor so
-    // that we can quickly revert to the previous auto-brightness level
-    // while the light sensor warms up.
-    // Use -1 if there is no current auto-brightness value available.
-    private int mScreenAutoBrightness = -1;
-
-    // The screen auto-brightness adjustment factor in the range -1 (dimmer) to 1 (brighter)
-    private float mScreenAutoBrightnessAdjustment = 0.0f;
-
-    // The last screen auto-brightness gamma.  (For printing in dump() only.)
-    private float mLastScreenAutoBrightnessGamma = 1.0f;
-
-    public AutomaticBrightnessController(Callbacks callbacks, Looper looper,
-            TwilightManager twilight, SensorManager sensorManager, Spline autoBrightnessSpline,
-            int lightSensorWarmUpTime, int brightnessMin, int brightnessMax) {
-        mCallbacks = callbacks;
-        mTwilight = twilight;
-        mSensorManager = sensorManager;
-        mScreenAutoBrightnessSpline = autoBrightnessSpline;
-        mScreenBrightnessRangeMinimum = brightnessMin;
-        mScreenBrightnessRangeMaximum = brightnessMax;
-        mLightSensorWarmUpTimeConfig = lightSensorWarmUpTime;
-
-        mHandler = new AutomaticBrightnessHandler(looper);
-        mAmbientLightRingBuffer = new AmbientLightRingBuffer();
-
-        if (!DEBUG_PRETEND_LIGHT_SENSOR_ABSENT) {
-            mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
-        }
-
-        if (USE_TWILIGHT_ADJUSTMENT) {
-            mTwilight.registerListener(mTwilightListener, mHandler);
-        }
-    }
-
-    public int getAutomaticScreenBrightness() {
-        return mScreenAutoBrightness;
-    }
-
-    public void updatePowerState(DisplayPowerRequest request) {
-        if (setScreenAutoBrightnessAdjustment(request.screenAutoBrightnessAdjustment)
-                || setLightSensorEnabled(request.wantLightSensorEnabled())) {
-            updateAutoBrightness(false /*sendUpdate*/);
-        }
-    }
-
-    public void dump(PrintWriter pw) {
-        pw.println();
-        pw.println("Automatic Brightness Controller Configuration:");
-        pw.println("  mScreenAutoBrightnessSpline=" + mScreenAutoBrightnessSpline);
-        pw.println("  mScreenBrightnessRangeMinimum=" + mScreenBrightnessRangeMinimum);
-        pw.println("  mScreenBrightnessRangeMaximum=" + mScreenBrightnessRangeMaximum);
-        pw.println("  mLightSensorWarmUpTimeConfig=" + mLightSensorWarmUpTimeConfig);
-
-        pw.println();
-        pw.println("Automatic Brightness Controller State:");
-        pw.println("  mLightSensor=" + mLightSensor);
-        pw.println("  mTwilight.getCurrentState()=" + mTwilight.getCurrentState());
-        pw.println("  mLightSensorEnabled=" + mLightSensorEnabled);
-        pw.println("  mLightSensorEnableTime=" + TimeUtils.formatUptime(mLightSensorEnableTime));
-        pw.println("  mAmbientLux=" + mAmbientLux);
-        pw.println("  mBrighteningLuxThreshold=" + mBrighteningLuxThreshold);
-        pw.println("  mDarkeningLuxThreshold=" + mDarkeningLuxThreshold);
-        pw.println("  mLastObservedLux=" + mLastObservedLux);
-        pw.println("  mLastObservedLuxTime=" + TimeUtils.formatUptime(mLastObservedLuxTime));
-        pw.println("  mRecentLightSamples=" + mRecentLightSamples);
-        pw.println("  mAmbientLightRingBuffer=" + mAmbientLightRingBuffer);
-        pw.println("  mScreenAutoBrightness=" + mScreenAutoBrightness);
-        pw.println("  mScreenAutoBrightnessAdjustment=" + mScreenAutoBrightnessAdjustment);
-        pw.println("  mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
-    }
-
-    private boolean setLightSensorEnabled(boolean enable) {
-        if (enable) {
-            if (!mLightSensorEnabled) {
-                mLightSensorEnabled = true;
-                mLightSensorEnableTime = SystemClock.uptimeMillis();
-                mSensorManager.registerListener(mLightSensorListener, mLightSensor,
-                        LIGHT_SENSOR_RATE_MILLIS * 1000, mHandler);
-                return true;
-            }
-        } else {
-            if (mLightSensorEnabled) {
-                mLightSensorEnabled = false;
-                mAmbientLuxValid = false;
-                mRecentLightSamples = 0;
-                mAmbientLightRingBuffer.clear();
-                mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
-                mSensorManager.unregisterListener(mLightSensorListener);
-            }
-        }
-        return false;
-    }
-
-    private void handleLightSensorEvent(long time, float lux) {
-        mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
-
-        applyLightSensorMeasurement(time, lux);
-        updateAmbientLux(time);
-    }
-
-    private void applyLightSensorMeasurement(long time, float lux) {
-        mRecentLightSamples++;
-        mAmbientLightRingBuffer.prune(time - AMBIENT_LIGHT_HORIZON);
-        mAmbientLightRingBuffer.push(time, lux);
-
-        // Remember this sample value.
-        mLastObservedLux = lux;
-        mLastObservedLuxTime = time;
-    }
-
-    private boolean setScreenAutoBrightnessAdjustment(float adjustment) {
-        if (adjustment != mScreenAutoBrightnessAdjustment) {
-            mScreenAutoBrightnessAdjustment = adjustment;
-            return true;
-        }
-        return false;
-    }
-
-    private void setAmbientLux(float lux) {
-        mAmbientLux = lux;
-        mBrighteningLuxThreshold = mAmbientLux * (1.0f + BRIGHTENING_LIGHT_HYSTERESIS);
-        mDarkeningLuxThreshold = mAmbientLux * (1.0f - DARKENING_LIGHT_HYSTERESIS);
-    }
-
-    private float calculateAmbientLux(long now) {
-        final int N = mAmbientLightRingBuffer.size();
-        if (N == 0) {
-            Slog.e(TAG, "calculateAmbientLux: No ambient light readings available");
-            return -1;
-        }
-        float sum = 0;
-        float totalWeight = 0;
-        long endTime = AMBIENT_LIGHT_PREDICTION_TIME_MILLIS;
-        for (int i = N - 1; i >= 0; i--) {
-            long startTime = (mAmbientLightRingBuffer.getTime(i) - now);
-            float weight = calculateWeight(startTime, endTime);
-            float lux = mAmbientLightRingBuffer.getLux(i);
-            if (DEBUG) {
-                Slog.d(TAG, "calculateAmbientLux: [" +
-                        (startTime) + ", " +
-                        (endTime) + "]: lux=" + lux + ", weight=" + weight);
-            }
-            totalWeight += weight;
-            sum += mAmbientLightRingBuffer.getLux(i) * weight;
-            endTime = startTime;
-        }
-        if (DEBUG) {
-            Slog.d(TAG, "calculateAmbientLux: totalWeight=" + totalWeight +
-                    ", newAmbientLux=" + (sum / totalWeight));
-        }
-        return sum / totalWeight;
-    }
-
-    private static float calculateWeight(long startDelta, long endDelta) {
-        return weightIntegral(endDelta) - weightIntegral(startDelta);
-    }
-
-    // Evaluates the integral of y = x + WEIGHTING_INTERCEPT. This is always positive for the
-    // horizon we're looking at and provides a non-linear weighting for light samples.
-    private static float weightIntegral(long x) {
-        return x * (x * 0.5f + WEIGHTING_INTERCEPT);
-    }
-
-    private long nextAmbientLightBrighteningTransition(long time) {
-        final int N = mAmbientLightRingBuffer.size();
-        long earliestValidTime = time;
-        for (int i = N - 1; i >= 0; i--) {
-            if (mAmbientLightRingBuffer.getLux(i) <= mBrighteningLuxThreshold) {
-                break;
-            }
-            earliestValidTime = mAmbientLightRingBuffer.getTime(i);
-        }
-        return earliestValidTime + BRIGHTENING_LIGHT_DEBOUNCE;
-    }
-
-    private long nextAmbientLightDarkeningTransition(long time) {
-        final int N = mAmbientLightRingBuffer.size();
-        long earliestValidTime = time;
-        for (int i = N - 1; i >= 0; i--) {
-            if (mAmbientLightRingBuffer.getLux(i) >= mDarkeningLuxThreshold) {
-                break;
-            }
-            earliestValidTime = mAmbientLightRingBuffer.getTime(i);
-        }
-        return earliestValidTime + DARKENING_LIGHT_DEBOUNCE;
-    }
-
-    private void updateAmbientLux() {
-        long time = SystemClock.uptimeMillis();
-        mAmbientLightRingBuffer.prune(time - AMBIENT_LIGHT_HORIZON);
-        updateAmbientLux(time);
-    }
-
-    private void updateAmbientLux(long time) {
-        // If the light sensor was just turned on then immediately update our initial
-        // estimate of the current ambient light level.
-        if (!mAmbientLuxValid) {
-            final long timeWhenSensorWarmedUp =
-                mLightSensorWarmUpTimeConfig + mLightSensorEnableTime;
-            if (time < timeWhenSensorWarmedUp) {
-                if (DEBUG) {
-                    Slog.d(TAG, "updateAmbientLux: Sensor not  ready yet: "
-                            + "time=" + time
-                            + ", timeWhenSensorWarmedUp=" + timeWhenSensorWarmedUp);
-                }
-                mHandler.sendEmptyMessageAtTime(MSG_UPDATE_AMBIENT_LUX,
-                        timeWhenSensorWarmedUp);
-                return;
-            }
-            setAmbientLux(calculateAmbientLux(time));
-            mAmbientLuxValid = true;
-            if (DEBUG) {
-                Slog.d(TAG, "updateAmbientLux: Initializing: "
-                        + "mAmbientLightRingBuffer=" + mAmbientLightRingBuffer
-                        + ", mAmbientLux=" + mAmbientLux);
-            }
-            updateAutoBrightness(true);
-        }
-
-        long nextBrightenTransition = nextAmbientLightBrighteningTransition(time);
-        long nextDarkenTransition = nextAmbientLightDarkeningTransition(time);
-        float ambientLux = calculateAmbientLux(time);
-
-        if (ambientLux >= mBrighteningLuxThreshold && nextBrightenTransition <= time
-                || ambientLux <= mDarkeningLuxThreshold && nextDarkenTransition <= time) {
-            setAmbientLux(ambientLux);
-            if (DEBUG) {
-                Slog.d(TAG, "updateAmbientLux: "
-                        + ((ambientLux > mAmbientLux) ? "Brightened" : "Darkened") + ": "
-                        + "mBrighteningLuxThreshold=" + mBrighteningLuxThreshold
-                        + ", mAmbientLightRingBuffer=" + mAmbientLightRingBuffer
-                        + ", mAmbientLux=" + mAmbientLux);
-            }
-            updateAutoBrightness(true);
-            nextBrightenTransition = nextAmbientLightBrighteningTransition(time);
-            nextDarkenTransition = nextAmbientLightDarkeningTransition(time);
-        }
-        long nextTransitionTime = Math.min(nextDarkenTransition, nextBrightenTransition);
-        // If one of the transitions is ready to occur, but the total weighted ambient lux doesn't
-        // exceed the necessary threshold, then it's possible we'll get a transition time prior to
-        // now. Rather than continually checking to see whether the weighted lux exceeds the
-        // threshold, schedule an update for when we'd normally expect another light sample, which
-        // should be enough time to decide whether we should actually transition to the new
-        // weighted ambient lux or not.
-        nextTransitionTime =
-                nextTransitionTime > time ? nextTransitionTime : time + LIGHT_SENSOR_RATE_MILLIS;
-        if (DEBUG) {
-            Slog.d(TAG, "updateAmbientLux: Scheduling ambient lux update for "
-                    + nextTransitionTime + TimeUtils.formatUptime(nextTransitionTime));
-        }
-        mHandler.sendEmptyMessageAtTime(MSG_UPDATE_AMBIENT_LUX, nextTransitionTime);
-    }
-
-    private void updateAutoBrightness(boolean sendUpdate) {
-        if (!mAmbientLuxValid) {
-            return;
-        }
-
-        float value = mScreenAutoBrightnessSpline.interpolate(mAmbientLux);
-        float gamma = 1.0f;
-
-        if (USE_SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT
-                && mScreenAutoBrightnessAdjustment != 0.0f) {
-            final float adjGamma = MathUtils.pow(SCREEN_AUTO_BRIGHTNESS_ADJUSTMENT_MAX_GAMMA,
-                    Math.min(1.0f, Math.max(-1.0f, -mScreenAutoBrightnessAdjustment)));
-            gamma *= adjGamma;
-            if (DEBUG) {
-                Slog.d(TAG, "updateAutoBrightness: adjGamma=" + adjGamma);
-            }
-        }
-
-        if (USE_TWILIGHT_ADJUSTMENT) {
-            TwilightState state = mTwilight.getCurrentState();
-            if (state != null && state.isNight()) {
-                final long now = System.currentTimeMillis();
-                final float earlyGamma =
-                        getTwilightGamma(now, state.getYesterdaySunset(), state.getTodaySunrise());
-                final float lateGamma =
-                        getTwilightGamma(now, state.getTodaySunset(), state.getTomorrowSunrise());
-                gamma *= earlyGamma * lateGamma;
-                if (DEBUG) {
-                    Slog.d(TAG, "updateAutoBrightness: earlyGamma=" + earlyGamma
-                            + ", lateGamma=" + lateGamma);
-                }
-            }
-        }
-
-        if (gamma != 1.0f) {
-            final float in = value;
-            value = MathUtils.pow(value, gamma);
-            if (DEBUG) {
-                Slog.d(TAG, "updateAutoBrightness: gamma=" + gamma
-                        + ", in=" + in + ", out=" + value);
-            }
-        }
-
-        int newScreenAutoBrightness =
-            clampScreenBrightness(Math.round(value * PowerManager.BRIGHTNESS_ON));
-        if (mScreenAutoBrightness != newScreenAutoBrightness) {
-            if (DEBUG) {
-                Slog.d(TAG, "updateAutoBrightness: mScreenAutoBrightness="
-                        + mScreenAutoBrightness + ", newScreenAutoBrightness="
-                        + newScreenAutoBrightness);
-            }
-
-            mScreenAutoBrightness = newScreenAutoBrightness;
-            mLastScreenAutoBrightnessGamma = gamma;
-            if (sendUpdate) {
-                mCallbacks.updateBrightness();
-            }
-        }
-    }
-
-    private int clampScreenBrightness(int value) {
-        return MathUtils.constrain(value,
-                mScreenBrightnessRangeMinimum, mScreenBrightnessRangeMaximum);
-    }
-
-    private static float getTwilightGamma(long now, long lastSunset, long nextSunrise) {
-        if (lastSunset < 0 || nextSunrise < 0
-                || now < lastSunset || now > nextSunrise) {
-            return 1.0f;
-        }
-
-        if (now < lastSunset + TWILIGHT_ADJUSTMENT_TIME) {
-            return MathUtils.lerp(1.0f, TWILIGHT_ADJUSTMENT_MAX_GAMMA,
-                    (float)(now - lastSunset) / TWILIGHT_ADJUSTMENT_TIME);
-        }
-
-        if (now > nextSunrise - TWILIGHT_ADJUSTMENT_TIME) {
-            return MathUtils.lerp(1.0f, TWILIGHT_ADJUSTMENT_MAX_GAMMA,
-                    (float)(nextSunrise - now) / TWILIGHT_ADJUSTMENT_TIME);
-        }
-
-        return TWILIGHT_ADJUSTMENT_MAX_GAMMA;
-    }
-
-    private final class AutomaticBrightnessHandler extends Handler {
-        public AutomaticBrightnessHandler(Looper looper) {
-            super(looper, null, true /*async*/);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_UPDATE_AMBIENT_LUX:
-                    updateAmbientLux();
-                    break;
-            }
-        }
-    }
-
-    private final SensorEventListener mLightSensorListener = new SensorEventListener() {
-        @Override
-        public void onSensorChanged(SensorEvent event) {
-            if (mLightSensorEnabled) {
-                final long time = SystemClock.uptimeMillis();
-                final float lux = event.values[0];
-                handleLightSensorEvent(time, lux);
-            }
-        }
-
-        @Override
-        public void onAccuracyChanged(Sensor sensor, int accuracy) {
-            // Not used.
-        }
-    };
-
-    private final TwilightListener mTwilightListener = new TwilightListener() {
-        @Override
-        public void onTwilightStateChanged() {
-            updateAutoBrightness(true /*sendUpdate*/);
-        }
-    };
-
-    /** Callbacks to request updates to the display's power state. */
-    interface Callbacks {
-        void updateBrightness();
-    }
-
-    private static final class AmbientLightRingBuffer{
-        // Proportional extra capacity of the buffer beyond the expected number of light samples
-        // in the horizon
-        private static final float BUFFER_SLACK = 1.5f;
-        private static final int DEFAULT_CAPACITY =
-            (int) Math.ceil(AMBIENT_LIGHT_HORIZON * BUFFER_SLACK / LIGHT_SENSOR_RATE_MILLIS);
-        private float[] mRingLux;
-        private long[] mRingTime;
-        private int mCapacity;
-
-        // The first valid element and the next open slot.
-        // Note that if mCount is zero then there are no valid elements.
-        private int mStart;
-        private int mEnd;
-        private int mCount;
-
-        public AmbientLightRingBuffer() {
-            this(DEFAULT_CAPACITY);
-        }
-
-        public AmbientLightRingBuffer(int initialCapacity) {
-            mCapacity = initialCapacity;
-            mRingLux = new float[mCapacity];
-            mRingTime = new long[mCapacity];
-        }
-
-        public float getLux(int index) {
-            return mRingLux[offsetOf(index)];
-        }
-
-        public long getTime(int index) {
-            return mRingTime[offsetOf(index)];
-        }
-
-        public void push(long time, float lux) {
-            int next = mEnd;
-            if (mCount == mCapacity) {
-                int newSize = mCapacity * 2;
-
-                float[] newRingLux = new float[newSize];
-                long[] newRingTime = new long[newSize];
-                int length = mCapacity - mStart;
-                System.arraycopy(mRingLux, mStart, newRingLux, 0, length);
-                System.arraycopy(mRingTime, mStart, newRingTime, 0, length);
-                if (mStart != 0) {
-                    System.arraycopy(mRingLux, 0, newRingLux, length, mStart);
-                    System.arraycopy(mRingTime, 0, newRingTime, length, mStart);
-                }
-                mRingLux = newRingLux;
-                mRingTime = newRingTime;
-
-                next = mCapacity;
-                mCapacity = newSize;
-                mStart = 0;
-            }
-            mRingTime[next] = time;
-            mRingLux[next] = lux;
-            mEnd = next + 1;
-            if (mEnd == mCapacity) {
-                mEnd = 0;
-            }
-            mCount++;
-        }
-
-        public void prune(long horizon) {
-            if (mCount == 0) {
-                return;
-            }
-
-            while (mCount > 1) {
-                int next = mStart + 1;
-                if (next >= mCapacity) {
-                    next -= mCapacity;
-                }
-                if (mRingTime[next] > horizon) {
-                    // Some light sensors only produce data upon a change in the ambient light
-                    // levels, so we need to consider the previous measurement as the ambient light
-                    // level for all points in time up until we receive a new measurement. Thus, we
-                    // always want to keep the youngest element that would be removed from the
-                    // buffer and just set its measurement time to the horizon time since at that
-                    // point it is the ambient light level, and to remove it would be to drop a
-                    // valid data point within our horizon.
-                    break;
-                }
-                mStart = next;
-                mCount -= 1;
-            }
-
-            if (mRingTime[mStart] < horizon) {
-                mRingTime[mStart] = horizon;
-            }
-        }
-
-        public int size() {
-            return mCount;
-        }
-
-        public boolean isEmpty() {
-            return mCount == 0;
-        }
-
-        public void clear() {
-            mStart = 0;
-            mEnd = 0;
-            mCount = 0;
-        }
-
-        @Override
-        public String toString() {
-            final int length = mCapacity - mStart;
-            float[] lux = new float[mCount];
-            long[] time = new long[mCount];
-
-            if (mCount <= length) {
-                System.arraycopy(mRingLux, mStart, lux, 0, mCount);
-                System.arraycopy(mRingTime, mStart, time, 0, mCount);
-            } else {
-                System.arraycopy(mRingLux, mStart, lux, 0, length);
-                System.arraycopy(mRingLux, 0, lux, length, mCount - length);
-
-                System.arraycopy(mRingTime, mStart, time, 0, length);
-                System.arraycopy(mRingTime, 0, time, length, mCount - length);
-            }
-            return "AmbientLightRingBuffer{mCapacity=" + mCapacity
-                + ", mStart=" + mStart
-                + ", mEnd=" + mEnd
-                + ", mCount=" + mCount
-                + ", mRingLux=" + Arrays.toString(lux)
-                + ", mRingTime=" + Arrays.toString(time)
-                + "}";
-        }
-
-        private int offsetOf(int index) {
-            if (index >= mCount || index < 0) {
-                throw new ArrayIndexOutOfBoundsException(index);
-            }
-            index += mStart;
-            if (index >= mCapacity) {
-                index -= mCapacity;
-            }
-            return index;
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/power/DisplayBlanker.java b/services/core/java/com/android/server/power/DisplayBlanker.java
deleted file mode 100644
index 6072053..0000000
--- a/services/core/java/com/android/server/power/DisplayBlanker.java
+++ /dev/null
@@ -1,25 +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.
- */
-
-package com.android.server.power;
-
-/**
- * Blanks or unblanks all displays.
- */
-interface DisplayBlanker {
-    public void blankAllDisplays();
-    public void unblankAllDisplays();
-}
diff --git a/services/core/java/com/android/server/power/DisplayPowerController.java b/services/core/java/com/android/server/power/DisplayPowerController.java
deleted file mode 100644
index 6d3702a..0000000
--- a/services/core/java/com/android/server/power/DisplayPowerController.java
+++ /dev/null
@@ -1,960 +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.
- */
-
-package com.android.server.power;
-
-import com.android.server.lights.LightsManager;
-import com.android.server.twilight.TwilightListener;
-import com.android.server.twilight.TwilightManager;
-import com.android.server.twilight.TwilightState;
-
-import android.animation.Animator;
-import android.animation.ObjectAnimator;
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.PowerManager;
-import android.os.SystemClock;
-import android.text.format.DateUtils;
-import android.util.MathUtils;
-import android.util.Slog;
-import android.util.Spline;
-import android.util.TimeUtils;
-
-import java.io.PrintWriter;
-
-/**
- * Controls the power state of the display.
- *
- * Handles the proximity sensor, light sensor, and animations between states
- * including the screen off animation.
- *
- * This component acts independently of the rest of the power manager service.
- * In particular, it does not share any state and it only communicates
- * via asynchronous callbacks to inform the power manager that something has
- * changed.
- *
- * Everything this class does internally is serialized on its handler although
- * it may be accessed by other threads from the outside.
- *
- * Note that the power manager service guarantees that it will hold a suspend
- * blocker as long as the display is not ready.  So most of the work done here
- * does not need to worry about holding a suspend blocker unless it happens
- * independently of the display ready signal.
- *
- * For debugging, you can make the electron beam and brightness animations run
- * slower by changing the "animator duration scale" option in Development Settings.
- */
-final class DisplayPowerController implements AutomaticBrightnessController.Callbacks {
-    private static final String TAG = "DisplayPowerController";
-
-    private static boolean DEBUG = false;
-    private static final boolean DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT = false;
-
-    // If true, uses the electron beam on animation.
-    // We might want to turn this off if we cannot get a guarantee that the screen
-    // actually turns on and starts showing new content after the call to set the
-    // screen state returns.  Playing the animation can also be somewhat slow.
-    private static final boolean USE_ELECTRON_BEAM_ON_ANIMATION = false;
-
-
-    // The minimum reduction in brightness when dimmed.
-    private static final int SCREEN_DIM_MINIMUM_REDUCTION = 10;
-
-    // If true, enables the use of the current time as an auto-brightness adjustment.
-    // The basic idea here is to expand the dynamic range of auto-brightness
-    // when it is especially dark outside.  The light sensor tends to perform
-    // poorly at low light levels so we compensate for it by making an
-    // assumption about the environment.
-    private static final boolean USE_TWILIGHT_ADJUSTMENT =
-            PowerManager.useTwilightAdjustmentFeature();
-
-    // Specifies the maximum magnitude of the time of day adjustment.
-    private static final float TWILIGHT_ADJUSTMENT_MAX_GAMMA = 1.5f;
-
-    // The amount of time after or before sunrise over which to start adjusting
-    // the gamma.  We want the change to happen gradually so that it is below the
-    // threshold of perceptibility and so that the adjustment has maximum effect
-    // well after dusk.
-    private static final long TWILIGHT_ADJUSTMENT_TIME = DateUtils.HOUR_IN_MILLIS * 2;
-
-    private static final int ELECTRON_BEAM_ON_ANIMATION_DURATION_MILLIS = 250;
-    private static final int ELECTRON_BEAM_OFF_ANIMATION_DURATION_MILLIS = 400;
-
-    private static final int MSG_UPDATE_POWER_STATE = 1;
-    private static final int MSG_PROXIMITY_SENSOR_DEBOUNCED = 2;
-
-    private static final int PROXIMITY_UNKNOWN = -1;
-    private static final int PROXIMITY_NEGATIVE = 0;
-    private static final int PROXIMITY_POSITIVE = 1;
-
-    // Proximity sensor debounce delay in milliseconds for positive or negative transitions.
-    private static final int PROXIMITY_SENSOR_POSITIVE_DEBOUNCE_DELAY = 0;
-    private static final int PROXIMITY_SENSOR_NEGATIVE_DEBOUNCE_DELAY = 250;
-
-    // Trigger proximity if distance is less than 5 cm.
-    private static final float TYPICAL_PROXIMITY_THRESHOLD = 5.0f;
-
-    // Brightness animation ramp rate in brightness units per second.
-    private static final int BRIGHTNESS_RAMP_RATE_FAST = 200;
-    private static final int BRIGHTNESS_RAMP_RATE_SLOW = 40;
-
-    private final Object mLock = new Object();
-
-    // Notifier for sending asynchronous notifications.
-    private final Notifier mNotifier;
-
-    // The display suspend blocker.
-    // Held while there are pending state change notifications.
-    private final SuspendBlocker mDisplaySuspendBlocker;
-
-    // The display blanker.
-    private final DisplayBlanker mDisplayBlanker;
-
-    // Our handler.
-    private final DisplayControllerHandler mHandler;
-
-    // Asynchronous callbacks into the power manager service.
-    // Only invoked from the handler thread while no locks are held.
-    private final Callbacks mCallbacks;
-    private Handler mCallbackHandler;
-
-    // The lights service.
-    private final LightsManager mLights;
-
-    // The sensor manager.
-    private final SensorManager mSensorManager;
-
-    // The proximity sensor, or null if not available or needed.
-    private Sensor mProximitySensor;
-
-    // The doze screen brightness.
-    private final int mScreenBrightnessDozeConfig;
-
-    // The dim screen brightness.
-    private final int mScreenBrightnessDimConfig;
-
-    // The minimum allowed brightness.
-    private final int mScreenBrightnessRangeMinimum;
-
-    // The maximum allowed brightness.
-    private final int mScreenBrightnessRangeMaximum;
-
-    // True if auto-brightness should be used.
-    private boolean mUseSoftwareAutoBrightnessConfig;
-
-    // True if we should fade the screen while turning it off, false if we should play
-    // a stylish electron beam animation instead.
-    private boolean mElectronBeamFadesConfig;
-
-    // The pending power request.
-    // Initially null until the first call to requestPowerState.
-    // Guarded by mLock.
-    private DisplayPowerRequest mPendingRequestLocked;
-
-    // True if a request has been made to wait for the proximity sensor to go negative.
-    // Guarded by mLock.
-    private boolean mPendingWaitForNegativeProximityLocked;
-
-    // True if the pending power request or wait for negative proximity flag
-    // has been changed since the last update occurred.
-    // Guarded by mLock.
-    private boolean mPendingRequestChangedLocked;
-
-    // Set to true when the important parts of the pending power request have been applied.
-    // The important parts are mainly the screen state.  Brightness changes may occur
-    // concurrently.
-    // Guarded by mLock.
-    private boolean mDisplayReadyLocked;
-
-    // Set to true if a power state update is required.
-    // Guarded by mLock.
-    private boolean mPendingUpdatePowerStateLocked;
-
-    /* The following state must only be accessed by the handler thread. */
-
-    // The currently requested power state.
-    // The power controller will progressively update its internal state to match
-    // the requested power state.  Initially null until the first update.
-    private DisplayPowerRequest mPowerRequest;
-
-    // The current power state.
-    // Must only be accessed on the handler thread.
-    private DisplayPowerState mPowerState;
-
-    // True if the device should wait for negative proximity sensor before
-    // waking up the screen.  This is set to false as soon as a negative
-    // proximity sensor measurement is observed or when the device is forced to
-    // go to sleep by the user.  While true, the screen remains off.
-    private boolean mWaitingForNegativeProximity;
-
-    // The actual proximity sensor threshold value.
-    private float mProximityThreshold;
-
-    // Set to true if the proximity sensor listener has been registered
-    // with the sensor manager.
-    private boolean mProximitySensorEnabled;
-
-    // The debounced proximity sensor state.
-    private int mProximity = PROXIMITY_UNKNOWN;
-
-    // The raw non-debounced proximity sensor state.
-    private int mPendingProximity = PROXIMITY_UNKNOWN;
-    private long mPendingProximityDebounceTime = -1; // -1 if fully debounced
-
-    // True if the screen was turned off because of the proximity sensor.
-    // When the screen turns on again, we report user activity to the power manager.
-    private boolean mScreenOffBecauseOfProximity;
-
-    // True if the screen on is being blocked.
-    private boolean mScreenOnWasBlocked;
-
-    // The elapsed real time when the screen on was blocked.
-    private long mScreenOnBlockStartRealTime;
-
-    // True if the screen auto-brightness value is actually being used to
-    // set the display brightness.
-    private boolean mUsingScreenAutoBrightness;
-
-    // The controller for the automatic brightness level.
-    private AutomaticBrightnessController mAutomaticBrightnessController;
-
-    // Animators.
-    private ObjectAnimator mElectronBeamOnAnimator;
-    private ObjectAnimator mElectronBeamOffAnimator;
-    private RampAnimator<DisplayPowerState> mScreenBrightnessRampAnimator;
-
-    /**
-     * Creates the display power controller.
-     */
-    public DisplayPowerController(Looper looper, Context context, Notifier notifier,
-            LightsManager lights, TwilightManager twilight, SensorManager sensorManager,
-            SuspendBlocker displaySuspendBlocker, DisplayBlanker displayBlanker,
-            Callbacks callbacks, Handler callbackHandler) {
-        mHandler = new DisplayControllerHandler(looper);
-        mNotifier = notifier;
-        mDisplaySuspendBlocker = displaySuspendBlocker;
-        mDisplayBlanker = displayBlanker;
-        mCallbacks = callbacks;
-        mCallbackHandler = callbackHandler;
-
-        mLights = lights;
-        mSensorManager = sensorManager;
-
-        final Resources resources = context.getResources();
-
-        mScreenBrightnessDozeConfig = clampAbsoluteBrightness(resources.getInteger(
-                com.android.internal.R.integer.config_screenBrightnessDoze));
-
-        mScreenBrightnessDimConfig = clampAbsoluteBrightness(resources.getInteger(
-                com.android.internal.R.integer.config_screenBrightnessDim));
-
-        int screenBrightnessRangeMinimum = clampAbsoluteBrightness(Math.min(resources.getInteger(
-                com.android.internal.R.integer.config_screenBrightnessSettingMinimum),
-                mScreenBrightnessDimConfig));
-
-        mScreenBrightnessRangeMaximum = PowerManager.BRIGHTNESS_ON;
-
-        mUseSoftwareAutoBrightnessConfig = resources.getBoolean(
-                com.android.internal.R.bool.config_automatic_brightness_available);
-        if (mUseSoftwareAutoBrightnessConfig) {
-            int[] lux = resources.getIntArray(
-                    com.android.internal.R.array.config_autoBrightnessLevels);
-            int[] screenBrightness = resources.getIntArray(
-                    com.android.internal.R.array.config_autoBrightnessLcdBacklightValues);
-            int lightSensorWarmUpTimeConfig = resources.getInteger(
-                    com.android.internal.R.integer.config_lightSensorWarmupTime);
-
-            Spline screenAutoBrightnessSpline = createAutoBrightnessSpline(lux, screenBrightness);
-            if (screenAutoBrightnessSpline == null) {
-                Slog.e(TAG, "Error in config.xml.  config_autoBrightnessLcdBacklightValues "
-                        + "(size " + screenBrightness.length + ") "
-                        + "must be monotic and have exactly one more entry than "
-                        + "config_autoBrightnessLevels (size " + lux.length + ") "
-                        + "which must be strictly increasing.  "
-                        + "Auto-brightness will be disabled.");
-                mUseSoftwareAutoBrightnessConfig = false;
-            } else {
-                if (screenBrightness[0] < screenBrightnessRangeMinimum) {
-                    screenBrightnessRangeMinimum = clampAbsoluteBrightness(screenBrightness[0]);
-                }
-                mAutomaticBrightnessController = new AutomaticBrightnessController(this, looper,
-                        twilight, sensorManager, screenAutoBrightnessSpline,
-                        lightSensorWarmUpTimeConfig, screenBrightnessRangeMinimum,
-                        mScreenBrightnessRangeMaximum);
-            }
-        }
-
-        mScreenBrightnessRangeMinimum = screenBrightnessRangeMinimum;
-
-        mElectronBeamFadesConfig = resources.getBoolean(
-                com.android.internal.R.bool.config_animateScreenLights);
-
-        if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
-            mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
-            if (mProximitySensor != null) {
-                mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
-                        TYPICAL_PROXIMITY_THRESHOLD);
-            }
-        }
-
-    }
-
-    /**
-     * Returns true if the proximity sensor screen-off function is available.
-     */
-    public boolean isProximitySensorAvailable() {
-        return mProximitySensor != null;
-    }
-
-    /**
-     * Requests a new power state.
-     * The controller makes a copy of the provided object and then
-     * begins adjusting the power state to match what was requested.
-     *
-     * @param request The requested power state.
-     * @param waitForNegativeProximity If true, issues a request to wait for
-     * negative proximity before turning the screen back on, assuming the screen
-     * was turned off by the proximity sensor.
-     * @return True if display is ready, false if there are important changes that must
-     * be made asynchronously (such as turning the screen on), in which case the caller
-     * should grab a wake lock, watch for {@link Callbacks#onStateChanged()} then try
-     * the request again later until the state converges.
-     */
-    public boolean requestPowerState(DisplayPowerRequest request,
-            boolean waitForNegativeProximity) {
-        if (DEBUG) {
-            Slog.d(TAG, "requestPowerState: "
-                    + request + ", waitForNegativeProximity=" + waitForNegativeProximity);
-        }
-
-        synchronized (mLock) {
-            boolean changed = false;
-
-            if (waitForNegativeProximity
-                    && !mPendingWaitForNegativeProximityLocked) {
-                mPendingWaitForNegativeProximityLocked = true;
-                changed = true;
-            }
-
-            if (mPendingRequestLocked == null) {
-                mPendingRequestLocked = new DisplayPowerRequest(request);
-                changed = true;
-            } else if (!mPendingRequestLocked.equals(request)) {
-                mPendingRequestLocked.copyFrom(request);
-                changed = true;
-            }
-
-            if (changed) {
-                mDisplayReadyLocked = false;
-            }
-
-            if (changed && !mPendingRequestChangedLocked) {
-                mPendingRequestChangedLocked = true;
-                sendUpdatePowerStateLocked();
-            }
-
-            return mDisplayReadyLocked;
-        }
-    }
-
-    private void sendUpdatePowerState() {
-        synchronized (mLock) {
-            sendUpdatePowerStateLocked();
-        }
-    }
-
-    private void sendUpdatePowerStateLocked() {
-        if (!mPendingUpdatePowerStateLocked) {
-            mPendingUpdatePowerStateLocked = true;
-            Message msg = mHandler.obtainMessage(MSG_UPDATE_POWER_STATE);
-            msg.setAsynchronous(true);
-            mHandler.sendMessage(msg);
-        }
-    }
-
-    private void initialize() {
-        mPowerState = new DisplayPowerState(new ElectronBeam(), mDisplayBlanker,
-                mLights.getLight(LightsManager.LIGHT_ID_BACKLIGHT));
-
-        mElectronBeamOnAnimator = ObjectAnimator.ofFloat(
-                mPowerState, DisplayPowerState.ELECTRON_BEAM_LEVEL, 0.0f, 1.0f);
-        mElectronBeamOnAnimator.setDuration(ELECTRON_BEAM_ON_ANIMATION_DURATION_MILLIS);
-        mElectronBeamOnAnimator.addListener(mAnimatorListener);
-
-        mElectronBeamOffAnimator = ObjectAnimator.ofFloat(
-                mPowerState, DisplayPowerState.ELECTRON_BEAM_LEVEL, 1.0f, 0.0f);
-        mElectronBeamOffAnimator.setDuration(ELECTRON_BEAM_OFF_ANIMATION_DURATION_MILLIS);
-        mElectronBeamOffAnimator.addListener(mAnimatorListener);
-
-        mScreenBrightnessRampAnimator = new RampAnimator<DisplayPowerState>(
-                mPowerState, DisplayPowerState.SCREEN_BRIGHTNESS);
-
-        // Initialize screen on state.
-        if (mPowerState.isScreenOn()) {
-            mNotifier.onScreenOn();
-        } else {
-            mNotifier.onScreenOff();
-        }
-        mNotifier.onScreenBrightness(mPowerState.getScreenBrightness());
-    }
-
-    private final Animator.AnimatorListener mAnimatorListener = new Animator.AnimatorListener() {
-        @Override
-        public void onAnimationStart(Animator animation) {
-        }
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            sendUpdatePowerState();
-        }
-        @Override
-        public void onAnimationRepeat(Animator animation) {
-        }
-        @Override
-        public void onAnimationCancel(Animator animation) {
-        }
-    };
-
-    private void updatePowerState() {
-        // Update the power state request.
-        final boolean mustNotify;
-        boolean mustInitialize = false;
-        boolean wasDimOrDoze = false;
-
-        synchronized (mLock) {
-            mPendingUpdatePowerStateLocked = false;
-            if (mPendingRequestLocked == null) {
-                return; // wait until first actual power request
-            }
-
-            if (mPowerRequest == null) {
-                mPowerRequest = new DisplayPowerRequest(mPendingRequestLocked);
-                mWaitingForNegativeProximity = mPendingWaitForNegativeProximityLocked;
-                mPendingWaitForNegativeProximityLocked = false;
-                mPendingRequestChangedLocked = false;
-                mustInitialize = true;
-            } else if (mPendingRequestChangedLocked) {
-                wasDimOrDoze = (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DIM
-                        || mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DOZE);
-                mPowerRequest.copyFrom(mPendingRequestLocked);
-                mWaitingForNegativeProximity |= mPendingWaitForNegativeProximityLocked;
-                mPendingWaitForNegativeProximityLocked = false;
-                mPendingRequestChangedLocked = false;
-                mDisplayReadyLocked = false;
-            }
-
-            mustNotify = !mDisplayReadyLocked;
-        }
-
-        // Initialize things the first time the power state is changed.
-        if (mustInitialize) {
-            initialize();
-        }
-
-        // Apply the proximity sensor.
-        if (mProximitySensor != null) {
-            if (mPowerRequest.useProximitySensor
-                    && mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
-                setProximitySensorEnabled(true);
-                if (!mScreenOffBecauseOfProximity
-                        && mProximity == PROXIMITY_POSITIVE) {
-                    mScreenOffBecauseOfProximity = true;
-                    sendOnProximityPositiveWithWakelock();
-                }
-            } else if (mWaitingForNegativeProximity
-                    && mScreenOffBecauseOfProximity
-                    && mProximity == PROXIMITY_POSITIVE
-                    && mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
-                setProximitySensorEnabled(true);
-            } else {
-                setProximitySensorEnabled(false);
-                mWaitingForNegativeProximity = false;
-            }
-            if (mScreenOffBecauseOfProximity
-                    && mProximity != PROXIMITY_POSITIVE) {
-                mScreenOffBecauseOfProximity = false;
-                sendOnProximityNegativeWithWakelock();
-            }
-        } else {
-            mWaitingForNegativeProximity = false;
-        }
-
-        // Turn on the light sensor if needed.
-        if (mAutomaticBrightnessController != null) {
-            mAutomaticBrightnessController.updatePowerState(mPowerRequest);
-        }
-
-        // Set the screen brightness.
-        if (mPowerRequest.wantScreenOnAny()) {
-            int target;
-            boolean slow;
-            int screenAutoBrightness = mAutomaticBrightnessController != null ?
-                    mAutomaticBrightnessController.getAutomaticScreenBrightness() : -1;
-            if (screenAutoBrightness >= 0 && mPowerRequest.useAutoBrightness) {
-                // Use current auto-brightness value.
-                target = screenAutoBrightness;
-                slow = mUsingScreenAutoBrightness;
-                mUsingScreenAutoBrightness = true;
-            } else {
-                // Light sensor is disabled or not ready yet.
-                // Use the current brightness setting from the request, which is expected
-                // provide a nominal default value for the case where auto-brightness
-                // is not ready yet.
-                target = mPowerRequest.screenBrightness;
-                slow = false;
-                mUsingScreenAutoBrightness = false;
-            }
-            if (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DOZE) {
-                // Dim quickly to the doze state.
-                target = mScreenBrightnessDozeConfig;
-                slow = false;
-            } else if (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_DIM) {
-                // Dim quickly by at least some minimum amount.
-                target = Math.min(target - SCREEN_DIM_MINIMUM_REDUCTION,
-                        mScreenBrightnessDimConfig);
-                slow = false;
-            } else if (wasDimOrDoze) {
-                // Brighten quickly.
-                slow = false;
-            }
-            animateScreenBrightness(clampScreenBrightness(target),
-                    slow ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
-        } else {
-            // Screen is off.  Don't bother changing the brightness.
-            mUsingScreenAutoBrightness = false;
-        }
-
-        // Animate the screen on or off unless blocked.
-        if (mScreenOffBecauseOfProximity) {
-            // Screen off due to proximity.
-            setScreenOn(false);
-            unblockScreenOn();
-        } else if (mPowerRequest.wantScreenOnAny()) {
-            // Want screen on.
-            // Wait for previous off animation to complete beforehand.
-            // It is relatively short but if we cancel it and switch to the
-            // on animation immediately then the results are pretty ugly.
-            if (!mElectronBeamOffAnimator.isStarted()) {
-                // Turn the screen on.  The contents of the screen may not yet
-                // be visible if the electron beam has not been dismissed because
-                // its last frame of animation is solid black.
-                setScreenOn(true);
-
-                if (mPowerRequest.blockScreenOn
-                        && mPowerState.getElectronBeamLevel() == 0.0f) {
-                    blockScreenOn();
-                } else {
-                    unblockScreenOn();
-                    if (USE_ELECTRON_BEAM_ON_ANIMATION) {
-                        if (!mElectronBeamOnAnimator.isStarted()) {
-                            if (mPowerState.getElectronBeamLevel() == 1.0f) {
-                                mPowerState.dismissElectronBeam();
-                            } else if (mPowerState.prepareElectronBeam(
-                                    mElectronBeamFadesConfig ?
-                                            ElectronBeam.MODE_FADE :
-                                                    ElectronBeam.MODE_WARM_UP)) {
-                                mElectronBeamOnAnimator.start();
-                            } else {
-                                mElectronBeamOnAnimator.end();
-                            }
-                        }
-                    } else {
-                        mPowerState.setElectronBeamLevel(1.0f);
-                        mPowerState.dismissElectronBeam();
-                    }
-                }
-            }
-        } else {
-            // Want screen off.
-            // Wait for previous on animation to complete beforehand.
-            unblockScreenOn();
-            if (!mElectronBeamOnAnimator.isStarted()) {
-                if (!mElectronBeamOffAnimator.isStarted()) {
-                    if (mPowerState.getElectronBeamLevel() == 0.0f) {
-                        setScreenOn(false);
-                    } else if (mPowerState.prepareElectronBeam(
-                            mElectronBeamFadesConfig ?
-                                    ElectronBeam.MODE_FADE :
-                                            ElectronBeam.MODE_COOL_DOWN)
-                            && mPowerState.isScreenOn()) {
-                        mElectronBeamOffAnimator.start();
-                    } else {
-                        mElectronBeamOffAnimator.end();
-                    }
-                }
-            }
-        }
-
-        // Report whether the display is ready for use.
-        // We mostly care about the screen state here, ignoring brightness changes
-        // which will be handled asynchronously.
-        if (mustNotify
-                && !mScreenOnWasBlocked
-                && !mElectronBeamOnAnimator.isStarted()
-                && !mElectronBeamOffAnimator.isStarted()
-                && mPowerState.waitUntilClean(mCleanListener)) {
-            synchronized (mLock) {
-                if (!mPendingRequestChangedLocked) {
-                    mDisplayReadyLocked = true;
-
-                    if (DEBUG) {
-                        Slog.d(TAG, "Display ready!");
-                    }
-                }
-            }
-            sendOnStateChangedWithWakelock();
-        }
-    }
-
-    @Override
-    public void updateBrightness() {
-        sendUpdatePowerState();
-    }
-
-    private void blockScreenOn() {
-        if (!mScreenOnWasBlocked) {
-            mScreenOnWasBlocked = true;
-            if (DEBUG) {
-                Slog.d(TAG, "Blocked screen on.");
-                mScreenOnBlockStartRealTime = SystemClock.elapsedRealtime();
-            }
-        }
-    }
-
-    private void unblockScreenOn() {
-        if (mScreenOnWasBlocked) {
-            mScreenOnWasBlocked = false;
-            long delay = SystemClock.elapsedRealtime() - mScreenOnBlockStartRealTime;
-            if (delay > 1000 || DEBUG) {
-                Slog.d(TAG, "Unblocked screen on after " + delay + " ms");
-            }
-        }
-    }
-
-    private void setScreenOn(boolean on) {
-        if (mPowerState.isScreenOn() != on) {
-            mPowerState.setScreenOn(on);
-            if (on) {
-                mNotifier.onScreenOn();
-            } else {
-                mNotifier.onScreenOff();
-            }
-        }
-    }
-
-    private int clampScreenBrightness(int value) {
-        return MathUtils.constrain(
-                value, mScreenBrightnessRangeMinimum, mScreenBrightnessRangeMaximum);
-    }
-
-    private void animateScreenBrightness(int target, int rate) {
-        if (mScreenBrightnessRampAnimator.animateTo(target, rate)) {
-            mNotifier.onScreenBrightness(target);
-        }
-    }
-
-    private final Runnable mCleanListener = new Runnable() {
-        @Override
-        public void run() {
-            sendUpdatePowerState();
-        }
-    };
-
-    private void setProximitySensorEnabled(boolean enable) {
-        if (enable) {
-            if (!mProximitySensorEnabled) {
-                // Register the listener.
-                // Proximity sensor state already cleared initially.
-                mProximitySensorEnabled = true;
-                mSensorManager.registerListener(mProximitySensorListener, mProximitySensor,
-                        SensorManager.SENSOR_DELAY_NORMAL, mHandler);
-            }
-        } else {
-            if (mProximitySensorEnabled) {
-                // Unregister the listener.
-                // Clear the proximity sensor state for next time.
-                mProximitySensorEnabled = false;
-                mProximity = PROXIMITY_UNKNOWN;
-                mPendingProximity = PROXIMITY_UNKNOWN;
-                mHandler.removeMessages(MSG_PROXIMITY_SENSOR_DEBOUNCED);
-                mSensorManager.unregisterListener(mProximitySensorListener);
-                clearPendingProximityDebounceTime(); // release wake lock (must be last)
-            }
-        }
-    }
-
-    private void handleProximitySensorEvent(long time, boolean positive) {
-        if (mProximitySensorEnabled) {
-            if (mPendingProximity == PROXIMITY_NEGATIVE && !positive) {
-                return; // no change
-            }
-            if (mPendingProximity == PROXIMITY_POSITIVE && positive) {
-                return; // no change
-            }
-
-            // Only accept a proximity sensor reading if it remains
-            // stable for the entire debounce delay.  We hold a wake lock while
-            // debouncing the sensor.
-            mHandler.removeMessages(MSG_PROXIMITY_SENSOR_DEBOUNCED);
-            if (positive) {
-                mPendingProximity = PROXIMITY_POSITIVE;
-                setPendingProximityDebounceTime(
-                        time + PROXIMITY_SENSOR_POSITIVE_DEBOUNCE_DELAY); // acquire wake lock
-            } else {
-                mPendingProximity = PROXIMITY_NEGATIVE;
-                setPendingProximityDebounceTime(
-                        time + PROXIMITY_SENSOR_NEGATIVE_DEBOUNCE_DELAY); // acquire wake lock
-            }
-
-            // Debounce the new sensor reading.
-            debounceProximitySensor();
-        }
-    }
-
-    private void debounceProximitySensor() {
-        if (mProximitySensorEnabled
-                && mPendingProximity != PROXIMITY_UNKNOWN
-                && mPendingProximityDebounceTime >= 0) {
-            final long now = SystemClock.uptimeMillis();
-            if (mPendingProximityDebounceTime <= now) {
-                // Sensor reading accepted.  Apply the change then release the wake lock.
-                mProximity = mPendingProximity;
-                updatePowerState();
-                clearPendingProximityDebounceTime(); // release wake lock (must be last)
-            } else {
-                // Need to wait a little longer.
-                // Debounce again later.  We continue holding a wake lock while waiting.
-                Message msg = mHandler.obtainMessage(MSG_PROXIMITY_SENSOR_DEBOUNCED);
-                msg.setAsynchronous(true);
-                mHandler.sendMessageAtTime(msg, mPendingProximityDebounceTime);
-            }
-        }
-    }
-
-    private void clearPendingProximityDebounceTime() {
-        if (mPendingProximityDebounceTime >= 0) {
-            mPendingProximityDebounceTime = -1;
-            mDisplaySuspendBlocker.release(); // release wake lock
-        }
-    }
-
-    private void setPendingProximityDebounceTime(long debounceTime) {
-        if (mPendingProximityDebounceTime < 0) {
-            mDisplaySuspendBlocker.acquire(); // acquire wake lock
-        }
-        mPendingProximityDebounceTime = debounceTime;
-    }
-
-    private void sendOnStateChangedWithWakelock() {
-        mDisplaySuspendBlocker.acquire();
-        mCallbackHandler.post(mOnStateChangedRunnable);
-    }
-
-    private final Runnable mOnStateChangedRunnable = new Runnable() {
-        @Override
-        public void run() {
-            mCallbacks.onStateChanged();
-            mDisplaySuspendBlocker.release();
-        }
-    };
-
-    private void sendOnProximityPositiveWithWakelock() {
-        mDisplaySuspendBlocker.acquire();
-        mCallbackHandler.post(mOnProximityPositiveRunnable);
-    }
-
-    private final Runnable mOnProximityPositiveRunnable = new Runnable() {
-        @Override
-        public void run() {
-            mCallbacks.onProximityPositive();
-            mDisplaySuspendBlocker.release();
-        }
-    };
-
-    private void sendOnProximityNegativeWithWakelock() {
-        mDisplaySuspendBlocker.acquire();
-        mCallbackHandler.post(mOnProximityNegativeRunnable);
-    }
-
-    private final Runnable mOnProximityNegativeRunnable = new Runnable() {
-        @Override
-        public void run() {
-            mCallbacks.onProximityNegative();
-            mDisplaySuspendBlocker.release();
-        }
-    };
-
-    public void dump(final PrintWriter pw) {
-        synchronized (mLock) {
-            pw.println();
-            pw.println("Display Controller Locked State:");
-            pw.println("  mDisplayReadyLocked=" + mDisplayReadyLocked);
-            pw.println("  mPendingRequestLocked=" + mPendingRequestLocked);
-            pw.println("  mPendingRequestChangedLocked=" + mPendingRequestChangedLocked);
-            pw.println("  mPendingWaitForNegativeProximityLocked="
-                    + mPendingWaitForNegativeProximityLocked);
-            pw.println("  mPendingUpdatePowerStateLocked=" + mPendingUpdatePowerStateLocked);
-        }
-
-        pw.println();
-        pw.println("Display Controller Configuration:");
-        pw.println("  mScreenBrightnessDozeConfig=" + mScreenBrightnessDozeConfig);
-        pw.println("  mScreenBrightnessDimConfig=" + mScreenBrightnessDimConfig);
-        pw.println("  mScreenBrightnessRangeMinimum=" + mScreenBrightnessRangeMinimum);
-        pw.println("  mScreenBrightnessRangeMaximum=" + mScreenBrightnessRangeMaximum);
-        pw.println("  mUseSoftwareAutoBrightnessConfig="
-                + mUseSoftwareAutoBrightnessConfig);
-
-        mHandler.runWithScissors(new Runnable() {
-            @Override
-            public void run() {
-                dumpLocal(pw);
-            }
-        }, 1000);
-    }
-
-    private void dumpLocal(PrintWriter pw) {
-        pw.println();
-        pw.println("Display Controller Thread State:");
-        pw.println("  mPowerRequest=" + mPowerRequest);
-        pw.println("  mWaitingForNegativeProximity=" + mWaitingForNegativeProximity);
-
-        pw.println("  mProximitySensor=" + mProximitySensor);
-        pw.println("  mProximitySensorEnabled=" + mProximitySensorEnabled);
-        pw.println("  mProximityThreshold=" + mProximityThreshold);
-        pw.println("  mProximity=" + proximityToString(mProximity));
-        pw.println("  mPendingProximity=" + proximityToString(mPendingProximity));
-        pw.println("  mPendingProximityDebounceTime="
-                + TimeUtils.formatUptime(mPendingProximityDebounceTime));
-        pw.println("  mScreenOffBecauseOfProximity=" + mScreenOffBecauseOfProximity);
-        pw.println("  mUsingScreenAutoBrightness=" + mUsingScreenAutoBrightness);
-
-        if (mElectronBeamOnAnimator != null) {
-            pw.println("  mElectronBeamOnAnimator.isStarted()=" +
-                    mElectronBeamOnAnimator.isStarted());
-        }
-        if (mElectronBeamOffAnimator != null) {
-            pw.println("  mElectronBeamOffAnimator.isStarted()=" +
-                    mElectronBeamOffAnimator.isStarted());
-        }
-
-        if (mPowerState != null) {
-            mPowerState.dump(pw);
-        }
-
-        if (mAutomaticBrightnessController != null) {
-            mAutomaticBrightnessController.dump(pw);
-        }
-
-    }
-
-    private static String proximityToString(int state) {
-        switch (state) {
-            case PROXIMITY_UNKNOWN:
-                return "Unknown";
-            case PROXIMITY_NEGATIVE:
-                return "Negative";
-            case PROXIMITY_POSITIVE:
-                return "Positive";
-            default:
-                return Integer.toString(state);
-        }
-    }
-
-    private static Spline createAutoBrightnessSpline(int[] lux, int[] brightness) {
-        try {
-            final int n = brightness.length;
-            float[] x = new float[n];
-            float[] y = new float[n];
-            y[0] = normalizeAbsoluteBrightness(brightness[0]);
-            for (int i = 1; i < n; i++) {
-                x[i] = lux[i - 1];
-                y[i] = normalizeAbsoluteBrightness(brightness[i]);
-            }
-
-            Spline spline = Spline.createMonotoneCubicSpline(x, y);
-            if (DEBUG) {
-                Slog.d(TAG, "Auto-brightness spline: " + spline);
-                for (float v = 1f; v < lux[lux.length - 1] * 1.25f; v *= 1.25f) {
-                    Slog.d(TAG, String.format("  %7.1f: %7.1f", v, spline.interpolate(v)));
-                }
-            }
-            return spline;
-        } catch (IllegalArgumentException ex) {
-            Slog.e(TAG, "Could not create auto-brightness spline.", ex);
-            return null;
-        }
-    }
-
-    private static float normalizeAbsoluteBrightness(int value) {
-        return (float)clampAbsoluteBrightness(value) / PowerManager.BRIGHTNESS_ON;
-    }
-
-    private static int clampAbsoluteBrightness(int value) {
-        return MathUtils.constrain(value, PowerManager.BRIGHTNESS_OFF, PowerManager.BRIGHTNESS_ON);
-    }
-
-    /**
-     * Asynchronous callbacks from the power controller to the power manager service.
-     */
-    public interface Callbacks {
-        void onStateChanged();
-        void onProximityPositive();
-        void onProximityNegative();
-    }
-
-    private final class DisplayControllerHandler extends Handler {
-        public DisplayControllerHandler(Looper looper) {
-            super(looper, null, true /*async*/);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_UPDATE_POWER_STATE:
-                    updatePowerState();
-                    break;
-
-                case MSG_PROXIMITY_SENSOR_DEBOUNCED:
-                    debounceProximitySensor();
-                    break;
-            }
-        }
-    }
-
-    private final SensorEventListener mProximitySensorListener = new SensorEventListener() {
-        @Override
-        public void onSensorChanged(SensorEvent event) {
-            if (mProximitySensorEnabled) {
-                final long time = SystemClock.uptimeMillis();
-                final float distance = event.values[0];
-                boolean positive = distance >= 0.0f && distance < mProximityThreshold;
-                handleProximitySensorEvent(time, positive);
-            }
-        }
-
-        @Override
-        public void onAccuracyChanged(Sensor sensor, int accuracy) {
-            // Not used.
-        }
-    };
-}
diff --git a/services/core/java/com/android/server/power/DisplayPowerRequest.java b/services/core/java/com/android/server/power/DisplayPowerRequest.java
deleted file mode 100644
index c5e46cb..0000000
--- a/services/core/java/com/android/server/power/DisplayPowerRequest.java
+++ /dev/null
@@ -1,144 +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.
- */
-
-package com.android.server.power;
-
-import android.os.PowerManager;
-
-/**
- * Describes the requested power state of the display.
- *
- * This object is intended to describe the general characteristics of the
- * power state, such as whether the screen should be on or off and the current
- * brightness controls leaving the {@link DisplayPowerController} to manage the
- * details of how the transitions between states should occur.  The goal is for
- * the {@link PowerManagerService} to focus on the global power state and not
- * have to micro-manage screen off animations, auto-brightness and other effects.
- */
-final class DisplayPowerRequest {
-    public static final int SCREEN_STATE_OFF = 0;
-    public static final int SCREEN_STATE_DOZE = 1;
-    public static final int SCREEN_STATE_DIM = 2;
-    public static final int SCREEN_STATE_BRIGHT = 3;
-
-    // The requested minimum screen power state: off, doze, dim or bright.
-    public int screenState;
-
-    // If true, the proximity sensor overrides the screen state when an object is
-    // nearby, turning it off temporarily until the object is moved away.
-    public boolean useProximitySensor;
-
-    // The desired screen brightness in the range 0 (minimum / off) to 255 (brightest).
-    // The display power controller may choose to clamp the brightness.
-    // When auto-brightness is enabled, this field should specify a nominal default
-    // value to use while waiting for the light sensor to report enough data.
-    public int screenBrightness;
-
-    // The screen auto-brightness adjustment factor in the range -1 (dimmer) to 1 (brighter).
-    public float screenAutoBrightnessAdjustment;
-
-    // If true, enables automatic brightness control.
-    public boolean useAutoBrightness;
-
-    // If true, prevents the screen from completely turning on if it is currently off.
-    // The display does not enter a "ready" state if this flag is true and screen on is
-    // blocked.  The window manager policy blocks screen on while it prepares the keyguard to
-    // prevent the user from seeing intermediate updates.
-    //
-    // Technically, we may not block the screen itself from turning on (because that introduces
-    // extra unnecessary latency) but we do prevent content on screen from becoming
-    // visible to the user.
-    public boolean blockScreenOn;
-
-    public DisplayPowerRequest() {
-        screenState = SCREEN_STATE_BRIGHT;
-        useProximitySensor = false;
-        screenBrightness = PowerManager.BRIGHTNESS_ON;
-        screenAutoBrightnessAdjustment = 0.0f;
-        useAutoBrightness = false;
-        blockScreenOn = false;
-    }
-
-    public DisplayPowerRequest(DisplayPowerRequest other) {
-        copyFrom(other);
-    }
-
-    // Returns true if we want the screen on in any mode, including doze.
-    public boolean wantScreenOnAny() {
-        return screenState != SCREEN_STATE_OFF;
-    }
-
-    // Returns true if we want the screen on in a normal mode, excluding doze.
-    // This is usually what we want to tell the rest of the system.  For compatibility
-    // reasons, we pretend the screen is off when dozing.
-    public boolean wantScreenOnNormal() {
-        return screenState == SCREEN_STATE_DIM || screenState == SCREEN_STATE_BRIGHT;
-    }
-
-    public boolean wantLightSensorEnabled() {
-        // Specifically, we don't want the light sensor while dozing.
-        return useAutoBrightness && wantScreenOnNormal();
-    }
-
-    public void copyFrom(DisplayPowerRequest other) {
-        screenState = other.screenState;
-        useProximitySensor = other.useProximitySensor;
-        screenBrightness = other.screenBrightness;
-        screenAutoBrightnessAdjustment = other.screenAutoBrightnessAdjustment;
-        useAutoBrightness = other.useAutoBrightness;
-        blockScreenOn = other.blockScreenOn;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return o instanceof DisplayPowerRequest
-                && equals((DisplayPowerRequest)o);
-    }
-
-    public boolean equals(DisplayPowerRequest other) {
-        return other != null
-                && screenState == other.screenState
-                && useProximitySensor == other.useProximitySensor
-                && screenBrightness == other.screenBrightness
-                && screenAutoBrightnessAdjustment == other.screenAutoBrightnessAdjustment
-                && useAutoBrightness == other.useAutoBrightness
-                && blockScreenOn == other.blockScreenOn;
-    }
-
-    @Override
-    public int hashCode() {
-        return 0; // don't care
-    }
-
-    @Override
-    public String toString() {
-        return "screenState=" + screenState
-                + ", useProximitySensor=" + useProximitySensor
-                + ", screenBrightness=" + screenBrightness
-                + ", screenAutoBrightnessAdjustment=" + screenAutoBrightnessAdjustment
-                + ", useAutoBrightness=" + useAutoBrightness
-                + ", blockScreenOn=" + blockScreenOn;
-    }
-
-    public static boolean wantScreenOn(int state) {
-        switch(state) {
-            case SCREEN_STATE_DIM:
-            case SCREEN_STATE_BRIGHT:
-                return true;
-        }
-        return false;
-    }
-}
diff --git a/services/core/java/com/android/server/power/DisplayPowerState.java b/services/core/java/com/android/server/power/DisplayPowerState.java
deleted file mode 100644
index 8e331ad..0000000
--- a/services/core/java/com/android/server/power/DisplayPowerState.java
+++ /dev/null
@@ -1,421 +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.
- */
-
-package com.android.server.power;
-
-import com.android.server.lights.Light;
-
-import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.PowerManager;
-import android.util.FloatProperty;
-import android.util.IntProperty;
-import android.util.Slog;
-import android.view.Choreographer;
-
-import java.io.PrintWriter;
-
-/**
- * Controls the display power state.
- * <p>
- * This component is similar in nature to a {@link View} except that it describes
- * the properties of a display.  When properties are changed, the component
- * invalidates itself and posts a callback to apply the changes in a consistent order.
- * This mechanism enables multiple properties of the display power state to be animated
- * together smoothly by the animation framework.  Some of the work to blank or unblank
- * the display is done on a separate thread to avoid blocking the looper.
- * </p><p>
- * This component must only be created or accessed by the {@link Looper} thread
- * that belongs to the {@link DisplayPowerController}.
- * </p><p>
- * We don't need to worry about holding a suspend blocker here because the
- * {@link PowerManagerService} does that for us whenever there is a change
- * in progress.
- * </p>
- */
-final class DisplayPowerState {
-    private static final String TAG = "DisplayPowerState";
-
-    private static boolean DEBUG = false;
-
-    private final Handler mHandler;
-    private final Choreographer mChoreographer;
-    private final ElectronBeam mElectronBeam;
-    private final DisplayBlanker mDisplayBlanker;
-    private final Light mBacklight;
-    private final PhotonicModulator mPhotonicModulator;
-
-    private boolean mScreenOn;
-    private int mScreenBrightness;
-    private boolean mScreenReady;
-    private boolean mScreenUpdatePending;
-
-    private boolean mElectronBeamPrepared;
-    private float mElectronBeamLevel;
-    private boolean mElectronBeamReady;
-    private boolean mElectronBeamDrawPending;
-
-    private Runnable mCleanListener;
-
-    public DisplayPowerState(ElectronBeam electronBean,
-            DisplayBlanker displayBlanker, Light backlight) {
-        mHandler = new Handler(true /*async*/);
-        mChoreographer = Choreographer.getInstance();
-        mElectronBeam = electronBean;
-        mDisplayBlanker = displayBlanker;
-        mBacklight = backlight;
-        mPhotonicModulator = new PhotonicModulator();
-
-        // At boot time, we know that the screen is on and the electron beam
-        // animation is not playing.  We don't know the screen's brightness though,
-        // so prepare to set it to a known state when the state is next applied.
-        // Although we set the brightness to full on here, the display power controller
-        // will reset the brightness to a new level immediately before the changes
-        // actually have a chance to be applied.
-        mScreenOn = true;
-        mScreenBrightness = PowerManager.BRIGHTNESS_ON;
-        scheduleScreenUpdate();
-
-        mElectronBeamPrepared = false;
-        mElectronBeamLevel = 1.0f;
-        mElectronBeamReady = true;
-    }
-
-    public static final FloatProperty<DisplayPowerState> ELECTRON_BEAM_LEVEL =
-            new FloatProperty<DisplayPowerState>("electronBeamLevel") {
-        @Override
-        public void setValue(DisplayPowerState object, float value) {
-            object.setElectronBeamLevel(value);
-        }
-
-        @Override
-        public Float get(DisplayPowerState object) {
-            return object.getElectronBeamLevel();
-        }
-    };
-
-    public static final IntProperty<DisplayPowerState> SCREEN_BRIGHTNESS =
-            new IntProperty<DisplayPowerState>("screenBrightness") {
-        @Override
-        public void setValue(DisplayPowerState object, int value) {
-            object.setScreenBrightness(value);
-        }
-
-        @Override
-        public Integer get(DisplayPowerState object) {
-            return object.getScreenBrightness();
-        }
-    };
-
-    /**
-     * Sets whether the screen is on or off.
-     */
-    public void setScreenOn(boolean on) {
-        if (mScreenOn != on) {
-            if (DEBUG) {
-                Slog.d(TAG, "setScreenOn: on=" + on);
-            }
-
-            mScreenOn = on;
-            mScreenReady = false;
-            scheduleScreenUpdate();
-        }
-    }
-
-    /**
-     * Returns true if the screen is on.
-     */
-    public boolean isScreenOn() {
-        return mScreenOn;
-    }
-
-    /**
-     * Sets the display brightness.
-     *
-     * @param brightness The brightness, ranges from 0 (minimum / off) to 255 (brightest).
-     */
-    public void setScreenBrightness(int brightness) {
-        if (mScreenBrightness != brightness) {
-            if (DEBUG) {
-                Slog.d(TAG, "setScreenBrightness: brightness=" + brightness);
-            }
-
-            mScreenBrightness = brightness;
-            if (mScreenOn) {
-                mScreenReady = false;
-                scheduleScreenUpdate();
-            }
-        }
-    }
-
-    /**
-     * Gets the screen brightness.
-     */
-    public int getScreenBrightness() {
-        return mScreenBrightness;
-    }
-
-    /**
-     * Prepares the electron beam to turn on or off.
-     * This method should be called before starting an animation because it
-     * can take a fair amount of time to prepare the electron beam surface.
-     *
-     * @param mode The electron beam animation mode to prepare.
-     * @return True if the electron beam was prepared.
-     */
-    public boolean prepareElectronBeam(int mode) {
-        if (!mElectronBeam.prepare(mode)) {
-            mElectronBeamPrepared = false;
-            mElectronBeamReady = true;
-            return false;
-        }
-
-        mElectronBeamPrepared = true;
-        mElectronBeamReady = false;
-        scheduleElectronBeamDraw();
-        return true;
-    }
-
-    /**
-     * Dismisses the electron beam surface.
-     */
-    public void dismissElectronBeam() {
-        mElectronBeam.dismiss();
-        mElectronBeamPrepared = false;
-        mElectronBeamReady = true;
-    }
-
-    /**
-     * Sets the level of the electron beam steering current.
-     *
-     * The display is blanked when the level is 0.0.  In normal use, the electron
-     * beam should have a value of 1.0.  The electron beam is unstable in between
-     * these states and the picture quality may be compromised.  For best effect,
-     * the electron beam should be warmed up or cooled off slowly.
-     *
-     * Warning: Electron beam emits harmful radiation.  Avoid direct exposure to
-     * skin or eyes.
-     *
-     * @param level The level, ranges from 0.0 (full off) to 1.0 (full on).
-     */
-    public void setElectronBeamLevel(float level) {
-        if (mElectronBeamLevel != level) {
-            if (DEBUG) {
-                Slog.d(TAG, "setElectronBeamLevel: level=" + level);
-            }
-
-            mElectronBeamLevel = level;
-            if (mScreenOn) {
-                mScreenReady = false;
-                scheduleScreenUpdate(); // update backlight brightness
-            }
-            if (mElectronBeamPrepared) {
-                mElectronBeamReady = false;
-                scheduleElectronBeamDraw();
-            }
-        }
-    }
-
-    /**
-     * Gets the level of the electron beam steering current.
-     */
-    public float getElectronBeamLevel() {
-        return mElectronBeamLevel;
-    }
-
-    /**
-     * Returns true if no properties have been invalidated.
-     * Otherwise, returns false and promises to invoke the specified listener
-     * when the properties have all been applied.
-     * The listener always overrides any previously set listener.
-     */
-    public boolean waitUntilClean(Runnable listener) {
-        if (!mScreenReady || !mElectronBeamReady) {
-            mCleanListener = listener;
-            return false;
-        } else {
-            mCleanListener = null;
-            return true;
-        }
-    }
-
-    public void dump(PrintWriter pw) {
-        pw.println();
-        pw.println("Display Power State:");
-        pw.println("  mScreenOn=" + mScreenOn);
-        pw.println("  mScreenBrightness=" + mScreenBrightness);
-        pw.println("  mScreenReady=" + mScreenReady);
-        pw.println("  mScreenUpdatePending=" + mScreenUpdatePending);
-        pw.println("  mElectronBeamPrepared=" + mElectronBeamPrepared);
-        pw.println("  mElectronBeamLevel=" + mElectronBeamLevel);
-        pw.println("  mElectronBeamReady=" + mElectronBeamReady);
-        pw.println("  mElectronBeamDrawPending=" + mElectronBeamDrawPending);
-
-        mPhotonicModulator.dump(pw);
-        mElectronBeam.dump(pw);
-    }
-
-    private void scheduleScreenUpdate() {
-        if (!mScreenUpdatePending) {
-            mScreenUpdatePending = true;
-            postScreenUpdateThreadSafe();
-        }
-    }
-
-    private void postScreenUpdateThreadSafe() {
-        mHandler.removeCallbacks(mScreenUpdateRunnable);
-        mHandler.post(mScreenUpdateRunnable);
-    }
-
-    private void scheduleElectronBeamDraw() {
-        if (!mElectronBeamDrawPending) {
-            mElectronBeamDrawPending = true;
-            mChoreographer.postCallback(Choreographer.CALLBACK_TRAVERSAL,
-                    mElectronBeamDrawRunnable, null);
-        }
-    }
-
-    private void invokeCleanListenerIfNeeded() {
-        final Runnable listener = mCleanListener;
-        if (listener != null && mScreenReady && mElectronBeamReady) {
-            mCleanListener = null;
-            listener.run();
-        }
-    }
-
-    private final Runnable mScreenUpdateRunnable = new Runnable() {
-        @Override
-        public void run() {
-            mScreenUpdatePending = false;
-
-            int brightness = mScreenOn && mElectronBeamLevel > 0f ? mScreenBrightness : 0;
-            if (mPhotonicModulator.setState(mScreenOn, brightness)) {
-                if (DEBUG) {
-                    Slog.d(TAG, "Screen ready");
-                }
-                mScreenReady = true;
-                invokeCleanListenerIfNeeded();
-            } else {
-                if (DEBUG) {
-                    Slog.d(TAG, "Screen not ready");
-                }
-            }
-        }
-    };
-
-    private final Runnable mElectronBeamDrawRunnable = new Runnable() {
-        @Override
-        public void run() {
-            mElectronBeamDrawPending = false;
-
-            if (mElectronBeamPrepared) {
-                mElectronBeam.draw(mElectronBeamLevel);
-            }
-
-            mElectronBeamReady = true;
-            invokeCleanListenerIfNeeded();
-        }
-    };
-
-    /**
-     * Updates the state of the screen and backlight asynchronously on a separate thread.
-     */
-    private final class PhotonicModulator {
-        private static final boolean INITIAL_SCREEN_ON = false; // unknown, assume off
-        private static final int INITIAL_BACKLIGHT = -1; // unknown
-
-        private final Object mLock = new Object();
-
-        private boolean mPendingOn = INITIAL_SCREEN_ON;
-        private int mPendingBacklight = INITIAL_BACKLIGHT;
-        private boolean mActualOn = INITIAL_SCREEN_ON;
-        private int mActualBacklight = INITIAL_BACKLIGHT;
-        private boolean mChangeInProgress;
-
-        public boolean setState(boolean on, int backlight) {
-            synchronized (mLock) {
-                if (on != mPendingOn || backlight != mPendingBacklight) {
-                    if (DEBUG) {
-                        Slog.d(TAG, "Requesting new screen state: on=" + on
-                                + ", backlight=" + backlight);
-                    }
-
-                    mPendingOn = on;
-                    mPendingBacklight = backlight;
-
-                    if (!mChangeInProgress) {
-                        mChangeInProgress = true;
-                        AsyncTask.THREAD_POOL_EXECUTOR.execute(mTask);
-                    }
-                }
-                return !mChangeInProgress;
-            }
-        }
-
-        public void dump(PrintWriter pw) {
-            pw.println();
-            pw.println("Photonic Modulator State:");
-            pw.println("  mPendingOn=" + mPendingOn);
-            pw.println("  mPendingBacklight=" + mPendingBacklight);
-            pw.println("  mActualOn=" + mActualOn);
-            pw.println("  mActualBacklight=" + mActualBacklight);
-            pw.println("  mChangeInProgress=" + mChangeInProgress);
-        }
-
-        private final Runnable mTask = new Runnable() {
-            @Override
-            public void run() {
-                // Apply pending changes until done.
-                for (;;) {
-                    final boolean on;
-                    final boolean onChanged;
-                    final int backlight;
-                    final boolean backlightChanged;
-                    synchronized (mLock) {
-                        on = mPendingOn;
-                        onChanged = (on != mActualOn);
-                        backlight = mPendingBacklight;
-                        backlightChanged = (backlight != mActualBacklight);
-                        if (!onChanged && !backlightChanged) {
-                            mChangeInProgress = false;
-                            break;
-                        }
-                        mActualOn = on;
-                        mActualBacklight = backlight;
-                    }
-
-                    if (DEBUG) {
-                        Slog.d(TAG, "Updating screen state: on=" + on
-                                + ", backlight=" + backlight);
-                    }
-                    if (onChanged && on) {
-                        mDisplayBlanker.unblankAllDisplays();
-                    }
-                    if (backlightChanged) {
-                        mBacklight.setBrightness(backlight);
-                    }
-                    if (onChanged && !on) {
-                        mDisplayBlanker.blankAllDisplays();
-                    }
-                }
-
-                // Let the outer class know that all changes have been applied.
-                postScreenUpdateThreadSafe();
-            }
-        };
-    }
-}
diff --git a/services/core/java/com/android/server/power/ElectronBeam.java b/services/core/java/com/android/server/power/ElectronBeam.java
deleted file mode 100644
index 64921d7..0000000
--- a/services/core/java/com/android/server/power/ElectronBeam.java
+++ /dev/null
@@ -1,736 +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.
- */
-
-package com.android.server.power;
-
-import java.io.PrintWriter;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
-
-import android.graphics.PixelFormat;
-import android.graphics.SurfaceTexture;
-import android.hardware.display.DisplayManagerInternal;
-import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
-import android.opengl.EGL14;
-import android.opengl.EGLConfig;
-import android.opengl.EGLContext;
-import android.opengl.EGLDisplay;
-import android.opengl.EGLSurface;
-import android.opengl.GLES10;
-import android.opengl.GLES11Ext;
-import android.os.Looper;
-import android.util.FloatMath;
-import android.util.Slog;
-import android.view.Display;
-import android.view.DisplayInfo;
-import android.view.Surface.OutOfResourcesException;
-import android.view.Surface;
-import android.view.SurfaceControl;
-import android.view.SurfaceSession;
-
-import com.android.server.LocalServices;
-
-/**
- * Bzzzoooop!  *crackle*
- * <p>
- * Animates a screen transition from on to off or off to on by applying
- * some GL transformations to a screenshot.
- * </p><p>
- * This component must only be created or accessed by the {@link Looper} thread
- * that belongs to the {@link DisplayPowerController}.
- * </p>
- */
-final class ElectronBeam {
-    private static final String TAG = "ElectronBeam";
-
-    private static final boolean DEBUG = false;
-
-    // The layer for the electron beam surface.
-    // This is currently hardcoded to be one layer above the boot animation.
-    private static final int ELECTRON_BEAM_LAYER = 0x40000001;
-
-    // The relative proportion of the animation to spend performing
-    // the horizontal stretch effect.  The remainder is spent performing
-    // the vertical stretch effect.
-    private static final float HSTRETCH_DURATION = 0.5f;
-    private static final float VSTRETCH_DURATION = 1.0f - HSTRETCH_DURATION;
-
-    // The number of frames to draw when preparing the animation so that it will
-    // be ready to run smoothly.  We use 3 frames because we are triple-buffered.
-    // See code for details.
-    private static final int DEJANK_FRAMES = 3;
-
-    // Set to true when the animation context has been fully prepared.
-    private boolean mPrepared;
-    private int mMode;
-
-    private final DisplayManagerInternal mDisplayManagerInternal;
-    private int mDisplayLayerStack; // layer stack associated with primary display
-    private int mDisplayWidth;      // real width, not rotated
-    private int mDisplayHeight;     // real height, not rotated
-    private SurfaceSession mSurfaceSession;
-    private SurfaceControl mSurfaceControl;
-    private Surface mSurface;
-    private NaturalSurfaceLayout mSurfaceLayout;
-    private EGLDisplay mEglDisplay;
-    private EGLConfig mEglConfig;
-    private EGLContext mEglContext;
-    private EGLSurface mEglSurface;
-    private boolean mSurfaceVisible;
-    private float mSurfaceAlpha;
-
-    // Texture names.  We only use one texture, which contains the screenshot.
-    private final int[] mTexNames = new int[1];
-    private boolean mTexNamesGenerated;
-    private final float mTexMatrix[] = new float[16];
-
-    // Vertex and corresponding texture coordinates.
-    // We have 4 2D vertices, so 8 elements.  The vertices form a quad.
-    private final FloatBuffer mVertexBuffer = createNativeFloatBuffer(8);
-    private final FloatBuffer mTexCoordBuffer = createNativeFloatBuffer(8);
-
-    /**
-     * Animates an electron beam warming up.
-     */
-    public static final int MODE_WARM_UP = 0;
-
-    /**
-     * Animates an electron beam shutting off.
-     */
-    public static final int MODE_COOL_DOWN = 1;
-
-    /**
-     * Animates a simple dim layer to fade the contents of the screen in or out progressively.
-     */
-    public static final int MODE_FADE = 2;
-
-
-    public ElectronBeam() {
-        mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
-    }
-
-    /**
-     * Warms up the electron beam in preparation for turning on or off.
-     * This method prepares a GL context, and captures a screen shot.
-     *
-     * @param mode The desired mode for the upcoming animation.
-     * @return True if the electron beam is ready, false if it is uncontrollable.
-     */
-    public boolean prepare(int mode) {
-        if (DEBUG) {
-            Slog.d(TAG, "prepare: mode=" + mode);
-        }
-
-        mMode = mode;
-
-        // Get the display size and layer stack.
-        // This is not expected to change while the electron beam surface is showing.
-        DisplayInfo displayInfo = mDisplayManagerInternal.getDisplayInfo(Display.DEFAULT_DISPLAY);
-        mDisplayLayerStack = displayInfo.layerStack;
-        mDisplayWidth = displayInfo.getNaturalWidth();
-        mDisplayHeight = displayInfo.getNaturalHeight();
-
-        // Prepare the surface for drawing.
-        if (!tryPrepare()) {
-            dismiss();
-            return false;
-        }
-
-        // Done.
-        mPrepared = true;
-
-        // Dejanking optimization.
-        // Some GL drivers can introduce a lot of lag in the first few frames as they
-        // initialize their state and allocate graphics buffers for rendering.
-        // Work around this problem by rendering the first frame of the animation a few
-        // times.  The rest of the animation should run smoothly thereafter.
-        // The frames we draw here aren't visible because we are essentially just
-        // painting the screenshot as-is.
-        if (mode == MODE_COOL_DOWN) {
-            for (int i = 0; i < DEJANK_FRAMES; i++) {
-                draw(1.0f);
-            }
-        }
-        return true;
-    }
-
-    private boolean tryPrepare() {
-        if (createSurface()) {
-            if (mMode == MODE_FADE) {
-                return true;
-            }
-            return createEglContext()
-                    && createEglSurface()
-                    && captureScreenshotTextureAndSetViewport();
-        }
-        return false;
-    }
-
-    /**
-     * Dismisses the electron beam animation surface and cleans up.
-     *
-     * To prevent stray photons from leaking out after the electron beam has been
-     * turned off, it is a good idea to defer dismissing the animation until the
-     * electron beam has been turned back on fully.
-     */
-    public void dismiss() {
-        if (DEBUG) {
-            Slog.d(TAG, "dismiss");
-        }
-
-        destroyScreenshotTexture();
-        destroyEglSurface();
-        destroySurface();
-        mPrepared = false;
-    }
-
-    /**
-     * Draws an animation frame showing the electron beam activated at the
-     * specified level.
-     *
-     * @param level The electron beam level.
-     * @return True if successful.
-     */
-    public boolean draw(float level) {
-        if (DEBUG) {
-            Slog.d(TAG, "drawFrame: level=" + level);
-        }
-
-        if (!mPrepared) {
-            return false;
-        }
-
-        if (mMode == MODE_FADE) {
-            return showSurface(1.0f - level);
-        }
-
-        if (!attachEglContext()) {
-            return false;
-        }
-        try {
-            // Clear frame to solid black.
-            GLES10.glClearColor(0f, 0f, 0f, 1f);
-            GLES10.glClear(GLES10.GL_COLOR_BUFFER_BIT);
-
-            // Draw the frame.
-            if (level < HSTRETCH_DURATION) {
-                drawHStretch(1.0f - (level / HSTRETCH_DURATION));
-            } else {
-                drawVStretch(1.0f - ((level - HSTRETCH_DURATION) / VSTRETCH_DURATION));
-            }
-            if (checkGlErrors("drawFrame")) {
-                return false;
-            }
-
-            EGL14.eglSwapBuffers(mEglDisplay, mEglSurface);
-        } finally {
-            detachEglContext();
-        }
-        return showSurface(1.0f);
-    }
-
-    /**
-     * Draws a frame where the content of the electron beam is collapsing inwards upon
-     * itself vertically with red / green / blue channels dispersing and eventually
-     * merging down to a single horizontal line.
-     *
-     * @param stretch The stretch factor.  0.0 is no collapse, 1.0 is full collapse.
-     */
-    private void drawVStretch(float stretch) {
-        // compute interpolation scale factors for each color channel
-        final float ar = scurve(stretch, 7.5f);
-        final float ag = scurve(stretch, 8.0f);
-        final float ab = scurve(stretch, 8.5f);
-        if (DEBUG) {
-            Slog.d(TAG, "drawVStretch: stretch=" + stretch
-                    + ", ar=" + ar + ", ag=" + ag + ", ab=" + ab);
-        }
-
-        // set blending
-        GLES10.glBlendFunc(GLES10.GL_ONE, GLES10.GL_ONE);
-        GLES10.glEnable(GLES10.GL_BLEND);
-
-        // bind vertex buffer
-        GLES10.glVertexPointer(2, GLES10.GL_FLOAT, 0, mVertexBuffer);
-        GLES10.glEnableClientState(GLES10.GL_VERTEX_ARRAY);
-
-        // set-up texturing
-        GLES10.glDisable(GLES10.GL_TEXTURE_2D);
-        GLES10.glEnable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
-
-        // bind texture and set blending for drawing planes
-        GLES10.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTexNames[0]);
-        GLES10.glTexEnvx(GLES10.GL_TEXTURE_ENV, GLES10.GL_TEXTURE_ENV_MODE,
-                mMode == MODE_WARM_UP ? GLES10.GL_MODULATE : GLES10.GL_REPLACE);
-        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
-                GLES10.GL_TEXTURE_MAG_FILTER, GLES10.GL_LINEAR);
-        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
-                GLES10.GL_TEXTURE_MIN_FILTER, GLES10.GL_LINEAR);
-        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
-                GLES10.GL_TEXTURE_WRAP_S, GLES10.GL_CLAMP_TO_EDGE);
-        GLES10.glTexParameterx(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
-                GLES10.GL_TEXTURE_WRAP_T, GLES10.GL_CLAMP_TO_EDGE);
-        GLES10.glEnable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
-        GLES10.glTexCoordPointer(2, GLES10.GL_FLOAT, 0, mTexCoordBuffer);
-        GLES10.glEnableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);
-
-        // draw the red plane
-        setVStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ar);
-        GLES10.glColorMask(true, false, false, true);
-        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
-
-        // draw the green plane
-        setVStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ag);
-        GLES10.glColorMask(false, true, false, true);
-        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
-
-        // draw the blue plane
-        setVStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ab);
-        GLES10.glColorMask(false, false, true, true);
-        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
-
-        // clean up after drawing planes
-        GLES10.glDisable(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
-        GLES10.glDisableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);
-        GLES10.glColorMask(true, true, true, true);
-
-        // draw the white highlight (we use the last vertices)
-        if (mMode == MODE_COOL_DOWN) {
-            GLES10.glColor4f(ag, ag, ag, 1.0f);
-            GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
-        }
-
-        // clean up
-        GLES10.glDisableClientState(GLES10.GL_VERTEX_ARRAY);
-        GLES10.glDisable(GLES10.GL_BLEND);
-    }
-
-    /**
-     * Draws a frame where the electron beam has been stretched out into
-     * a thin white horizontal line that fades as it collapses inwards.
-     *
-     * @param stretch The stretch factor.  0.0 is maximum stretch / no fade,
-     * 1.0 is collapsed / maximum fade.
-     */
-    private void drawHStretch(float stretch) {
-        // compute interpolation scale factor
-        final float ag = scurve(stretch, 8.0f);
-        if (DEBUG) {
-            Slog.d(TAG, "drawHStretch: stretch=" + stretch + ", ag=" + ag);
-        }
-
-        if (stretch < 1.0f) {
-            // bind vertex buffer
-            GLES10.glVertexPointer(2, GLES10.GL_FLOAT, 0, mVertexBuffer);
-            GLES10.glEnableClientState(GLES10.GL_VERTEX_ARRAY);
-
-            // draw narrow fading white line
-            setHStretchQuad(mVertexBuffer, mDisplayWidth, mDisplayHeight, ag);
-            GLES10.glColor4f(1.0f - ag*0.75f, 1.0f - ag*0.75f, 1.0f - ag*0.75f, 1.0f);
-            GLES10.glDrawArrays(GLES10.GL_TRIANGLE_FAN, 0, 4);
-
-            // clean up
-            GLES10.glDisableClientState(GLES10.GL_VERTEX_ARRAY);
-        }
-    }
-
-    private static void setVStretchQuad(FloatBuffer vtx, float dw, float dh, float a) {
-        final float w = dw + (dw * a);
-        final float h = dh - (dh * a);
-        final float x = (dw - w) * 0.5f;
-        final float y = (dh - h) * 0.5f;
-        setQuad(vtx, x, y, w, h);
-    }
-
-    private static void setHStretchQuad(FloatBuffer vtx, float dw, float dh, float a) {
-        final float w = 2 * dw * (1.0f - a);
-        final float h = 1.0f;
-        final float x = (dw - w) * 0.5f;
-        final float y = (dh - h) * 0.5f;
-        setQuad(vtx, x, y, w, h);
-    }
-
-    private static void setQuad(FloatBuffer vtx, float x, float y, float w, float h) {
-        if (DEBUG) {
-            Slog.d(TAG, "setQuad: x=" + x + ", y=" + y + ", w=" + w + ", h=" + h);
-        }
-        vtx.put(0, x);
-        vtx.put(1, y);
-        vtx.put(2, x);
-        vtx.put(3, y + h);
-        vtx.put(4, x + w);
-        vtx.put(5, y + h);
-        vtx.put(6, x + w);
-        vtx.put(7, y);
-    }
-
-    private boolean captureScreenshotTextureAndSetViewport() {
-        if (!attachEglContext()) {
-            return false;
-        }
-        try {
-            if (!mTexNamesGenerated) {
-                GLES10.glGenTextures(1, mTexNames, 0);
-                if (checkGlErrors("glGenTextures")) {
-                    return false;
-                }
-                mTexNamesGenerated = true;
-            }
-
-            final SurfaceTexture st = new SurfaceTexture(mTexNames[0]);
-            final Surface s = new Surface(st);
-            try {
-                SurfaceControl.screenshot(SurfaceControl.getBuiltInDisplay(
-                        SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN), s);
-            } finally {
-                s.release();
-            }
-
-            st.updateTexImage();
-            st.getTransformMatrix(mTexMatrix);
-
-            // Set up texture coordinates for a quad.
-            // We might need to change this if the texture ends up being
-            // a different size from the display for some reason.
-            mTexCoordBuffer.put(0, 0f); mTexCoordBuffer.put(1, 0f);
-            mTexCoordBuffer.put(2, 0f); mTexCoordBuffer.put(3, 1f);
-            mTexCoordBuffer.put(4, 1f); mTexCoordBuffer.put(5, 1f);
-            mTexCoordBuffer.put(6, 1f); mTexCoordBuffer.put(7, 0f);
-
-            // Set up our viewport.
-            GLES10.glViewport(0, 0, mDisplayWidth, mDisplayHeight);
-            GLES10.glMatrixMode(GLES10.GL_PROJECTION);
-            GLES10.glLoadIdentity();
-            GLES10.glOrthof(0, mDisplayWidth, 0, mDisplayHeight, 0, 1);
-            GLES10.glMatrixMode(GLES10.GL_MODELVIEW);
-            GLES10.glLoadIdentity();
-            GLES10.glMatrixMode(GLES10.GL_TEXTURE);
-            GLES10.glLoadIdentity();
-            GLES10.glLoadMatrixf(mTexMatrix, 0);
-        } finally {
-            detachEglContext();
-        }
-        return true;
-    }
-
-    private void destroyScreenshotTexture() {
-        if (mTexNamesGenerated) {
-            mTexNamesGenerated = false;
-            if (attachEglContext()) {
-                try {
-                    GLES10.glDeleteTextures(1, mTexNames, 0);
-                    checkGlErrors("glDeleteTextures");
-                } finally {
-                    detachEglContext();
-                }
-            }
-        }
-    }
-
-    private boolean createEglContext() {
-        if (mEglDisplay == null) {
-            mEglDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
-            if (mEglDisplay == EGL14.EGL_NO_DISPLAY) {
-                logEglError("eglGetDisplay");
-                return false;
-            }
-
-            int[] version = new int[2];
-            if (!EGL14.eglInitialize(mEglDisplay, version, 0, version, 1)) {
-                mEglDisplay = null;
-                logEglError("eglInitialize");
-                return false;
-            }
-        }
-
-        if (mEglConfig == null) {
-            int[] eglConfigAttribList = new int[] {
-                    EGL14.EGL_RED_SIZE, 8,
-                    EGL14.EGL_GREEN_SIZE, 8,
-                    EGL14.EGL_BLUE_SIZE, 8,
-                    EGL14.EGL_ALPHA_SIZE, 8,
-                    EGL14.EGL_NONE
-            };
-            int[] numEglConfigs = new int[1];
-            EGLConfig[] eglConfigs = new EGLConfig[1];
-            if (!EGL14.eglChooseConfig(mEglDisplay, eglConfigAttribList, 0,
-                    eglConfigs, 0, eglConfigs.length, numEglConfigs, 0)) {
-                logEglError("eglChooseConfig");
-                return false;
-            }
-            mEglConfig = eglConfigs[0];
-        }
-
-        if (mEglContext == null) {
-            int[] eglContextAttribList = new int[] {
-                    EGL14.EGL_NONE
-            };
-            mEglContext = EGL14.eglCreateContext(mEglDisplay, mEglConfig,
-                    EGL14.EGL_NO_CONTEXT, eglContextAttribList, 0);
-            if (mEglContext == null) {
-                logEglError("eglCreateContext");
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /* not used because it is too expensive to create / destroy contexts all of the time
-    private void destroyEglContext() {
-        if (mEglContext != null) {
-            if (!EGL14.eglDestroyContext(mEglDisplay, mEglContext)) {
-                logEglError("eglDestroyContext");
-            }
-            mEglContext = null;
-        }
-    }*/
-
-    private boolean createSurface() {
-        if (mSurfaceSession == null) {
-            mSurfaceSession = new SurfaceSession();
-        }
-
-        SurfaceControl.openTransaction();
-        try {
-            if (mSurfaceControl == null) {
-                try {
-                    int flags;
-                    if (mMode == MODE_FADE) {
-                        flags = SurfaceControl.FX_SURFACE_DIM | SurfaceControl.HIDDEN;
-                    } else {
-                        flags = SurfaceControl.OPAQUE | SurfaceControl.HIDDEN;
-                    }
-                    mSurfaceControl = new SurfaceControl(mSurfaceSession,
-                            "ElectronBeam", mDisplayWidth, mDisplayHeight,
-                            PixelFormat.OPAQUE, flags);
-                } catch (OutOfResourcesException ex) {
-                    Slog.e(TAG, "Unable to create surface.", ex);
-                    return false;
-                }
-            }
-
-            mSurfaceControl.setLayerStack(mDisplayLayerStack);
-            mSurfaceControl.setSize(mDisplayWidth, mDisplayHeight);
-            mSurface = new Surface();
-            mSurface.copyFrom(mSurfaceControl);
-
-            mSurfaceLayout = new NaturalSurfaceLayout(mDisplayManagerInternal, mSurfaceControl);
-            mSurfaceLayout.onDisplayTransaction();
-        } finally {
-            SurfaceControl.closeTransaction();
-        }
-        return true;
-    }
-
-    private boolean createEglSurface() {
-        if (mEglSurface == null) {
-            int[] eglSurfaceAttribList = new int[] {
-                    EGL14.EGL_NONE
-            };
-            // turn our SurfaceControl into a Surface
-            mEglSurface = EGL14.eglCreateWindowSurface(mEglDisplay, mEglConfig, mSurface,
-                    eglSurfaceAttribList, 0);
-            if (mEglSurface == null) {
-                logEglError("eglCreateWindowSurface");
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private void destroyEglSurface() {
-        if (mEglSurface != null) {
-            if (!EGL14.eglDestroySurface(mEglDisplay, mEglSurface)) {
-                logEglError("eglDestroySurface");
-            }
-            mEglSurface = null;
-        }
-    }
-
-    private void destroySurface() {
-        if (mSurfaceControl != null) {
-            mSurfaceLayout.dispose();
-            mSurfaceLayout = null;
-            SurfaceControl.openTransaction();
-            try {
-                mSurfaceControl.destroy();
-                mSurface.release();
-            } finally {
-                SurfaceControl.closeTransaction();
-            }
-            mSurfaceControl = null;
-            mSurfaceVisible = false;
-            mSurfaceAlpha = 0f;
-        }
-    }
-
-    private boolean showSurface(float alpha) {
-        if (!mSurfaceVisible || mSurfaceAlpha != alpha) {
-            SurfaceControl.openTransaction();
-            try {
-                mSurfaceControl.setLayer(ELECTRON_BEAM_LAYER);
-                mSurfaceControl.setAlpha(alpha);
-                mSurfaceControl.show();
-            } finally {
-                SurfaceControl.closeTransaction();
-            }
-            mSurfaceVisible = true;
-            mSurfaceAlpha = alpha;
-        }
-        return true;
-    }
-
-    private boolean attachEglContext() {
-        if (mEglSurface == null) {
-            return false;
-        }
-        if (!EGL14.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) {
-            logEglError("eglMakeCurrent");
-            return false;
-        }
-        return true;
-    }
-
-    private void detachEglContext() {
-        if (mEglDisplay != null) {
-            EGL14.eglMakeCurrent(mEglDisplay,
-                    EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT);
-        }
-    }
-
-    /**
-     * Interpolates a value in the range 0 .. 1 along a sigmoid curve
-     * yielding a result in the range 0 .. 1 scaled such that:
-     * scurve(0) == 0, scurve(0.5) == 0.5, scurve(1) == 1.
-     */
-    private static float scurve(float value, float s) {
-        // A basic sigmoid has the form y = 1.0f / FloatMap.exp(-x * s).
-        // Here we take the input datum and shift it by 0.5 so that the
-        // domain spans the range -0.5 .. 0.5 instead of 0 .. 1.
-        final float x = value - 0.5f;
-
-        // Next apply the sigmoid function to the scaled value
-        // which produces a value in the range 0 .. 1 so we subtract
-        // 0.5 to get a value in the range -0.5 .. 0.5 instead.
-        final float y = sigmoid(x, s) - 0.5f;
-
-        // To obtain the desired boundary conditions we need to scale
-        // the result so that it fills a range of -1 .. 1.
-        final float v = sigmoid(0.5f, s) - 0.5f;
-
-        // And finally remap the value back to a range of 0 .. 1.
-        return y / v * 0.5f + 0.5f;
-    }
-
-    private static float sigmoid(float x, float s) {
-        return 1.0f / (1.0f + FloatMath.exp(-x * s));
-    }
-
-    private static FloatBuffer createNativeFloatBuffer(int size) {
-        ByteBuffer bb = ByteBuffer.allocateDirect(size * 4);
-        bb.order(ByteOrder.nativeOrder());
-        return bb.asFloatBuffer();
-    }
-
-    private static void logEglError(String func) {
-        Slog.e(TAG, func + " failed: error " + EGL14.eglGetError(), new Throwable());
-    }
-
-    private static boolean checkGlErrors(String func) {
-        return checkGlErrors(func, true);
-    }
-
-    private static boolean checkGlErrors(String func, boolean log) {
-        boolean hadError = false;
-        int error;
-        while ((error = GLES10.glGetError()) != GLES10.GL_NO_ERROR) {
-            if (log) {
-                Slog.e(TAG, func + " failed: error " + error, new Throwable());
-            }
-            hadError = true;
-        }
-        return hadError;
-    }
-
-    public void dump(PrintWriter pw) {
-        pw.println();
-        pw.println("Electron Beam State:");
-        pw.println("  mPrepared=" + mPrepared);
-        pw.println("  mMode=" + mMode);
-        pw.println("  mDisplayLayerStack=" + mDisplayLayerStack);
-        pw.println("  mDisplayWidth=" + mDisplayWidth);
-        pw.println("  mDisplayHeight=" + mDisplayHeight);
-        pw.println("  mSurfaceVisible=" + mSurfaceVisible);
-        pw.println("  mSurfaceAlpha=" + mSurfaceAlpha);
-    }
-
-    /**
-     * Keeps a surface aligned with the natural orientation of the device.
-     * Updates the position and transformation of the matrix whenever the display
-     * is rotated.  This is a little tricky because the display transaction
-     * callback can be invoked on any thread, not necessarily the thread that
-     * owns the electron beam.
-     */
-    private static final class NaturalSurfaceLayout implements DisplayTransactionListener {
-        private final DisplayManagerInternal mDisplayManagerInternal;
-        private SurfaceControl mSurfaceControl;
-
-        public NaturalSurfaceLayout(DisplayManagerInternal displayManagerInternal,
-                SurfaceControl surfaceControl) {
-            mDisplayManagerInternal = displayManagerInternal;
-            mSurfaceControl = surfaceControl;
-            mDisplayManagerInternal.registerDisplayTransactionListener(this);
-        }
-
-        public void dispose() {
-            synchronized (this) {
-                mSurfaceControl = null;
-            }
-            mDisplayManagerInternal.unregisterDisplayTransactionListener(this);
-        }
-
-        @Override
-        public void onDisplayTransaction() {
-            synchronized (this) {
-                if (mSurfaceControl == null) {
-                    return;
-                }
-
-                DisplayInfo displayInfo =
-                        mDisplayManagerInternal.getDisplayInfo(Display.DEFAULT_DISPLAY);
-                switch (displayInfo.rotation) {
-                    case Surface.ROTATION_0:
-                        mSurfaceControl.setPosition(0, 0);
-                        mSurfaceControl.setMatrix(1, 0, 0, 1);
-                        break;
-                    case Surface.ROTATION_90:
-                        mSurfaceControl.setPosition(0, displayInfo.logicalHeight);
-                        mSurfaceControl.setMatrix(0, -1, 1, 0);
-                        break;
-                    case Surface.ROTATION_180:
-                        mSurfaceControl.setPosition(displayInfo.logicalWidth, displayInfo.logicalHeight);
-                        mSurfaceControl.setMatrix(-1, 0, 0, -1);
-                        break;
-                    case Surface.ROTATION_270:
-                        mSurfaceControl.setPosition(displayInfo.logicalWidth, 0);
-                        mSurfaceControl.setMatrix(0, 1, -1, 0);
-                        break;
-                }
-            }
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index 81af636..d84e8e1 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -16,15 +16,19 @@
 
 package com.android.server.power;
 
+import android.app.ActivityManagerInternal;
 import android.app.AppOpsManager;
+
 import com.android.internal.app.IAppOpsService;
 import com.android.internal.app.IBatteryStats;
 import com.android.server.EventLogTags;
+import com.android.server.LocalServices;
 
 import android.app.ActivityManagerNative;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.hardware.input.InputManagerInternal;
 import android.media.AudioManager;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
@@ -82,6 +86,8 @@
     private final SuspendBlocker mSuspendBlocker;
     private final ScreenOnBlocker mScreenOnBlocker;
     private final WindowManagerPolicy mPolicy;
+    private final ActivityManagerInternal mActivityManagerInternal;
+    private final InputManagerInternal mInputManagerInternal;
 
     private final NotifierHandler mHandler;
     private final Intent mScreenOnIntent;
@@ -116,6 +122,8 @@
         mSuspendBlocker = suspendBlocker;
         mScreenOnBlocker = screenOnBlocker;
         mPolicy = policy;
+        mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class);
+        mInputManagerInternal = LocalServices.getService(InputManagerInternal.class);
 
         mHandler = new NotifierHandler(looper);
         mScreenOnIntent = new Intent(Intent.ACTION_SCREEN_ON);
@@ -227,118 +235,58 @@
     }
 
     /**
-     * Called when the screen is turned on.
+     * Notifies that the device is changing interactive state.
      */
-    public void onScreenOn() {
+    public void onInteractiveStateChangeStarted(boolean interactive, int reason) {
         if (DEBUG) {
-            Slog.d(TAG, "onScreenOn");
-        }
-
-        try {
-            mBatteryStats.noteScreenOn();
-        } catch (RemoteException ex) {
-            // Ignore
-        }
-    }
-
-    /**
-     * Called when the screen is turned off.
-     */
-    public void onScreenOff() {
-        if (DEBUG) {
-            Slog.d(TAG, "onScreenOff");
-        }
-
-        try {
-            mBatteryStats.noteScreenOff();
-        } catch (RemoteException ex) {
-            // Ignore
-        }
-    }
-
-    /**
-     * Called when the screen changes brightness.
-     */
-    public void onScreenBrightness(int brightness) {
-        if (DEBUG) {
-            Slog.d(TAG, "onScreenBrightness: brightness=" + brightness);
-        }
-
-        try {
-            mBatteryStats.noteScreenBrightness(brightness);
-        } catch (RemoteException ex) {
-            // Ignore
-        }
-    }
-
-    /**
-     * Called when the device is waking up from sleep and the
-     * display is about to be turned on.
-     */
-    public void onWakeUpStarted() {
-        if (DEBUG) {
-            Slog.d(TAG, "onWakeUpStarted");
+            Slog.d(TAG, "onInteractiveChangeStarted: interactive=" + interactive
+                    + ", reason=" + reason);
         }
 
         synchronized (mLock) {
-            if (mActualPowerState != POWER_STATE_AWAKE) {
-                mActualPowerState = POWER_STATE_AWAKE;
-                mPendingWakeUpBroadcast = true;
-                if (!mScreenOnBlockerAcquired) {
-                    mScreenOnBlockerAcquired = true;
-                    mScreenOnBlocker.acquire();
+            if (interactive) {
+                // Waking up...
+                if (mActualPowerState != POWER_STATE_AWAKE) {
+                    mActualPowerState = POWER_STATE_AWAKE;
+                    mPendingWakeUpBroadcast = true;
+                    if (!mScreenOnBlockerAcquired) {
+                        mScreenOnBlockerAcquired = true;
+                        mScreenOnBlocker.acquire();
+                    }
+                    updatePendingBroadcastLocked();
                 }
-                updatePendingBroadcastLocked();
+            } else {
+                // Going to sleep...
+                mLastGoToSleepReason = reason;
             }
+            mInputManagerInternal.setInteractive(interactive);
         }
     }
 
     /**
-     * Called when the device has finished waking up from sleep
-     * and the display has been turned on.
+     * Notifies that the device has finished changing interactive state.
      */
-    public void onWakeUpFinished() {
+    public void onInteractiveStateChangeFinished(boolean interactive) {
         if (DEBUG) {
-            Slog.d(TAG, "onWakeUpFinished");
-        }
-    }
-
-    /**
-     * Called when the device is going to sleep.
-     */
-    public void onGoToSleepStarted(int reason) {
-        if (DEBUG) {
-            Slog.d(TAG, "onGoToSleepStarted");
+            Slog.d(TAG, "onInteractiveChangeFinished");
         }
 
         synchronized (mLock) {
-            mLastGoToSleepReason = reason;
-        }
-    }
-
-    /**
-     * Called when the device has finished going to sleep and the
-     * display has been turned off.
-     *
-     * This is a good time to make transitions that we don't want the user to see,
-     * such as bringing the key guard to focus.  There's no guarantee for this,
-     * however because the user could turn the device on again at any time.
-     * Some things may need to be protected by other mechanisms that defer screen on.
-     */
-    public void onGoToSleepFinished() {
-        if (DEBUG) {
-            Slog.d(TAG, "onGoToSleepFinished");
-        }
-
-        synchronized (mLock) {
-            if (mActualPowerState != POWER_STATE_ASLEEP) {
-                mActualPowerState = POWER_STATE_ASLEEP;
-                mPendingGoToSleepBroadcast = true;
-                if (mUserActivityPending) {
-                    mUserActivityPending = false;
-                    mHandler.removeMessages(MSG_USER_ACTIVITY);
+            if (!interactive) {
+                // Finished going to sleep...
+                // This is a good time to make transitions that we don't want the user to see,
+                // such as bringing the key guard to focus.  There's no guarantee for this,
+                // however because the user could turn the device on again at any time.
+                // Some things may need to be protected by other mechanisms that defer screen on.
+                if (mActualPowerState != POWER_STATE_ASLEEP) {
+                    mActualPowerState = POWER_STATE_ASLEEP;
+                    mPendingGoToSleepBroadcast = true;
+                    if (mUserActivityPending) {
+                        mUserActivityPending = false;
+                        mHandler.removeMessages(MSG_USER_ACTIVITY);
+                    }
+                    updatePendingBroadcastLocked();
                 }
-                updatePendingBroadcastLocked();
             }
         }
     }
@@ -462,12 +410,7 @@
         EventLog.writeEvent(EventLogTags.POWER_SCREEN_STATE, 1, 0, 0, 0);
 
         mPolicy.screenTurningOn(mScreenOnListener);
-
-        try {
-            ActivityManagerNative.getDefault().wakingUp();
-        } catch (RemoteException e) {
-            // ignore it
-        }
+        mActivityManagerInternal.wakingUp();
 
         if (ActivityManagerNative.isSystemReady()) {
             mContext.sendOrderedBroadcastAsUser(mScreenOnIntent, UserHandle.ALL, null,
@@ -518,11 +461,7 @@
         EventLog.writeEvent(EventLogTags.POWER_SCREEN_STATE, 0, why, 0, 0);
 
         mPolicy.screenTurnedOff(why);
-        try {
-            ActivityManagerNative.getDefault().goingToSleep();
-        } catch (RemoteException e) {
-            // ignore it.
-        }
+        mActivityManagerInternal.goingToSleep();
 
         if (ActivityManagerNative.isSystemReady()) {
             mContext.sendOrderedBroadcastAsUser(mScreenOffIntent, UserHandle.ALL, null,
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index a388318..82cef7f 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -24,7 +24,6 @@
 import com.android.server.ServiceThread;
 import com.android.server.lights.Light;
 import com.android.server.lights.LightsManager;
-import com.android.server.twilight.TwilightManager;
 import com.android.server.Watchdog;
 
 import android.Manifest;
@@ -39,6 +38,7 @@
 import android.hardware.SensorManager;
 import android.hardware.SystemSensorManager;
 import android.hardware.display.DisplayManagerInternal;
+import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest;
 import android.net.Uri;
 import android.os.BatteryManager;
 import android.os.Binder;
@@ -62,6 +62,7 @@
 import android.util.Log;
 import android.util.Slog;
 import android.util.TimeUtils;
+import android.view.Display;
 import android.view.WindowManagerPolicy;
 
 import java.io.FileDescriptor;
@@ -177,7 +178,6 @@
     private PowerManagerHandler mHandler;
     private WindowManagerPolicy mPolicy;
     private Notifier mNotifier;
-    private DisplayPowerController mDisplayPowerController;
     private WirelessChargerDetector mWirelessChargerDetector;
     private SettingsObserver mSettingsObserver;
     private DreamManagerInternal mDreamManager;
@@ -210,6 +210,10 @@
     // A bitfield that summarizes the state of all active wakelocks.
     private int mWakeLockSummary;
 
+    // True if the device is in an interactive state.
+    private boolean mInteractive;
+    private boolean mInteractiveChanging;
+
     // If true, instructs the display controller to wait for the proximity sensor to
     // go negative before turning the screen on.
     private boolean mRequestWaitForNegativeProximity;
@@ -218,11 +222,6 @@
     private long mLastWakeTime;
     private long mLastSleepTime;
 
-    // True if we need to send a wake up or go to sleep finished notification
-    // when the display is ready.
-    private boolean mSendWakeUpFinishedNotificationWhenReady;
-    private boolean mSendGoToSleepFinishedNotificationWhenReady;
-
     // Timestamp of the last call to user activity.
     private long mLastUserActivityTime;
     private long mLastUserActivityTimeNoChangeLights;
@@ -258,9 +257,6 @@
     // screen is coming up.
     private final ScreenOnBlockerImpl mScreenOnBlocker;
 
-    // The display blanker used to turn the screen on or off.
-    private final DisplayBlankerImpl mDisplayBlanker;
-
     // True if systemReady() has been called.
     private boolean mSystemReady;
 
@@ -269,11 +265,11 @@
 
     // True if auto-suspend mode is enabled.
     // Refer to autosuspend.h.
-    private boolean mAutoSuspendModeEnabled;
+    private boolean mHalAutoSuspendModeEnabled;
 
     // True if interactive mode is enabled.
     // Refer to power.h.
-    private boolean mInteractiveModeEnabled;
+    private boolean mHalInteractiveModeEnabled;
 
     // True if the device is plugged into a power source.
     private boolean mIsPowered;
@@ -293,10 +289,10 @@
     private int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
 
     // True to decouple auto-suspend mode from the display state.
-    private boolean mDecoupleAutoSuspendModeFromDisplayConfig;
+    private boolean mDecoupleHalAutoSuspendModeFromDisplayConfig;
 
     // True to decouple interactive mode from the display state.
-    private boolean mDecoupleInteractiveModeFromDisplayConfig;
+    private boolean mDecoupleHalInteractiveModeFromDisplayConfig;
 
     // True if the device should wake up when plugged or unplugged.
     private boolean mWakeUpWhenPluggedOrUnpluggedConfig;
@@ -401,11 +397,11 @@
 
     private native void nativeInit();
 
-    private static native void nativeSetPowerState(boolean screenOn, boolean screenBright);
     private static native void nativeAcquireSuspendBlocker(String name);
     private static native void nativeReleaseSuspendBlocker(String name);
     private static native void nativeSetInteractive(boolean enable);
     private static native void nativeSetAutoSuspend(boolean enable);
+    private static native void nativeSendPowerHint(int hintId, int data);
 
     public PowerManagerService(Context context) {
         super(context);
@@ -415,14 +411,17 @@
             mDisplaySuspendBlocker = createSuspendBlockerLocked("PowerManagerService.Display");
             mDisplaySuspendBlocker.acquire();
             mHoldingDisplaySuspendBlocker = true;
+            mHalAutoSuspendModeEnabled = false;
+            mHalInteractiveModeEnabled = true;
 
             mScreenOnBlocker = new ScreenOnBlockerImpl();
-            mDisplayBlanker = new DisplayBlankerImpl();
             mWakefulness = WAKEFULNESS_AWAKE;
-        }
+            mInteractive = true;
 
-        nativeInit();
-        nativeSetPowerState(true, true);
+            nativeInit();
+            nativeSetAutoSuspend(false);
+            nativeSetInteractive(true);
+        }
     }
 
     @Override
@@ -450,14 +449,6 @@
 
         Watchdog.getInstance().addMonitor(this);
         Watchdog.getInstance().addThread(mHandler);
-
-        // Forcibly turn the screen on at boot so that it is in a known power state.
-        // We do this in init() rather than in the constructor because setting the
-        // screen state requires a call into surface flinger which then needs to call back
-        // into the activity manager to check permissions.  Unfortunately the
-        // activity manager is not running when the constructor is called, so we
-        // have to defer setting the screen state until this point.
-        mDisplayBlanker.unblankAllDisplays();
     }
 
     void setPolicy(WindowManagerPolicy policy) {
@@ -484,20 +475,16 @@
                     mAppOps, createSuspendBlockerLocked("PowerManagerService.Broadcasts"),
                     mScreenOnBlocker, mPolicy);
 
-            // The display power controller runs on the power manager service's
-            // own handler thread to ensure timely operation.
-            mDisplayPowerController = new DisplayPowerController(mHandler.getLooper(),
-                    mContext, mNotifier, mLightsManager,
-                    LocalServices.getService(TwilightManager.class), sensorManager,
-                    mDisplaySuspendBlocker, mDisplayBlanker,
-                    mDisplayPowerControllerCallbacks, mHandler);
-
             mWirelessChargerDetector = new WirelessChargerDetector(sensorManager,
                     createSuspendBlockerLocked("PowerManagerService.WirelessChargerDetector"),
                     mHandler);
             mSettingsObserver = new SettingsObserver(mHandler);
             mAttentionLight = mLightsManager.getLight(LightsManager.LIGHT_ID_ATTENTION);
 
+            // Initialize display power management.
+            mDisplayManagerInternal.initPowerManagement(
+                    mDisplayPowerCallbacks, mHandler, sensorManager);
+
             // Register for broadcasts from other components of the system.
             IntentFilter filter = new IntentFilter();
             filter.addAction(Intent.ACTION_BATTERY_CHANGED);
@@ -555,9 +542,9 @@
     private void readConfigurationLocked() {
         final Resources resources = mContext.getResources();
 
-        mDecoupleAutoSuspendModeFromDisplayConfig = resources.getBoolean(
+        mDecoupleHalAutoSuspendModeFromDisplayConfig = resources.getBoolean(
                 com.android.internal.R.bool.config_powerDecoupleAutoSuspendModeFromDisplay);
-        mDecoupleInteractiveModeFromDisplayConfig = resources.getBoolean(
+        mDecoupleHalInteractiveModeFromDisplayConfig = resources.getBoolean(
                 com.android.internal.R.bool.config_powerDecoupleInteractiveModeFromDisplay);
         mWakeUpWhenPluggedOrUnpluggedConfig = resources.getBoolean(
                 com.android.internal.R.bool.config_unplugTurnsOnScreen);
@@ -822,7 +809,7 @@
                     return true;
 
                 case PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK:
-                    return mSystemReady && mDisplayPowerController.isProximitySensorAvailable();
+                    return mSystemReady && mDisplayManagerInternal.isProximitySensorAvailable();
 
                 default:
                     return false;
@@ -875,11 +862,6 @@
         return false;
     }
 
-    // Called from native code.
-    private void wakeUpFromNative(long eventTime) {
-        wakeUpInternal(eventTime);
-    }
-
     private void wakeUpInternal(long eventTime) {
         synchronized (mLock) {
             if (wakeUpNoUpdateLocked(eventTime)) {
@@ -910,26 +892,16 @@
                 break;
         }
 
-        if (mWakefulness != WAKEFULNESS_DREAMING) {
-            sendPendingNotificationsLocked();
-            mNotifier.onWakeUpStarted();
-            mSendWakeUpFinishedNotificationWhenReady = true;
-        }
-
         mLastWakeTime = eventTime;
-        mWakefulness = WAKEFULNESS_AWAKE;
         mDirty |= DIRTY_WAKEFULNESS;
+        mWakefulness = WAKEFULNESS_AWAKE;
+        setInteractiveStateLocked(true, 0);
 
         userActivityNoUpdateLocked(
                 eventTime, PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
         return true;
     }
 
-    // Called from native code.
-    private void goToSleepFromNative(long eventTime, int reason) {
-        goToSleepInternal(eventTime, reason);
-    }
-
     private void goToSleepInternal(long eventTime, int reason) {
         synchronized (mLock) {
             if (goToSleepNoUpdateLocked(eventTime, reason)) {
@@ -966,14 +938,11 @@
                 break;
         }
 
-        sendPendingNotificationsLocked();
-        mNotifier.onGoToSleepStarted(reason);
-        mSendGoToSleepFinishedNotificationWhenReady = true;
-
         mLastSleepTime = eventTime;
         mDirty |= DIRTY_WAKEFULNESS;
         mWakefulness = WAKEFULNESS_DOZING;
         mSandmanSummoned = true;
+        setInteractiveStateLocked(false, reason);
 
         // Report the number of wake locks that will be cleared by going to sleep.
         int numWakeLocksCleared = 0;
@@ -1015,6 +984,7 @@
         mDirty |= DIRTY_WAKEFULNESS;
         mWakefulness = WAKEFULNESS_DREAMING;
         mSandmanSummoned = true;
+        setInteractiveStateLocked(true, 0);
         return true;
     }
 
@@ -1033,9 +1003,27 @@
 
         mDirty |= DIRTY_WAKEFULNESS;
         mWakefulness = WAKEFULNESS_ASLEEP;
+        setInteractiveStateLocked(false, PowerManager.GO_TO_SLEEP_REASON_TIMEOUT);
         return true;
     }
 
+    private void setInteractiveStateLocked(boolean interactive, int reason) {
+        if (mInteractive != interactive) {
+            finishInteractiveStateChangeLocked();
+
+            mInteractive = interactive;
+            mInteractiveChanging = true;
+            mNotifier.onInteractiveStateChangeStarted(interactive, reason);
+        }
+    }
+
+    private void finishInteractiveStateChangeLocked() {
+        if (mInteractiveChanging) {
+            mNotifier.onInteractiveStateChangeFinished(mInteractive);
+            mInteractiveChanging = false;
+        }
+    }
+
     /**
      * Updates the global power state based on dirty bits recorded in mDirty.
      *
@@ -1079,7 +1067,7 @@
 
         // Phase 3: Send notifications, if needed.
         if (mDisplayReady) {
-            sendPendingNotificationsLocked();
+            finishInteractiveStateChangeLocked();
         }
 
         // Phase 4: Update suspend blocker.
@@ -1088,17 +1076,6 @@
         updateSuspendBlockerLocked();
     }
 
-    private void sendPendingNotificationsLocked() {
-        if (mSendWakeUpFinishedNotificationWhenReady) {
-            mSendWakeUpFinishedNotificationWhenReady = false;
-            mNotifier.onWakeUpFinished();
-        }
-        if (mSendGoToSleepFinishedNotificationWhenReady) {
-            mSendGoToSleepFinishedNotificationWhenReady = false;
-            mNotifier.onGoToSleepFinished();
-        }
-    }
-
     /**
      * Updates the value of mIsPowered.
      * Sets DIRTY_IS_POWERED if a change occurred.
@@ -1218,48 +1195,45 @@
                         mWakeLockSummary |= WAKE_LOCK_CPU;
                         break;
                     case PowerManager.FULL_WAKE_LOCK:
-                        if (mWakefulness == WAKEFULNESS_AWAKE
-                                || mWakefulness == WAKEFULNESS_DREAMING) {
-                            mWakeLockSummary |= WAKE_LOCK_CPU
-                                    | WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_BUTTON_BRIGHT;
-                        }
-                        if (mWakefulness == WAKEFULNESS_AWAKE) {
-                            mWakeLockSummary |= WAKE_LOCK_STAY_AWAKE;
-                        }
+                        mWakeLockSummary |= WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_BUTTON_BRIGHT;
                         break;
                     case PowerManager.SCREEN_BRIGHT_WAKE_LOCK:
-                        if (mWakefulness == WAKEFULNESS_AWAKE
-                                || mWakefulness == WAKEFULNESS_DREAMING) {
-                            mWakeLockSummary |= WAKE_LOCK_CPU | WAKE_LOCK_SCREEN_BRIGHT;
-                        }
-                        if (mWakefulness == WAKEFULNESS_AWAKE) {
-                            mWakeLockSummary |= WAKE_LOCK_STAY_AWAKE;
-                        }
+                        mWakeLockSummary |= WAKE_LOCK_SCREEN_BRIGHT;
                         break;
                     case PowerManager.SCREEN_DIM_WAKE_LOCK:
-                        if (mWakefulness == WAKEFULNESS_AWAKE
-                                || mWakefulness == WAKEFULNESS_DREAMING) {
-                            mWakeLockSummary |= WAKE_LOCK_CPU | WAKE_LOCK_SCREEN_DIM;
-                        }
-                        if (mWakefulness == WAKEFULNESS_AWAKE) {
-                            mWakeLockSummary |= WAKE_LOCK_STAY_AWAKE;
-                        }
+                        mWakeLockSummary |= WAKE_LOCK_SCREEN_DIM;
                         break;
                     case PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK:
-                        if (mWakefulness == WAKEFULNESS_AWAKE
-                                || mWakefulness == WAKEFULNESS_DREAMING
-                                || mWakefulness == WAKEFULNESS_DOZING) {
-                            mWakeLockSummary |= WAKE_LOCK_PROXIMITY_SCREEN_OFF;
-                        }
+                        mWakeLockSummary |= WAKE_LOCK_PROXIMITY_SCREEN_OFF;
                         break;
                     case PowerManager.DOZE_WAKE_LOCK:
-                        if (mWakefulness == WAKEFULNESS_DOZING) {
-                            mWakeLockSummary |= WAKE_LOCK_DOZE;
-                        }
+                        mWakeLockSummary |= WAKE_LOCK_DOZE;
                         break;
                 }
             }
 
+            // Cancel wake locks that make no sense based on the current state.
+            if (mWakefulness != WAKEFULNESS_DOZING) {
+                mWakeLockSummary &= ~WAKE_LOCK_DOZE;
+            }
+            if (mWakefulness == WAKEFULNESS_ASLEEP
+                    || (mWakeLockSummary & WAKE_LOCK_DOZE) != 0) {
+                mWakeLockSummary &= ~(WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_SCREEN_DIM
+                        | WAKE_LOCK_BUTTON_BRIGHT);
+                if (mWakefulness == WAKEFULNESS_ASLEEP) {
+                    mWakeLockSummary &= ~WAKE_LOCK_PROXIMITY_SCREEN_OFF;
+                }
+            }
+
+            // Infer implied wake locks where necessary based on the current state.
+            if ((mWakeLockSummary & (WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_SCREEN_DIM)) != 0) {
+                if (mWakefulness == WAKEFULNESS_AWAKE) {
+                    mWakeLockSummary |= WAKE_LOCK_CPU | WAKE_LOCK_STAY_AWAKE;
+                } else if (mWakefulness == WAKEFULNESS_DREAMING) {
+                    mWakeLockSummary |= WAKE_LOCK_CPU;
+                }
+            }
+
             if (DEBUG_SPEW) {
                 Slog.d(TAG, "updateWakeLockSummaryLocked: mWakefulness="
                         + wakefulnessToString(mWakefulness)
@@ -1277,12 +1251,14 @@
      */
     private void updateUserActivitySummaryLocked(long now, int dirty) {
         // Update the status of the user activity timeout timer.
-        if ((dirty & (DIRTY_USER_ACTIVITY | DIRTY_WAKEFULNESS | DIRTY_SETTINGS)) != 0) {
+        if ((dirty & (DIRTY_WAKE_LOCKS | DIRTY_USER_ACTIVITY
+                | DIRTY_WAKEFULNESS | DIRTY_SETTINGS)) != 0) {
             mHandler.removeMessages(MSG_USER_ACTIVITY_TIMEOUT);
 
             long nextTimeout = 0;
             if (mWakefulness == WAKEFULNESS_AWAKE
-                    || mWakefulness == WAKEFULNESS_DREAMING) {
+                    || mWakefulness == WAKEFULNESS_DREAMING
+                    || mWakefulness == WAKEFULNESS_DOZING) {
                 final int screenOffTimeout = getScreenOffTimeoutLocked();
                 final int screenDimDuration = getScreenDimDurationLocked(screenOffTimeout);
 
@@ -1606,8 +1582,6 @@
                 | DIRTY_SETTINGS | DIRTY_SCREEN_ON_BLOCKER_RELEASED)) != 0) {
             final int newScreenState = getDesiredScreenPowerStateLocked();
             mDisplayPowerRequest.screenState = newScreenState;
-            nativeSetPowerState(isScreenOnLocked(),
-                    newScreenState == DisplayPowerRequest.SCREEN_STATE_BRIGHT);
 
             int screenBrightness = mScreenBrightnessSettingDefault;
             float screenAutoBrightnessAdjustment = 0.0f;
@@ -1645,7 +1619,7 @@
 
             mDisplayPowerRequest.blockScreenOn = mScreenOnBlocker.isHeld();
 
-            mDisplayReady = mDisplayPowerController.requestPowerState(mDisplayPowerRequest,
+            mDisplayReady = mDisplayManagerInternal.requestPowerState(mDisplayPowerRequest,
                     mRequestWaitForNegativeProximity);
             mRequestWaitForNegativeProximity = false;
 
@@ -1687,8 +1661,10 @@
         return DisplayPowerRequest.SCREEN_STATE_DIM;
     }
 
-    private final DisplayPowerController.Callbacks mDisplayPowerControllerCallbacks =
-            new DisplayPowerController.Callbacks() {
+    private final DisplayManagerInternal.DisplayPowerCallbacks mDisplayPowerCallbacks =
+            new DisplayManagerInternal.DisplayPowerCallbacks() {
+        private int mDisplayState = Display.STATE_UNKNOWN;
+
         @Override
         public void onStateChanged() {
             synchronized (mLock) {
@@ -1716,6 +1692,50 @@
                 updatePowerStateLocked();
             }
         }
+
+        @Override
+        public void onDisplayStateChange(int state) {
+            // This method is only needed to support legacy display blanking behavior
+            // where the display's power state is coupled to suspend or to the power HAL.
+            // The order of operations matters here.
+            synchronized (mLock) {
+                if (mDisplayState != state) {
+                    mDisplayState = state;
+                    if (state == Display.STATE_OFF) {
+                        if (!mDecoupleHalInteractiveModeFromDisplayConfig) {
+                            setHalInteractiveModeLocked(false);
+                        }
+                        if (!mDecoupleHalAutoSuspendModeFromDisplayConfig) {
+                            setHalAutoSuspendModeLocked(true);
+                        }
+                    } else {
+                        if (!mDecoupleHalAutoSuspendModeFromDisplayConfig) {
+                            setHalAutoSuspendModeLocked(false);
+                        }
+                        if (!mDecoupleHalInteractiveModeFromDisplayConfig) {
+                            setHalInteractiveModeLocked(true);
+                        }
+                    }
+                }
+            }
+        }
+
+        @Override
+        public void acquireSuspendBlocker() {
+            mDisplaySuspendBlocker.acquire();
+        }
+
+        @Override
+        public void releaseSuspendBlocker() {
+            mDisplaySuspendBlocker.release();
+        }
+
+        @Override
+        public String toString() {
+            synchronized (this) {
+                return "state=" + Display.stateToString(mDisplayState);
+            }
+        }
     };
 
     private boolean shouldUseProximitySensorLocked() {
@@ -1734,11 +1754,11 @@
 
         // Disable auto-suspend if needed.
         if (!autoSuspend) {
-            if (mDecoupleAutoSuspendModeFromDisplayConfig) {
-                setAutoSuspendModeLocked(false);
+            if (mDecoupleHalAutoSuspendModeFromDisplayConfig) {
+                setHalAutoSuspendModeLocked(false);
             }
-            if (mDecoupleInteractiveModeFromDisplayConfig) {
-                setInteractiveModeLocked(true);
+            if (mDecoupleHalInteractiveModeFromDisplayConfig) {
+                setHalInteractiveModeLocked(true);
             }
         }
 
@@ -1764,11 +1784,11 @@
 
         // Enable auto-suspend if needed.
         if (autoSuspend) {
-            if (mDecoupleInteractiveModeFromDisplayConfig) {
-                setInteractiveModeLocked(false);
+            if (mDecoupleHalInteractiveModeFromDisplayConfig) {
+                setHalInteractiveModeLocked(false);
             }
-            if (mDecoupleAutoSuspendModeFromDisplayConfig) {
-                setAutoSuspendModeLocked(true);
+            if (mDecoupleHalAutoSuspendModeFromDisplayConfig) {
+                setHalAutoSuspendModeLocked(true);
             }
         }
     }
@@ -1795,42 +1815,32 @@
         return false;
     }
 
-    private void setAutoSuspendModeLocked(boolean enable) {
-        if (enable != mAutoSuspendModeEnabled) {
+    private void setHalAutoSuspendModeLocked(boolean enable) {
+        if (enable != mHalAutoSuspendModeEnabled) {
             if (DEBUG) {
-                Slog.d(TAG, "Setting auto-suspend mode to " + enable);
+                Slog.d(TAG, "Setting HAL auto-suspend mode to " + enable);
             }
-            mAutoSuspendModeEnabled = enable;
+            mHalAutoSuspendModeEnabled = enable;
             nativeSetAutoSuspend(enable);
         }
     }
 
-    private void setInteractiveModeLocked(boolean enable) {
-        if (enable != mInteractiveModeEnabled) {
+    private void setHalInteractiveModeLocked(boolean enable) {
+        if (enable != mHalInteractiveModeEnabled) {
             if (DEBUG) {
-                Slog.d(TAG, "Setting interactive mode to " + enable);
+                Slog.d(TAG, "Setting HAL interactive mode to " + enable);
             }
-            mInteractiveModeEnabled = enable;
+            mHalInteractiveModeEnabled = enable;
             nativeSetInteractive(enable);
         }
     }
 
-    private boolean isScreenOnInternal() {
+    private boolean isInteractiveInternal() {
         synchronized (mLock) {
-            // XXX This is a temporary hack to let certain parts of the system pretend the
-            // screen is still on even when dozing and we would normally want to report
-            // screen off.  Will be removed when the window manager is modified to use
-            // the true blanking state of the display.
-            return isScreenOnLocked()
-                    || mWakefulness == WAKEFULNESS_DOZING;
+            return mInteractive;
         }
     }
 
-    private boolean isScreenOnLocked() {
-        return mWakefulness == WAKEFULNESS_AWAKE
-                || mWakefulness == WAKEFULNESS_DREAMING;
-    }
-
     private void handleBatteryStateChangedLocked() {
         mDirty |= DIRTY_BATTERY_STATE;
         updatePowerStateLocked();
@@ -2046,12 +2056,12 @@
     private void dumpInternal(PrintWriter pw) {
         pw.println("POWER MANAGER (dumpsys power)\n");
 
-        final DisplayPowerController dpc;
         final WirelessChargerDetector wcd;
         synchronized (mLock) {
             pw.println("Power Manager State:");
             pw.println("  mDirty=0x" + Integer.toHexString(mDirty));
             pw.println("  mWakefulness=" + wakefulnessToString(mWakefulness));
+            pw.println("  mInteractive=" + mInteractive);
             pw.println("  mIsPowered=" + mIsPowered);
             pw.println("  mPlugType=" + mPlugType);
             pw.println("  mBatteryLevel=" + mBatteryLevel);
@@ -2061,8 +2071,8 @@
             pw.println("  mProximityPositive=" + mProximityPositive);
             pw.println("  mBootCompleted=" + mBootCompleted);
             pw.println("  mSystemReady=" + mSystemReady);
-            pw.println("  mAutoSuspendModeEnabled=" + mAutoSuspendModeEnabled);
-            pw.println("  mInteactiveModeEnabled=" + mInteractiveModeEnabled);
+            pw.println("  mHalAutoSuspendModeEnabled=" + mHalAutoSuspendModeEnabled);
+            pw.println("  mHalInteractiveModeEnabled=" + mHalInteractiveModeEnabled);
             pw.println("  mWakeLockSummary=0x" + Integer.toHexString(mWakeLockSummary));
             pw.println("  mUserActivitySummary=0x" + Integer.toHexString(mUserActivitySummary));
             pw.println("  mRequestWaitForNegativeProximity=" + mRequestWaitForNegativeProximity);
@@ -2070,10 +2080,6 @@
             pw.println("  mSandmanSummoned=" + mSandmanSummoned);
             pw.println("  mLastWakeTime=" + TimeUtils.formatUptime(mLastWakeTime));
             pw.println("  mLastSleepTime=" + TimeUtils.formatUptime(mLastSleepTime));
-            pw.println("  mSendWakeUpFinishedNotificationWhenReady="
-                    + mSendWakeUpFinishedNotificationWhenReady);
-            pw.println("  mSendGoToSleepFinishedNotificationWhenReady="
-                    + mSendGoToSleepFinishedNotificationWhenReady);
             pw.println("  mLastUserActivityTime=" + TimeUtils.formatUptime(mLastUserActivityTime));
             pw.println("  mLastUserActivityTimeNoChangeLights="
                     + TimeUtils.formatUptime(mLastUserActivityTimeNoChangeLights));
@@ -2083,10 +2089,10 @@
 
             pw.println();
             pw.println("Settings and Configuration:");
-            pw.println("  mDecoupleAutoSuspendModeFromDisplayConfig="
-                    + mDecoupleAutoSuspendModeFromDisplayConfig);
-            pw.println("  mDecoupleInteractiveModeFromDisplayConfig="
-                    + mDecoupleInteractiveModeFromDisplayConfig);
+            pw.println("  mDecoupleHalAutoSuspendModeFromDisplayConfig="
+                    + mDecoupleHalAutoSuspendModeFromDisplayConfig);
+            pw.println("  mDecoupleHalInteractiveModeFromDisplayConfig="
+                    + mDecoupleHalInteractiveModeFromDisplayConfig);
             pw.println("  mWakeUpWhenPluggedOrUnpluggedConfig="
                     + mWakeUpWhenPluggedOrUnpluggedConfig);
             pw.println("  mSuspendWhenScreenOffDueToProximityConfig="
@@ -2151,16 +2157,11 @@
             pw.println("Screen On Blocker: " + mScreenOnBlocker);
 
             pw.println();
-            pw.println("Display Blanker: " + mDisplayBlanker);
+            pw.println("Display Power: " + mDisplayPowerCallbacks);
 
-            dpc = mDisplayPowerController;
             wcd = mWirelessChargerDetector;
         }
 
-        if (dpc != null) {
-            dpc.dump(pw);
-        }
-
         if (wcd != null) {
             wcd.dump(pw);
         }
@@ -2498,53 +2499,23 @@
         }
     }
 
-    private final class DisplayBlankerImpl implements DisplayBlanker {
-        private boolean mBlanked;
-
-        @Override
-        public void blankAllDisplays() {
-            synchronized (this) {
-                mBlanked = true;
-                mDisplayManagerInternal.blankAllDisplaysFromPowerManager();
-                if (!mDecoupleInteractiveModeFromDisplayConfig) {
-                    setInteractiveModeLocked(false);
-                }
-                if (!mDecoupleAutoSuspendModeFromDisplayConfig) {
-                    setAutoSuspendModeLocked(true);
-                }
-            }
-        }
-
-        @Override
-        public void unblankAllDisplays() {
-            synchronized (this) {
-                if (!mDecoupleAutoSuspendModeFromDisplayConfig) {
-                    setAutoSuspendModeLocked(false);
-                }
-                if (!mDecoupleInteractiveModeFromDisplayConfig) {
-                    setInteractiveModeLocked(true);
-                }
-                mDisplayManagerInternal.unblankAllDisplaysFromPowerManager();
-                mBlanked = false;
-            }
-        }
-
-        @Override
-        public String toString() {
-            synchronized (this) {
-                return "blanked=" + mBlanked;
-            }
-        }
-    }
-
     private final class BinderService extends IPowerManager.Stub {
         @Override // Binder call
         public void acquireWakeLockWithUid(IBinder lock, int flags, String tag,
                 String packageName, int uid) {
+            if (uid < 0) {
+                uid = Binder.getCallingUid();
+            }
             acquireWakeLock(lock, flags, tag, packageName, new WorkSource(uid), null);
         }
 
         @Override // Binder call
+        public void powerHint(int hintId, int data) {
+            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
+            nativeSendPowerHint(hintId, data);
+        }
+
+        @Override // Binder call
         public void acquireWakeLock(IBinder lock, int flags, String tag, String packageName,
                 WorkSource ws, String historyTag) {
             if (lock == null) {
@@ -2722,10 +2693,10 @@
         }
 
         @Override // Binder call
-        public boolean isScreenOn() {
+        public boolean isInteractive() {
             final long ident = Binder.clearCallingIdentity();
             try {
-                return isScreenOnInternal();
+                return isInteractiveInternal();
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -2864,7 +2835,7 @@
          *
          * @param adj The overridden brightness, or Float.NaN to disable the override.
          *
-         * @see Settings.System#SCREEN_AUTO_BRIGHTNESS_ADJ
+         * @see android.provider.Settings.System#SCREEN_AUTO_BRIGHTNESS_ADJ
          */
         @Override // Binder call
         public void setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(float adj) {
diff --git a/services/core/java/com/android/server/power/RampAnimator.java b/services/core/java/com/android/server/power/RampAnimator.java
deleted file mode 100644
index 4a4f080..0000000
--- a/services/core/java/com/android/server/power/RampAnimator.java
+++ /dev/null
@@ -1,137 +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.
- */
-
-package com.android.server.power;
-
-import android.animation.ValueAnimator;
-import android.util.IntProperty;
-import android.view.Choreographer;
-
-/**
- * A custom animator that progressively updates a property value at
- * a given variable rate until it reaches a particular target value.
- */
-final class RampAnimator<T> {
-    private final T mObject;
-    private final IntProperty<T> mProperty;
-    private final Choreographer mChoreographer;
-
-    private int mCurrentValue;
-    private int mTargetValue;
-    private int mRate;
-
-    private boolean mAnimating;
-    private float mAnimatedValue; // higher precision copy of mCurrentValue
-    private long mLastFrameTimeNanos;
-
-    private boolean mFirstTime = true;
-
-    public RampAnimator(T object, IntProperty<T> property) {
-        mObject = object;
-        mProperty = property;
-        mChoreographer = Choreographer.getInstance();
-    }
-
-    /**
-     * Starts animating towards the specified value.
-     *
-     * If this is the first time the property is being set, the value jumps
-     * directly to the target.
-     *
-     * @param target The target value.
-     * @param rate The convergence rate, in units per second.
-     * @return True if the target differs from the previous target.
-     */
-    public boolean animateTo(int target, int rate) {
-        // Immediately jump to the target the first time.
-        if (mFirstTime) {
-            mFirstTime = false;
-            mProperty.setValue(mObject, target);
-            mCurrentValue = target;
-            return true;
-        }
-
-        // Adjust the rate based on the closest target.
-        // If a faster rate is specified, then use the new rate so that we converge
-        // more rapidly based on the new request.
-        // If a slower rate is specified, then use the new rate only if the current
-        // value is somewhere in between the new and the old target meaning that
-        // we will be ramping in a different direction to get there.
-        // Otherwise, continue at the previous rate.
-        if (!mAnimating
-                || rate > mRate
-                || (target <= mCurrentValue && mCurrentValue <= mTargetValue)
-                || (mTargetValue <= mCurrentValue && mCurrentValue <= target)) {
-            mRate = rate;
-        }
-
-        final boolean changed = (mTargetValue != target);
-        mTargetValue = target;
-
-        // Start animating.
-        if (!mAnimating && target != mCurrentValue) {
-            mAnimating = true;
-            mAnimatedValue = mCurrentValue;
-            mLastFrameTimeNanos = System.nanoTime();
-            postCallback();
-        }
-
-        return changed;
-    }
-
-    private void postCallback() {
-        mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mCallback, null);
-    }
-
-    private final Runnable mCallback = new Runnable() {
-        @Override // Choreographer callback
-        public void run() {
-            final long frameTimeNanos = mChoreographer.getFrameTimeNanos();
-            final float timeDelta = (frameTimeNanos - mLastFrameTimeNanos)
-                    * 0.000000001f;
-            mLastFrameTimeNanos = frameTimeNanos;
-
-            // Advance the animated value towards the target at the specified rate
-            // and clamp to the target. This gives us the new current value but
-            // we keep the animated value around to allow for fractional increments
-            // towards the target.
-            final float scale = ValueAnimator.getDurationScale();
-            if (scale == 0) {
-                // Animation off.
-                mAnimatedValue = mTargetValue;
-            } else {
-                final float amount = timeDelta * mRate / scale;
-                if (mTargetValue > mCurrentValue) {
-                    mAnimatedValue = Math.min(mAnimatedValue + amount, mTargetValue);
-                } else {
-                    mAnimatedValue = Math.max(mAnimatedValue - amount, mTargetValue);
-                }
-            }
-            final int oldCurrentValue = mCurrentValue;
-            mCurrentValue = Math.round(mAnimatedValue);
-
-            if (oldCurrentValue != mCurrentValue) {
-                mProperty.setValue(mObject, mCurrentValue);
-            }
-
-            if (mTargetValue != mCurrentValue) {
-                postCallback();
-            } else {
-                mAnimating = false;
-            }
-        }
-    };
-}
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index 4ce02c1..e4b5f3a 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -535,6 +535,17 @@
     }
 
     @Override
+    public void onPanelHidden() throws RemoteException {
+        enforceStatusBarService();
+        long identity = Binder.clearCallingIdentity();
+        try {
+            mNotificationDelegate.onPanelHidden();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public void onNotificationClick(String pkg, String tag, int id, int userId) {
         enforceStatusBarService();
         final int callingUid = Binder.getCallingUid();
diff --git a/services/core/java/com/android/server/trust/TrustAgentWrapper.java b/services/core/java/com/android/server/trust/TrustAgentWrapper.java
new file mode 100644
index 0000000..a83fa87
--- /dev/null
+++ b/services/core/java/com/android/server/trust/TrustAgentWrapper.java
@@ -0,0 +1,166 @@
+/*
+ * 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.android.server.trust;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.util.Log;
+import android.util.Slog;
+import android.service.trust.ITrustAgentService;
+import android.service.trust.ITrustAgentServiceCallback;
+
+/**
+ * A wrapper around a TrustAgentService interface. Coordinates communication between
+ * TrustManager and the actual TrustAgent.
+ */
+public class TrustAgentWrapper {
+    private static final boolean DEBUG = false;
+    private static final String TAG = "TrustAgentWrapper";
+
+    private static final int MSG_ENABLE_TRUST = 1;
+    private static final int MSG_REVOKE_TRUST = 2;
+    private static final int MSG_TRUST_TIMEOUT = 3;
+
+    private final TrustManagerService mTrustManagerService;
+    private final int mUserId;
+    private final Context mContext;
+    private final ComponentName mName;
+
+    private ITrustAgentService mTrustAgentService;
+
+    // Trust state
+    private boolean mTrusted;
+    private String mMessage;
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_ENABLE_TRUST:
+                    mTrusted = true;
+                    mMessage = (String) msg.obj;
+                    boolean initiatedByUser = msg.arg1 != 0;
+                    // TODO: Handle handle user initiated trust changes.
+                    mTrustManagerService.updateTrust(mUserId);
+                    break;
+                case MSG_TRUST_TIMEOUT:
+                    if (DEBUG) Slog.v(TAG, "Trust timed out : " + mName.flattenToShortString());
+                    // Fall through.
+                case MSG_REVOKE_TRUST:
+                    mTrusted = false;
+                    mMessage = null;
+                    mTrustManagerService.updateTrust(mUserId);
+                    break;
+            }
+        }
+    };
+
+    private ITrustAgentServiceCallback mCallback = new ITrustAgentServiceCallback.Stub() {
+
+        public void enableTrust(String userMessage, long durationMs, boolean initiatedByUser) {
+            if (DEBUG) Slog.v(TAG, "enableTrust(" + userMessage + ", durationMs = " + durationMs
+                        + ", initiatedByUser = " + initiatedByUser + ")");
+
+            mHandler.obtainMessage(MSG_ENABLE_TRUST, initiatedByUser ? 1 : 0, 0, userMessage)
+                    .sendToTarget();
+            if (durationMs > 0) {
+                mHandler.removeMessages(MSG_TRUST_TIMEOUT);
+                mHandler.sendEmptyMessageDelayed(MSG_TRUST_TIMEOUT, durationMs);
+            }
+        }
+
+        public void revokeTrust() {
+            if (DEBUG) Slog.v(TAG, "revokeTrust()");
+            mHandler.sendEmptyMessage(MSG_REVOKE_TRUST);
+        }
+    };
+
+    private final ServiceConnection mConnection = new ServiceConnection() {
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            if (DEBUG) Log.v(TAG, "TrustAgent started : " + name.flattenToString());
+            mTrustAgentService = ITrustAgentService.Stub.asInterface(service);
+            setCallback(mCallback);
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            if (DEBUG) Log.v(TAG, "TrustAgent disconnected : " + name.flattenToShortString());
+            mTrustAgentService = null;
+            mHandler.sendEmptyMessage(MSG_REVOKE_TRUST);
+        }
+    };
+
+
+    public TrustAgentWrapper(Context context, TrustManagerService trustManagerService,
+            Intent intent, UserHandle user) {
+        mContext = context;
+        mTrustManagerService = trustManagerService;
+        mUserId = user.getIdentifier();
+        mName = intent.getComponent();
+        if (!context.bindServiceAsUser(intent, mConnection, Context.BIND_AUTO_CREATE, user)) {
+            if (DEBUG) Log.v(TAG, "can't bind to TrustAgent " + mName.flattenToShortString());
+            // TODO: retry somehow?
+        }
+    }
+
+    private void onError(Exception e) {
+        Slog.w(TAG , "Remote Exception", e);
+    }
+
+    /**
+     * @see android.service.trust.TrustAgentService#onUnlockAttempt(boolean)
+     */
+    public void onUnlockAttempt(boolean successful) {
+        try {
+            if (mTrustAgentService != null) mTrustAgentService.onUnlockAttempt(successful);
+        } catch (RemoteException e) {
+            onError(e);
+        }
+    }
+
+    private void setCallback(ITrustAgentServiceCallback callback) {
+        try {
+            if (mTrustAgentService != null) {
+                mTrustAgentService.setCallback(callback);
+            }
+        } catch (RemoteException e) {
+            onError(e);
+        }
+    }
+
+    public boolean isTrusted() {
+        return mTrusted;
+    }
+
+    public String getMessage() {
+        return mMessage;
+    }
+
+    public void unbind() {
+        if (DEBUG) Log.v(TAG, "TrustAgent unbound : " + mName.flattenToShortString());
+        mContext.unbindService(mConnection);
+    }
+}
diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java
new file mode 100644
index 0000000..a2a49c9
--- /dev/null
+++ b/services/core/java/com/android/server/trust/TrustManagerService.java
@@ -0,0 +1,387 @@
+/*
+ * 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.android.server.trust;
+
+import com.android.internal.content.PackageMonitor;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.server.SystemService;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import android.Manifest;
+import android.app.trust.ITrustListener;
+import android.app.trust.ITrustManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.content.res.XmlResourceParser;
+import android.graphics.drawable.Drawable;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.service.trust.TrustAgentService;
+import android.util.ArraySet;
+import android.util.AttributeSet;
+import android.util.Slog;
+import android.util.Xml;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Manages trust agents and trust listeners.
+ *
+ * It is responsible for binding to the enabled {@link android.service.trust.TrustAgentService}s
+ * of each user and notifies them about events that are relevant to them.
+ * It start and stops them based on the value of
+ * {@link com.android.internal.widget.LockPatternUtils#getEnabledTrustAgents(int)}.
+ *
+ * It also keeps a set of {@link android.app.trust.ITrustListener}s that are notified whenever the
+ * trust state changes for any user.
+ *
+ * Trust state and the setting of enabled agents is kept per user and each user has its own
+ * instance of a {@link android.service.trust.TrustAgentService}.
+ */
+public class TrustManagerService extends SystemService {
+
+    private static final boolean DEBUG = false;
+    private static final String TAG = "TrustManagerService";
+
+    private static final Intent TRUST_AGENT_INTENT =
+            new Intent(TrustAgentService.SERVICE_INTERFACE);
+
+    private static final int MSG_REGISTER_LISTENER = 1;
+    private static final int MSG_UNREGISTER_LISTENER = 2;
+    private static final int MSG_DISPATCH_UNLOCK_ATTEMPT = 3;
+    private static final int MSG_ENABLED_AGENTS_CHANGED = 4;
+
+    private final ArraySet<AgentInfo> mActiveAgents = new ArraySet<AgentInfo>();
+    private final ArrayList<ITrustListener> mTrustListeners = new ArrayList<ITrustListener>();
+    private final Context mContext;
+
+    private UserManager mUserManager;
+
+    /**
+     * Cache for {@link #refreshAgentList()}
+     */
+    private final ArraySet<AgentInfo> mObsoleteAgents = new ArraySet<AgentInfo>();
+
+
+    public TrustManagerService(Context context) {
+        super(context);
+        mContext = context;
+        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+    }
+
+    @Override
+    public void onStart() {
+        publishBinderService(Context.TRUST_SERVICE, mService);
+    }
+
+    @Override
+    public void onBootPhase(int phase) {
+        if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY && !isSafeMode()) {
+            // Listen for package changes
+            mPackageMonitor.register(mContext, mHandler.getLooper(), UserHandle.ALL, true);
+            refreshAgentList();
+        }
+    }
+
+    // Agent management
+
+    private static final class AgentInfo {
+        CharSequence label;
+        Drawable icon;
+        ComponentName component; // service that implements ITrustAgent
+        ComponentName settings; // setting to launch to modify agent.
+        TrustAgentWrapper agent;
+        int userId;
+
+        @Override
+        public boolean equals(Object other) {
+            if (!(other instanceof AgentInfo)) {
+                return false;
+            }
+            AgentInfo o = (AgentInfo) other;
+            return component.equals(o.component) && userId == o.userId;
+        }
+
+        @Override
+        public int hashCode() {
+            return component.hashCode() * 31 + userId;
+        }
+    }
+
+    private void updateTrustAll() {
+        List<UserInfo> userInfos = mUserManager.getUsers(true /* excludeDying */);
+        for (UserInfo userInfo : userInfos) {
+            updateTrust(userInfo.id);
+        }
+    }
+
+    public void updateTrust(int userId) {
+        dispatchOnTrustChanged(aggregateIsTrusted(userId), userId);
+    }
+
+    protected void refreshAgentList() {
+        if (DEBUG) Slog.d(TAG, "refreshAgentList()");
+        PackageManager pm = mContext.getPackageManager();
+
+        List<UserInfo> userInfos = mUserManager.getUsers(true /* excludeDying */);
+        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
+
+        mObsoleteAgents.clear();
+        mObsoleteAgents.addAll(mActiveAgents);
+
+        for (UserInfo userInfo : userInfos) {
+            List<ComponentName> enabledAgents = lockPatternUtils.getEnabledTrustAgents(userInfo.id);
+            if (enabledAgents == null) {
+                continue;
+            }
+            List<ResolveInfo> resolveInfos = pm.queryIntentServicesAsUser(TRUST_AGENT_INTENT,
+                    PackageManager.GET_META_DATA, userInfo.id);
+            for (ResolveInfo resolveInfo : resolveInfos) {
+                if (resolveInfo.serviceInfo == null) continue;
+                ComponentName name = getComponentName(resolveInfo);
+                if (!enabledAgents.contains(name)) continue;
+
+                AgentInfo agentInfo = new AgentInfo();
+                agentInfo.component = name;
+                agentInfo.userId = userInfo.id;
+                if (!mActiveAgents.contains(agentInfo)) {
+                    agentInfo.label = resolveInfo.loadLabel(pm);
+                    agentInfo.icon = resolveInfo.loadIcon(pm);
+                    agentInfo.settings = getSettingsComponentName(pm, resolveInfo);
+                    agentInfo.agent = new TrustAgentWrapper(mContext, this,
+                            new Intent().setComponent(name), userInfo.getUserHandle());
+                    mActiveAgents.add(agentInfo);
+                } else {
+                    mObsoleteAgents.remove(agentInfo);
+                }
+            }
+        }
+
+        boolean trustMayHaveChanged = false;
+        for (int i = 0; i < mObsoleteAgents.size(); i++) {
+            AgentInfo info = mActiveAgents.valueAt(i);
+            if (info.agent.isTrusted()) {
+                trustMayHaveChanged = true;
+            }
+            info.agent.unbind();
+            mActiveAgents.remove(info);
+        }
+
+        if (trustMayHaveChanged) {
+            updateTrustAll();
+        }
+    }
+
+    private ComponentName getSettingsComponentName(PackageManager pm, ResolveInfo resolveInfo) {
+        if (resolveInfo == null || resolveInfo.serviceInfo == null
+                || resolveInfo.serviceInfo.metaData == null) return null;
+        String cn = null;
+        XmlResourceParser parser = null;
+        Exception caughtException = null;
+        try {
+            parser = resolveInfo.serviceInfo.loadXmlMetaData(pm,
+                    TrustAgentService.TRUST_AGENT_META_DATA);
+            if (parser == null) {
+                Slog.w(TAG, "Can't find " + TrustAgentService.TRUST_AGENT_META_DATA + " meta-data");
+                return null;
+            }
+            Resources res = pm.getResourcesForApplication(resolveInfo.serviceInfo.applicationInfo);
+            AttributeSet attrs = Xml.asAttributeSet(parser);
+            int type;
+            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                    && type != XmlPullParser.START_TAG) {
+                // Drain preamble.
+            }
+            String nodeName = parser.getName();
+            if (!"trust_agent".equals(nodeName)) {
+                Slog.w(TAG, "Meta-data does not start with trust_agent tag");
+                return null;
+            }
+            TypedArray sa = res
+                    .obtainAttributes(attrs, com.android.internal.R.styleable.TrustAgent);
+            cn = sa.getString(com.android.internal.R.styleable.TrustAgent_settingsActivity);
+            sa.recycle();
+        } catch (PackageManager.NameNotFoundException e) {
+            caughtException = e;
+        } catch (IOException e) {
+            caughtException = e;
+        } catch (XmlPullParserException e) {
+            caughtException = e;
+        } finally {
+            if (parser != null) parser.close();
+        }
+        if (caughtException != null) {
+            Slog.w(TAG, "Error parsing : " + resolveInfo.serviceInfo.packageName, caughtException);
+            return null;
+        }
+        if (cn == null) {
+            return null;
+        }
+        if (cn.indexOf('/') < 0) {
+            cn = resolveInfo.serviceInfo.packageName + "/" + cn;
+        }
+        return ComponentName.unflattenFromString(cn);
+    }
+
+    private ComponentName getComponentName(ResolveInfo resolveInfo) {
+        if (resolveInfo == null || resolveInfo.serviceInfo == null) return null;
+        return new ComponentName(resolveInfo.serviceInfo.packageName, resolveInfo.serviceInfo.name);
+    }
+
+    // Agent dispatch and aggregation
+
+    private boolean aggregateIsTrusted(int userId) {
+        for (int i = 0; i < mActiveAgents.size(); i++) {
+            AgentInfo info = mActiveAgents.valueAt(i);
+            if (info.userId == userId) {
+                if (info.agent.isTrusted()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    private void dispatchUnlockAttempt(boolean successful, int userId) {
+        for (int i = 0; i < mActiveAgents.size(); i++) {
+            AgentInfo info = mActiveAgents.valueAt(i);
+            if (info.userId == userId) {
+                info.agent.onUnlockAttempt(successful);
+            }
+        }
+    }
+
+    // Listeners
+
+    private void addListener(ITrustListener listener) {
+        for (int i = 0; i < mTrustListeners.size(); i++) {
+            if (mTrustListeners.get(i).asBinder() == listener.asBinder()) {
+                return;
+            }
+        }
+        mTrustListeners.add(listener);
+    }
+
+    private void removeListener(ITrustListener listener) {
+        for (int i = 0; i < mTrustListeners.size(); i++) {
+            if (mTrustListeners.get(i).asBinder() == listener.asBinder()) {
+                mTrustListeners.get(i);
+                return;
+            }
+        }
+    }
+
+    private void dispatchOnTrustChanged(boolean enabled, int userId) {
+        for (int i = 0; i < mTrustListeners.size(); i++) {
+            try {
+                mTrustListeners.get(i).onTrustChanged(enabled, userId);
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Exception while notifying TrustListener. Removing listener.", e);
+                mTrustListeners.get(i);
+                i--;
+            }
+        }
+    }
+
+    // Plumbing
+
+    private final IBinder mService = new ITrustManager.Stub() {
+        @Override
+        public void reportUnlockAttempt(boolean authenticated, int userId) throws RemoteException {
+            enforceReportPermission();
+            mHandler.obtainMessage(MSG_DISPATCH_UNLOCK_ATTEMPT, authenticated ? 1 : 0, userId)
+                    .sendToTarget();
+        }
+
+        @Override
+        public void reportEnabledTrustAgentsChanged(int userId) throws RemoteException {
+            enforceReportPermission();
+            // coalesce refresh messages.
+            mHandler.removeMessages(MSG_ENABLED_AGENTS_CHANGED);
+            mHandler.sendEmptyMessage(MSG_ENABLED_AGENTS_CHANGED);
+        }
+
+        @Override
+        public void registerTrustListener(ITrustListener trustListener) throws RemoteException {
+            enforceListenerPermission();
+            mHandler.obtainMessage(MSG_REGISTER_LISTENER, trustListener).sendToTarget();
+        }
+
+        @Override
+        public void unregisterTrustListener(ITrustListener trustListener) throws RemoteException {
+            enforceListenerPermission();
+            mHandler.obtainMessage(MSG_UNREGISTER_LISTENER, trustListener).sendToTarget();
+        }
+
+        private void enforceReportPermission() {
+            mContext.enforceCallingPermission(Manifest.permission.ACCESS_KEYGUARD_SECURE_STORAGE,
+                    "reporting trust events");
+        }
+
+        private void enforceListenerPermission() {
+            mContext.enforceCallingPermission(Manifest.permission.TRUST_LISTENER,
+                    "register trust listener");
+        }
+    };
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_REGISTER_LISTENER:
+                    addListener((ITrustListener) msg.obj);
+                    break;
+                case MSG_UNREGISTER_LISTENER:
+                    removeListener((ITrustListener) msg.obj);
+                    break;
+                case MSG_DISPATCH_UNLOCK_ATTEMPT:
+                    dispatchUnlockAttempt(msg.arg1 != 0, msg.arg2);
+                    break;
+                case MSG_ENABLED_AGENTS_CHANGED:
+                    refreshAgentList();
+                    break;
+            }
+        }
+    };
+
+    private final PackageMonitor mPackageMonitor = new PackageMonitor() {
+        @Override
+        public void onSomePackagesChanged() {
+            refreshAgentList();
+        }
+
+        @Override
+        public boolean onPackageChanged(String packageName, int uid, String[] components) {
+            // We're interested in all changes, even if just some components get enabled / disabled.
+            return true;
+        }
+    };
+}
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
new file mode 100644
index 0000000..16ed7fe
--- /dev/null
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -0,0 +1,680 @@
+/*
+ * 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.android.server.tv;
+
+import android.app.ActivityManager;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.Process;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.tv.ITvInputClient;
+import android.tv.ITvInputManager;
+import android.tv.ITvInputService;
+import android.tv.ITvInputServiceCallback;
+import android.tv.ITvInputSession;
+import android.tv.ITvInputSessionCallback;
+import android.tv.TvInputInfo;
+import android.tv.TvInputService;
+import android.util.ArrayMap;
+import android.util.Log;
+import android.util.SparseArray;
+import android.view.Surface;
+
+import com.android.internal.content.PackageMonitor;
+import com.android.server.SystemService;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/** This class provides a system service that manages television inputs. */
+public final class TvInputManagerService extends SystemService {
+    // STOPSHIP: Turn debugging off.
+    private static final boolean DEBUG = true;
+    private static final String TAG = "TvInputManagerService";
+
+    private final Context mContext;
+
+    // A global lock.
+    private final Object mLock = new Object();
+
+    // ID of the current user.
+    private int mCurrentUserId = UserHandle.USER_OWNER;
+
+    // A map from user id to UserState.
+    private final SparseArray<UserState> mUserStates = new SparseArray<UserState>();
+
+    public TvInputManagerService(Context context) {
+        super(context);
+        mContext = context;
+        registerBroadcastReceivers();
+        synchronized (mLock) {
+            mUserStates.put(mCurrentUserId, new UserState());
+            buildTvInputListLocked(mCurrentUserId);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        publishBinderService(Context.TV_INPUT_SERVICE, new BinderService());
+    }
+
+    private void registerBroadcastReceivers() {
+        PackageMonitor monitor = new PackageMonitor() {
+            @Override
+            public void onSomePackagesChanged() {
+                synchronized (mLock) {
+                    buildTvInputListLocked(mCurrentUserId);
+                }
+            }
+        };
+        monitor.register(mContext, null, UserHandle.ALL, true);
+
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(Intent.ACTION_USER_SWITCHED);
+        intentFilter.addAction(Intent.ACTION_USER_REMOVED);
+        mContext.registerReceiverAsUser(new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                String action = intent.getAction();
+                if (Intent.ACTION_USER_SWITCHED.equals(action)) {
+                    switchUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0));
+                } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
+                    removeUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0));
+                }
+            }
+        }, UserHandle.ALL, intentFilter, null, null);
+    }
+
+    private void buildTvInputListLocked(int userId) {
+        UserState userState = getUserStateLocked(userId);
+        userState.inputList.clear();
+
+        PackageManager pm = mContext.getPackageManager();
+        List<ResolveInfo> services = pm.queryIntentServices(
+                new Intent(TvInputService.SERVICE_INTERFACE), PackageManager.GET_SERVICES);
+        for (ResolveInfo ri : services) {
+            ServiceInfo si = ri.serviceInfo;
+            if (!android.Manifest.permission.BIND_TV_INPUT.equals(si.permission)) {
+                Log.w(TAG, "Skipping TV input " + si.name + ": it does not require the permission "
+                        + android.Manifest.permission.BIND_TV_INPUT);
+                continue;
+            }
+            TvInputInfo info = new TvInputInfo(ri);
+            userState.inputList.add(info);
+        }
+    }
+
+    private void switchUser(int userId) {
+        synchronized (mLock) {
+            if (mCurrentUserId == userId) {
+                return;
+            }
+            // final int oldUserId = mCurrentUserId;
+            // TODO: Release services and sessions in the old user state, if needed.
+            mCurrentUserId = userId;
+
+            UserState userState = mUserStates.get(userId);
+            if (userState == null) {
+                userState = new UserState();
+            }
+            mUserStates.put(userId, userState);
+            buildTvInputListLocked(userId);
+        }
+    }
+
+    private void removeUser(int userId) {
+        synchronized (mLock) {
+            UserState userState = mUserStates.get(userId);
+            if (userState == null) {
+                return;
+            }
+            // Release created sessions.
+            for (SessionState state : userState.sessionStateMap.values()) {
+                if (state.session != null) {
+                    try {
+                        state.session.release();
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in release", e);
+                    }
+                }
+            }
+            userState.sessionStateMap.clear();
+
+            // Unregister all callbacks and unbind all services.
+            for (ServiceState serviceState : userState.serviceStateMap.values()) {
+                if (serviceState.callback != null) {
+                    try {
+                        serviceState.service.unregisterCallback(serviceState.callback);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in unregisterCallback", e);
+                    }
+                }
+                serviceState.clients.clear();
+                mContext.unbindService(serviceState.connection);
+            }
+            userState.serviceStateMap.clear();
+
+            mUserStates.remove(userId);
+        }
+    }
+
+    private UserState getUserStateLocked(int userId) {
+        UserState userState = mUserStates.get(userId);
+        if (userState == null) {
+            throw new IllegalStateException("User state not found for user ID " + userId);
+        }
+        return userState;
+    }
+
+    private ServiceState getServiceStateLocked(ComponentName name, int userId) {
+        UserState userState = getUserStateLocked(userId);
+        ServiceState serviceState = userState.serviceStateMap.get(name);
+        if (serviceState == null) {
+            throw new IllegalStateException("Service state not found for " + name + " (userId=" +
+                    userId + ")");
+        }
+        return serviceState;
+    }
+
+    private ITvInputSession getSessionLocked(IBinder sessionToken, int callingUid, int userId) {
+        UserState userState = getUserStateLocked(userId);
+        SessionState sessionState = userState.sessionStateMap.get(sessionToken);
+        if (sessionState == null) {
+            throw new IllegalArgumentException("Session state not found for token " + sessionToken);
+        }
+        // Only the application that requested this session or the system can access it.
+        if (callingUid != Process.SYSTEM_UID && callingUid != sessionState.callingUid) {
+            throw new SecurityException("Illegal access to the session with token " + sessionToken
+                    + " from uid " + callingUid);
+        }
+        ITvInputSession session = sessionState.session;
+        if (session == null) {
+            throw new IllegalStateException("Session not yet created for token " + sessionToken);
+        }
+        return session;
+    }
+
+    private int resolveCallingUserId(int callingPid, int callingUid, int requestedUserId,
+            String methodName) {
+        return ActivityManager.handleIncomingUser(callingPid, callingUid, requestedUserId, false,
+                false, methodName, null);
+    }
+
+    private void updateServiceConnectionLocked(ComponentName name, int userId) {
+        UserState userState = getUserStateLocked(userId);
+        ServiceState serviceState = userState.serviceStateMap.get(name);
+        if (serviceState == null) {
+            return;
+        }
+        boolean isStateEmpty = serviceState.clients.size() == 0
+                && serviceState.sessionStateMap.size() == 0;
+        if (serviceState.service == null && !isStateEmpty && userId == mCurrentUserId) {
+            // This means that the service is not yet connected but its state indicates that we
+            // have pending requests. Then, connect the service.
+            if (serviceState.bound) {
+                // We have already bound to the service so we don't try to bind again until after we
+                // unbind later on.
+                return;
+            }
+            if (DEBUG) {
+                Log.i(TAG, "bindServiceAsUser(name=" + name.getClassName() + ", userId=" + userId
+                        + ")");
+            }
+            Intent i = new Intent(TvInputService.SERVICE_INTERFACE).setComponent(name);
+            mContext.bindServiceAsUser(i, serviceState.connection, Context.BIND_AUTO_CREATE,
+                    new UserHandle(userId));
+            serviceState.bound = true;
+        } else if (serviceState.service != null && isStateEmpty) {
+            // This means that the service is already connected but its state indicates that we have
+            // nothing to do with it. Then, disconnect the service.
+            if (DEBUG) {
+                Log.i(TAG, "unbindService(name=" + name.getClassName() + ")");
+            }
+            mContext.unbindService(serviceState.connection);
+            userState.serviceStateMap.remove(name);
+        }
+    }
+
+    private void createSessionInternalLocked(ITvInputService service, final IBinder sessionToken,
+            final SessionState sessionState, final int userId) {
+        if (DEBUG) {
+            Log.d(TAG, "createSessionInternalLocked(name=" + sessionState.name.getClassName()
+                    + ")");
+        }
+        // Set up a callback to send the session token.
+        ITvInputSessionCallback callback = new ITvInputSessionCallback.Stub() {
+            @Override
+            public void onSessionCreated(ITvInputSession session) {
+                if (DEBUG) {
+                    Log.d(TAG, "onSessionCreated(name=" + sessionState.name.getClassName() + ")");
+                }
+                synchronized (mLock) {
+                    sessionState.session = session;
+                    if (session == null) {
+                        removeSessionStateLocked(sessionToken, userId);
+                        sendSessionTokenToClientLocked(sessionState.client, sessionState.name, null,
+                                sessionState.seq, userId);
+                    } else {
+                        sendSessionTokenToClientLocked(sessionState.client, sessionState.name,
+                                sessionToken, sessionState.seq, userId);
+                    }
+                }
+            }
+        };
+
+        // Create a session. When failed, send a null token immediately.
+        try {
+            service.createSession(callback);
+        } catch (RemoteException e) {
+            Log.e(TAG, "error in createSession", e);
+            removeSessionStateLocked(sessionToken, userId);
+            sendSessionTokenToClientLocked(sessionState.client, sessionState.name, null,
+                    sessionState.seq, userId);
+        }
+    }
+
+    private void sendSessionTokenToClientLocked(ITvInputClient client, ComponentName name,
+            IBinder sessionToken, int seq, int userId) {
+        try {
+            client.onSessionCreated(name, sessionToken, seq);
+        } catch (RemoteException exception) {
+            Log.e(TAG, "error in onSessionCreated", exception);
+        }
+
+        if (sessionToken == null) {
+            // This means that the session creation failed. We might want to disconnect the service.
+            updateServiceConnectionLocked(name, userId);
+        }
+    }
+
+    private void removeSessionStateLocked(IBinder sessionToken, int userId) {
+        // Remove the session state from the global session state map of the current user.
+        UserState userState = getUserStateLocked(userId);
+        SessionState sessionState = userState.sessionStateMap.remove(sessionToken);
+
+        // Also remove the session state from the session state map of the current service.
+        ServiceState serviceState = userState.serviceStateMap.get(sessionState.name);
+        if (serviceState != null) {
+            serviceState.sessionStateMap.remove(sessionToken);
+        }
+        updateServiceConnectionLocked(sessionState.name, userId);
+    }
+
+    private final class BinderService extends ITvInputManager.Stub {
+        @Override
+        public List<TvInputInfo> getTvInputList(int userId) {
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(),
+                    Binder.getCallingUid(), userId, "getTvInputList");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    UserState userState = getUserStateLocked(resolvedUserId);
+                    return new ArrayList<TvInputInfo>(userState.inputList);
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public boolean getAvailability(final ITvInputClient client, final ComponentName name,
+                int userId) {
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(),
+                    Binder.getCallingUid(), userId, "getAvailability");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    UserState userState = getUserStateLocked(resolvedUserId);
+                    ServiceState serviceState = userState.serviceStateMap.get(name);
+                    if (serviceState != null) {
+                        // We already know the status of this input service. Return the cached
+                        // status.
+                        return serviceState.available;
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+            return false;
+        }
+
+        @Override
+        public void registerCallback(final ITvInputClient client, final ComponentName name,
+                int userId) {
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(),
+                    Binder.getCallingUid(), userId, "registerCallback");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    // Create a new service callback and add it to the callback map of the current
+                    // service.
+                    UserState userState = getUserStateLocked(resolvedUserId);
+                    ServiceState serviceState = userState.serviceStateMap.get(name);
+                    if (serviceState == null) {
+                        serviceState = new ServiceState(name, resolvedUserId);
+                        userState.serviceStateMap.put(name, serviceState);
+                    }
+                    IBinder iBinder = client.asBinder();
+                    if (!serviceState.clients.contains(iBinder)) {
+                        serviceState.clients.add(iBinder);
+                    }
+                    if (serviceState.service != null) {
+                        if (serviceState.callback != null) {
+                            // We already handled.
+                            return;
+                        }
+                        serviceState.callback = new ServiceCallback(resolvedUserId);
+                        try {
+                            serviceState.service.registerCallback(serviceState.callback);
+                        } catch (RemoteException e) {
+                            Log.e(TAG, "error in registerCallback", e);
+                        }
+                    } else {
+                        updateServiceConnectionLocked(name, resolvedUserId);
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public void unregisterCallback(ITvInputClient client, ComponentName name, int userId) {
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(),
+                    Binder.getCallingUid(), userId, "unregisterCallback");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    UserState userState = getUserStateLocked(resolvedUserId);
+                    ServiceState serviceState = userState.serviceStateMap.get(name);
+                    if (serviceState == null) {
+                        return;
+                    }
+
+                    // Remove this client from the client list and unregister the callback.
+                    serviceState.clients.remove(client.asBinder());
+                    if (!serviceState.clients.isEmpty()) {
+                        // We have other clients who want to keep the callback. Do this later.
+                        return;
+                    }
+                    if (serviceState.service == null || serviceState.callback == null) {
+                        return;
+                    }
+                    try {
+                        serviceState.service.unregisterCallback(serviceState.callback);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in unregisterCallback", e);
+                    } finally {
+                        serviceState.callback = null;
+                        updateServiceConnectionLocked(name, resolvedUserId);
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public void createSession(final ITvInputClient client, final ComponentName name,
+                int seq, int userId) {
+            final int callingUid = Binder.getCallingUid();
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
+                    userId, "createSession");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    // Create a new session token and a session state.
+                    IBinder sessionToken = new Binder();
+                    SessionState sessionState = new SessionState(name, client, seq, callingUid);
+                    sessionState.session = null;
+
+                    // Add them to the global session state map of the current user.
+                    UserState userState = getUserStateLocked(resolvedUserId);
+                    userState.sessionStateMap.put(sessionToken, sessionState);
+
+                    // Also, add them to the session state map of the current service.
+                    ServiceState serviceState = userState.serviceStateMap.get(name);
+                    if (serviceState == null) {
+                        serviceState = new ServiceState(name, resolvedUserId);
+                        userState.serviceStateMap.put(name, serviceState);
+                    }
+                    serviceState.sessionStateMap.put(sessionToken, sessionState);
+
+                    if (serviceState.service != null) {
+                        createSessionInternalLocked(serviceState.service, sessionToken,
+                                sessionState, resolvedUserId);
+                    } else {
+                        updateServiceConnectionLocked(name, resolvedUserId);
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public void releaseSession(IBinder sessionToken, int userId) {
+            final int callingUid = Binder.getCallingUid();
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
+                    userId, "releaseSession");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    // Release the session.
+                    try {
+                        getSessionLocked(sessionToken, callingUid, resolvedUserId).release();
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in release", e);
+                    }
+
+                    removeSessionStateLocked(sessionToken, resolvedUserId);
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public void setSurface(IBinder sessionToken, Surface surface, int userId) {
+            final int callingUid = Binder.getCallingUid();
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
+                    userId, "setSurface");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    try {
+                        getSessionLocked(sessionToken, callingUid, resolvedUserId).setSurface(
+                                surface);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in setSurface", e);
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public void setVolume(IBinder sessionToken, float volume, int userId) {
+            final int callingUid = Binder.getCallingUid();
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
+                    userId, "setVolume");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    try {
+                        getSessionLocked(sessionToken, callingUid, resolvedUserId).setVolume(
+                                volume);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in setVolume", e);
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+
+        @Override
+        public void tune(IBinder sessionToken, final Uri channelUri, int userId) {
+            final int callingUid = Binder.getCallingUid();
+            final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
+                    userId, "tune");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    SessionState sessionState = getUserStateLocked(resolvedUserId)
+                            .sessionStateMap.get(sessionToken);
+                    final String serviceName = sessionState.name.getClassName();
+                    try {
+                        getSessionLocked(sessionToken, callingUid, resolvedUserId).tune(channelUri);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in tune", e);
+                        return;
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+    }
+
+    private static final class UserState {
+        // A list of all known TV inputs on the system.
+        private final List<TvInputInfo> inputList = new ArrayList<TvInputInfo>();
+
+        // A mapping from the name of a TV input service to its state.
+        private final Map<ComponentName, ServiceState> serviceStateMap =
+                new HashMap<ComponentName, ServiceState>();
+
+        // A mapping from the token of a TV input session to its state.
+        private final Map<IBinder, SessionState> sessionStateMap =
+                new HashMap<IBinder, SessionState>();
+    }
+
+    private final class ServiceState {
+        private final List<IBinder> clients = new ArrayList<IBinder>();
+        private final ArrayMap<IBinder, SessionState> sessionStateMap = new ArrayMap<IBinder,
+                SessionState>();
+        private final ServiceConnection connection;
+
+        private ITvInputService service;
+        private ServiceCallback callback;
+        private boolean bound;
+        private boolean available;
+
+        private ServiceState(ComponentName name, int userId) {
+            this.connection = new InputServiceConnection(userId);
+        }
+    }
+
+    private static final class SessionState {
+        private final ComponentName name;
+        private final ITvInputClient client;
+        private final int seq;
+        private final int callingUid;
+
+        private ITvInputSession session;
+
+        private SessionState(ComponentName name, ITvInputClient client, int seq, int callingUid) {
+            this.name = name;
+            this.client = client;
+            this.seq = seq;
+            this.callingUid = callingUid;
+        }
+    }
+
+    private final class InputServiceConnection implements ServiceConnection {
+        private final int mUserId;
+
+        private InputServiceConnection(int userId) {
+            mUserId = userId;
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            if (DEBUG) {
+                Log.d(TAG, "onServiceConnected(name=" + name.getClassName() + ")");
+            }
+            synchronized (mLock) {
+                ServiceState serviceState = getServiceStateLocked(name, mUserId);
+                serviceState.service = ITvInputService.Stub.asInterface(service);
+
+                // Register a callback, if we need to.
+                if (!serviceState.clients.isEmpty() && serviceState.callback == null) {
+                    serviceState.callback = new ServiceCallback(mUserId);
+                    try {
+                        serviceState.service.registerCallback(serviceState.callback);
+                    } catch (RemoteException e) {
+                        Log.e(TAG, "error in registerCallback", e);
+                    }
+                }
+
+                // And create sessions, if any.
+                for (Map.Entry<IBinder, SessionState> entry : serviceState.sessionStateMap
+                        .entrySet()) {
+                    createSessionInternalLocked(serviceState.service, entry.getKey(),
+                            entry.getValue(), mUserId);
+                }
+            }
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            if (DEBUG) {
+                Log.d(TAG, "onServiceDisconnected(name=" + name.getClassName() + ")");
+            }
+        }
+    }
+
+    private final class ServiceCallback extends ITvInputServiceCallback.Stub {
+        private final int mUserId;
+
+        ServiceCallback(int userId) {
+            mUserId = userId;
+        }
+
+        @Override
+        public void onAvailabilityChanged(ComponentName name, boolean isAvailable)
+                throws RemoteException {
+            if (DEBUG) {
+                Log.d(TAG, "onAvailabilityChanged(name=" + name.getClassName() + ", isAvailable="
+                        + isAvailable + ")");
+            }
+            synchronized (mLock) {
+                ServiceState serviceState = getServiceStateLocked(name, mUserId);
+                serviceState.available = isAvailable;
+                for (IBinder iBinder : serviceState.clients) {
+                    ITvInputClient client = ITvInputClient.Stub.asInterface(iBinder);
+                    client.onAvailabilityChanged(name, isAvailable);
+                }
+            }
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/wm/CircularDisplayMask.java b/services/core/java/com/android/server/wm/CircularDisplayMask.java
new file mode 100644
index 0000000..fbfca93
--- /dev/null
+++ b/services/core/java/com/android/server/wm/CircularDisplayMask.java
@@ -0,0 +1,110 @@
+/*
+ * 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.android.server.wm;
+
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.util.Log;
+import android.view.Display;
+import android.view.Surface;
+import android.view.Surface.OutOfResourcesException;
+import android.view.SurfaceControl;
+import android.view.SurfaceSession;
+
+class CircularDisplayMask {
+    private static final String TAG = "CircularDisplayMask";
+
+    private static final int STROKE_WIDTH = 2;
+
+    private final SurfaceControl mSurfaceControl;
+    private final Surface mSurface = new Surface();
+    private int mLastDW;
+    private int mLastDH;
+    private boolean mDrawNeeded;
+    private Paint mPaint;
+
+    public CircularDisplayMask(Display display, SurfaceSession session, int zOrder) {
+        SurfaceControl ctrl = null;
+        try {
+            ctrl = new SurfaceControl(session, "CircularDisplayMask",
+                320, 290, PixelFormat.TRANSLUCENT, SurfaceControl.HIDDEN);
+            ctrl.setLayerStack(display.getLayerStack());
+            ctrl.setLayer(zOrder);
+            ctrl.setPosition(0, 0);
+            ctrl.show();
+            mSurface.copyFrom(ctrl);
+        } catch (OutOfResourcesException e) {
+        }
+        mSurfaceControl = ctrl;
+        mDrawNeeded = true;
+        mPaint = new Paint();
+        mPaint.setAntiAlias(true);
+        mPaint.setStyle(Paint.Style.STROKE);
+        mPaint.setColor(Color.BLACK);
+        mPaint.setStrokeWidth(STROKE_WIDTH);
+    }
+
+    private void drawIfNeeded() {
+        if (!mDrawNeeded) {
+            return;
+        }
+        mDrawNeeded = false;
+
+        Rect dirty = new Rect(0, 0, mLastDW, mLastDH);
+        Canvas c = null;
+        try {
+            c = mSurface.lockCanvas(dirty);
+        } catch (IllegalArgumentException e) {
+        } catch (Surface.OutOfResourcesException e) {
+        }
+        if (c == null) {
+            return;
+        }
+        c.drawCircle(160, 160, 160, mPaint);
+
+        mSurface.unlockCanvasAndPost(c);
+    }
+
+    // Note: caller responsible for being inside
+    // Surface.openTransaction() / closeTransaction()
+    public void setVisibility(boolean on) {
+        if (mSurfaceControl == null) {
+            return;
+        }
+        drawIfNeeded();
+        if (on) {
+            mSurfaceControl.show();
+        } else {
+            mSurfaceControl.hide();
+        }
+    }
+
+    void positionSurface(int dw, int dh) {
+        if (mLastDW == dw && mLastDH == dh) {
+            return;
+        }
+        mLastDW = dw;
+        mLastDH = dh;
+        mSurfaceControl.setSize(dw, dh);
+        mDrawNeeded = true;
+    }
+
+}
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index 4aae5c1..f02c0e6 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -284,7 +284,7 @@
                 final boolean hasFocus = (child == mInputFocus);
                 final boolean isVisible = child.isVisibleLw();
                 final boolean hasWallpaper = (child == mService.mWallpaperTarget)
-                        && (type != WindowManager.LayoutParams.TYPE_KEYGUARD);
+                        && (privateFlags & WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD) == 0;
                 final boolean onDefaultDisplay = (child.getDisplayId() == Display.DEFAULT_DISPLAY);
 
                 // If there's a drag in progress and 'child' is a potential drop target,
@@ -355,17 +355,16 @@
     /* Provides an opportunity for the window manager policy to intercept early key
      * processing as soon as the key has been read from the device. */
     @Override
-    public int interceptKeyBeforeQueueing(
-            KeyEvent event, int policyFlags, boolean isScreenOn) {
-        return mService.mPolicy.interceptKeyBeforeQueueing(event, policyFlags, isScreenOn);
+    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
+        return mService.mPolicy.interceptKeyBeforeQueueing(event, policyFlags);
     }
 
     /* Provides an opportunity for the window manager policy to intercept early
      * motion event processing when the screen is off since these events are normally
      * dropped. */
     @Override
-    public int interceptMotionBeforeQueueingWhenScreenOff(long whenNanos, int policyFlags) {
-        return mService.mPolicy.interceptMotionBeforeQueueingWhenScreenOff(whenNanos, policyFlags);
+    public int interceptWakeMotionBeforeQueueing(long whenNanos, int policyFlags) {
+        return mService.mPolicy.interceptWakeMotionBeforeQueueing(whenNanos, policyFlags);
     }
 
     /* Provides an opportunity for the window manager policy to process a key before
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 0558b5a..ad256c8 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -24,6 +24,7 @@
 import android.util.TimeUtils;
 import android.view.IWindowId;
 
+import android.view.WindowContentFrameStats;
 import com.android.internal.app.IBatteryStats;
 import com.android.internal.policy.PolicyManager;
 import com.android.internal.policy.impl.PhoneWindowManager;
@@ -86,6 +87,7 @@
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.Trace;
+import android.os.UserHandle;
 import android.os.WorkSource;
 import android.provider.Settings;
 import android.util.DisplayMetrics;
@@ -285,6 +287,8 @@
     private static final String DENSITY_OVERRIDE = "ro.config.density_override";
     private static final String SIZE_OVERRIDE = "ro.config.size_override";
 
+    private static final String SCREEN_CIRCULAR = "ro.display.circular";
+
     private static final int MAX_SCREENSHOT_RETRIES = 3;
 
     final private KeyguardDisableHandler mKeyguardDisableHandler;
@@ -302,14 +306,14 @@
 
     /**
      * Current user when multi-user is enabled. Don't show windows of
-     * non-current user. Also see mRelatedUserIds.
+     * non-current user. Also see mCurrentProfileIds.
      */
     int mCurrentUserId;
     /**
-     * Users related to the current user. These are also allowed to show windows
+     * Users that are profiles of the current user. These are also allowed to show windows
      * on the current user.
      */
-    int[] mRelatedUserIds = new int[0];
+    int[] mCurrentProfileIds = new int[] {UserHandle.USER_OWNER};
 
     final Context mContext;
 
@@ -422,6 +426,7 @@
     final SurfaceSession mFxSession;
     Watermark mWatermark;
     StrictModeFlash mStrictModeFlash;
+    CircularDisplayMask mCircularDisplayMask;
     FocusedStackFrame mFocusedStackFrame;
 
     int mFocusedStackLayer;
@@ -622,6 +627,8 @@
 
     private final PointerEventDispatcher mPointerEventDispatcher;
 
+    private WindowContentFrameStats mTempWindowRenderStats;
+
     final class DragInputEventReceiver extends InputEventReceiver {
         public DragInputEventReceiver(InputChannel inputChannel, Looper looper) {
             super(inputChannel, looper);
@@ -819,6 +826,7 @@
         }
 
         LocalServices.addService(WindowManagerInternal.class, new LocalService());
+        showCircularDisplayMaskIfNeeded();
     }
 
     public InputMonitor getInputMonitor() {
@@ -920,6 +928,10 @@
         final IWindow client = win.mClient;
         final WindowToken token = win.mToken;
         final DisplayContent displayContent = win.getDisplayContent();
+        if (displayContent == null) {
+            // It doesn't matter this display is going away.
+            return 0;
+        }
 
         final WindowList windows = win.getWindowList();
         final int N = windows.size();
@@ -1097,6 +1109,9 @@
     private void addAttachedWindowToListLocked(final WindowState win, boolean addToToken) {
         final WindowToken token = win.mToken;
         final DisplayContent displayContent = win.getDisplayContent();
+        if (displayContent == null) {
+            return;
+        }
         final WindowState attached = win.mAttachedWindow;
 
         WindowList tokenWindowList = getTokenWindowsOnDisplay(token, displayContent);
@@ -1878,7 +1893,9 @@
                 int insertionIndex = 0;
                 if (visible && foundW != null) {
                     final int type = foundW.mAttrs.type;
-                    if (type == TYPE_KEYGUARD || type == TYPE_KEYGUARD_SCRIM) {
+                    final int privateFlags = foundW.mAttrs.privateFlags;
+                    if ((privateFlags & PRIVATE_FLAG_KEYGUARD) != 0
+                            || type == TYPE_KEYGUARD_SCRIM) {
                         insertionIndex = windows.indexOf(foundW);
                     }
                 }
@@ -2254,6 +2271,11 @@
                 return WindowManagerGlobal.ADD_APP_EXITING;
             }
 
+            if (win.getDisplayContent() == null) {
+                Slog.w(TAG, "Adding window to Display that has been removed.");
+                return WindowManagerGlobal.ADD_INVALID_DISPLAY;
+            }
+
             mPolicy.adjustWindowParamsLw(win.mAttrs);
             win.setShowToOwnerOnlyLocked(mPolicy.checkShowToOwnerOnly(attrs));
 
@@ -2743,7 +2765,7 @@
             return;
         }
 
-        final DisplayInfo displayInfo = window.getDisplayContent().getDisplayInfo();
+        final DisplayInfo displayInfo = displayContent.getDisplayInfo();
         final RectF dispRect = new RectF(0, 0,
                 displayInfo.logicalWidth, displayInfo.logicalHeight);
         matrix.mapRect(dispRect);
@@ -5213,16 +5235,16 @@
         ShutdownThread.rebootSafeMode(mContext, confirm);
     }
 
-    public void updateRelatedUserIds(final int[] relatedUserIds) {
+    public void setCurrentProfileIds(final int[] currentProfileIds) {
         synchronized (mWindowMap) {
-            mRelatedUserIds = relatedUserIds;
+            mCurrentProfileIds = currentProfileIds;
         }
     }
 
-    public void setCurrentUser(final int newUserId, final int[] relatedUserIds) {
+    public void setCurrentUser(final int newUserId, final int[] currentProfileIds) {
         synchronized (mWindowMap) {
             mCurrentUserId = newUserId;
-            mRelatedUserIds = relatedUserIds;
+            mCurrentProfileIds = currentProfileIds;
             mAppTransition.setCurrentUser(newUserId);
             mPolicy.setCurrentUserLw(newUserId);
 
@@ -5238,10 +5260,10 @@
     }
 
     /* Called by WindowState */
-    boolean isRelatedToOrCurrentUserLocked(int userId) {
+    boolean isCurrentProfileLocked(int userId) {
         if (userId == mCurrentUserId) return true;
-        for (int i = 0; i < mRelatedUserIds.length; i++) {
-            if (mRelatedUserIds[i] == userId) return true;
+        for (int i = 0; i < mCurrentProfileIds.length; i++) {
+            if (mCurrentProfileIds[i] == userId) return true;
         }
         return false;
     }
@@ -5271,6 +5293,13 @@
         performEnableScreen();
     }
 
+    @Override
+    public void enableScreenIfNeeded() {
+        synchronized (mWindowMap) {
+            enableScreenIfNeededLocked();
+        }
+    }
+
     void enableScreenIfNeededLocked() {
         if (DEBUG_BOOT) {
             RuntimeException here = new RuntimeException("here");
@@ -5335,18 +5364,6 @@
                 final int N = windows.size();
                 for (int i=0; i<N; i++) {
                     WindowState w = windows.get(i);
-                    if (w.mAttrs.type == TYPE_KEYGUARD) {
-                        // Only if there is a keyguard attached to the window manager
-                        // will we consider ourselves as having a keyguard.  If it
-                        // isn't attached, we don't know if it wants to be shown or
-                        // hidden.  If it is attached, we will say we have a keyguard
-                        // if the window doesn't want to be visible, because in that
-                        // case it explicitly doesn't want to be shown so we should
-                        // not delay turning the screen on for it.
-                        boolean vis = w.mViewVisibility == View.VISIBLE
-                                && w.mPolicyVisibility;
-                        haveKeyguard = !vis;
-                    }
                     if (w.isVisibleLw() && !w.mObscured && !w.isDrawnLw()) {
                         return;
                     }
@@ -5357,8 +5374,8 @@
                             haveApp = true;
                         } else if (w.mAttrs.type == TYPE_WALLPAPER) {
                             haveWallpaper = true;
-                        } else if (w.mAttrs.type == TYPE_KEYGUARD) {
-                            haveKeyguard = true;
+                        } else if (w.mAttrs.type == TYPE_STATUS_BAR) {
+                            haveKeyguard = mPolicy.isKeyguardDrawnLw();
                         }
                     }
                 }
@@ -5471,6 +5488,37 @@
         }
     }
 
+    public void showCircularDisplayMaskIfNeeded() {
+        if (SystemProperties.getBoolean(SCREEN_CIRCULAR, false)) {
+            mH.sendMessage(mH.obtainMessage(H.SHOW_DISPLAY_MASK));
+        }
+    }
+
+    public void showCircularMask() {
+        synchronized(mWindowMap) {
+
+            if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG,
+                    ">>> OPEN TRANSACTION showDisplayMask");
+            SurfaceControl.openTransaction();
+            try {
+                // TODO(multi-display): support multiple displays
+                if (mCircularDisplayMask == null) {
+                    mCircularDisplayMask = new CircularDisplayMask(
+                            getDefaultDisplayContentLocked().getDisplay(),
+                            mFxSession,
+                            mPolicy.windowTypeToLayerLw(
+                                    WindowManager.LayoutParams.TYPE_POINTER)
+                                    * TYPE_LAYER_MULTIPLIER + 10);
+                }
+                mCircularDisplayMask.setVisibility(true);
+            } finally {
+                SurfaceControl.closeTransaction();
+                if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG,
+                        "<<< CLOSE TRANSACTION showDisplayMask");
+            }
+        }
+    }
+
     // TODO: more accounting of which pid(s) turned it on, keep count,
     // only allow disables from pids which have count on, etc.
     @Override
@@ -6933,7 +6981,6 @@
             if (mDisplayEnabled) {
                 mInputMonitor.setEventDispatchingLw(enabled);
             }
-            sendScreenStatusToClientsLocked();
         }
     }
 
@@ -7038,23 +7085,6 @@
         mPolicy.systemReady();
     }
 
-    // TODO(multidisplay): Call isScreenOn for each display.
-    private void sendScreenStatusToClientsLocked() {
-        final boolean on = mPowerManager.isScreenOn();
-        final int numDisplays = mDisplayContents.size();
-        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
-            final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
-            final int numWindows = windows.size();
-            for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
-                try {
-                    windows.get(winNdx).mClient.dispatchScreenState(on);
-                } catch (RemoteException e) {
-                    // Ignored
-                }
-            }
-        }
-    }
-
     // -------------------------------------------------------------
     // Async Handler
     // -------------------------------------------------------------
@@ -7095,6 +7125,8 @@
 
         public static final int REMOVE_STARTING_TIMEOUT = 33;
 
+        public static final int SHOW_DISPLAY_MASK = 34;
+
         @Override
         public void handleMessage(Message msg) {
             if (DEBUG_WINDOW_TRACE) {
@@ -7490,6 +7522,11 @@
                     break;
                 }
 
+                case SHOW_DISPLAY_MASK: {
+                    showCircularMask();
+                    break;
+                }
+
                 case DO_ANIMATION_CALLBACK: {
                     try {
                         ((IRemoteCallback)msg.obj).sendResult(null);
@@ -8295,7 +8332,7 @@
             // just don't display").
             if (!gone || !win.mHaveFrame || win.mLayoutNeeded
                     || ((win.isConfigChanged() || win.setInsetsChanged()) &&
-                            (win.mAttrs.type == TYPE_KEYGUARD ||
+                            ((win.mAttrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0 ||
                             win.mAppToken != null && win.mAppToken.layoutConfigChanges))
                     || win.mAttrs.type == TYPE_UNIVERSE_BACKGROUND) {
                 if (!win.mLayoutAttached) {
@@ -8835,8 +8872,8 @@
             if (canBeSeen
                     && (type == TYPE_SYSTEM_DIALOG
                      || type == TYPE_RECENTS_OVERLAY
-                     || type == TYPE_KEYGUARD
-                     || type == TYPE_SYSTEM_ERROR)) {
+                     || type == TYPE_SYSTEM_ERROR
+                     || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0)) {
                 mInnerFields.mSyswin = true;
             }
 
@@ -8849,7 +8886,7 @@
                     // content on secondary displays (by forcibly enabling mirroring unless
                     // there is other content we want to show) but still allow opaque
                     // keyguard dialogs to be shown.
-                    if (type == TYPE_DREAM || type == TYPE_KEYGUARD) {
+                    if (type == TYPE_DREAM || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
                         mInnerFields.mObscureApplicationContentOnSecondaryDisplays = true;
                     }
                     mInnerFields.mDisplayHasContent = true;
@@ -8963,6 +9000,9 @@
             if (mStrictModeFlash != null) {
                 mStrictModeFlash.positionSurface(defaultDw, defaultDh);
             }
+            if (mCircularDisplayMask != null) {
+                mCircularDisplayMask.positionSurface(defaultDw, defaultDh);
+            }
 
             boolean focusDisplayed = false;
 
@@ -10206,6 +10246,51 @@
         return mSafeMode;
     }
 
+    @Override
+    public boolean clearWindowContentFrameStats(IBinder token) {
+        if (!checkCallingPermission(Manifest.permission.FRAME_STATS,
+                "clearWindowContentFrameStats()")) {
+            throw new SecurityException("Requires FRAME_STATS permission");
+        }
+        synchronized (mWindowMap) {
+            WindowState windowState = mWindowMap.get(token);
+            if (windowState == null) {
+                return false;
+            }
+            SurfaceControl surfaceControl = windowState.mWinAnimator.mSurfaceControl;
+            if (surfaceControl == null) {
+                return false;
+            }
+            return surfaceControl.clearContentFrameStats();
+        }
+    }
+
+    @Override
+    public WindowContentFrameStats getWindowContentFrameStats(IBinder token) {
+        if (!checkCallingPermission(Manifest.permission.FRAME_STATS,
+                "getWindowContentFrameStats()")) {
+            throw new SecurityException("Requires FRAME_STATS permission");
+        }
+        synchronized (mWindowMap) {
+            WindowState windowState = mWindowMap.get(token);
+            if (windowState == null) {
+                return null;
+            }
+            SurfaceControl surfaceControl = windowState.mWinAnimator.mSurfaceControl;
+            if (surfaceControl == null) {
+                return null;
+            }
+            if (mTempWindowRenderStats == null) {
+                mTempWindowRenderStats = new WindowContentFrameStats();
+            }
+            WindowContentFrameStats stats = mTempWindowRenderStats;
+            if (!surfaceControl.getContentFrameStats(stats)) {
+                return null;
+            }
+            return stats;
+        }
+    }
+
     void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) {
         pw.println("WINDOW MANAGER POLICY STATE (dumpsys window policy)");
         mPolicy.dump("    ", pw, args);
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 2c0e99e..4318b0e 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -23,12 +23,12 @@
 import static com.android.server.wm.WindowManagerService.DEBUG_VISIBILITY;
 
 import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_COMPATIBLE_WINDOW;
 import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
-import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD;
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
 
 import android.app.AppOpsManager;
@@ -1010,7 +1010,7 @@
                 && (mConfiguration == null
                         || (mConfiguration.diff(mService.mCurConfiguration) != 0));
 
-        if (mAttrs.type == TYPE_KEYGUARD) {
+        if ((mAttrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
             // Retain configuration changed status until resetConfiguration called.
             mConfigHasChanged |= configChanged;
             configChanged = mConfigHasChanged;
@@ -1249,7 +1249,7 @@
         }
 
         return win.mShowToOwnerOnly
-                && !mService.isRelatedToOrCurrentUserLocked(UserHandle.getUserId(win.mOwnerUid));
+                && !mService.isCurrentProfileLocked(UserHandle.getUserId(win.mOwnerUid));
     }
 
     private static void applyInsets(Region outRegion, Rect frame, Rect inset) {
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 6b3c368..3c9d53e 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -176,9 +176,15 @@
         mAnimator = service.mAnimator;
         mPolicy = service.mPolicy;
         mContext = service.mContext;
-        final DisplayInfo displayInfo = win.getDisplayContent().getDisplayInfo();
-        mAnimDw = displayInfo.appWidth;
-        mAnimDh = displayInfo.appHeight;
+        final DisplayContent displayContent = win.getDisplayContent();
+        if (displayContent != null) {
+            final DisplayInfo displayInfo = displayContent.getDisplayInfo();
+            mAnimDw = displayInfo.appWidth;
+            mAnimDh = displayInfo.appHeight;
+        } else {
+            Slog.w(TAG, "WindowStateAnimator ctor: Display has been removed");
+            // This is checked on return and dealt with.
+        }
 
         mWin = win;
         mAttachedWinAnimator = win.mAttachedWindow == null
diff --git a/services/core/jni/com_android_server_AlarmManagerService.cpp b/services/core/jni/com_android_server_AlarmManagerService.cpp
index c26a516..a58b00bce 100644
--- a/services/core/jni/com_android_server_AlarmManagerService.cpp
+++ b/services/core/jni/com_android_server_AlarmManagerService.cpp
@@ -365,7 +365,9 @@
     int result = impl->set(type, &ts);
     if (result < 0)
     {
-        ALOGE("Unable to set alarm to %lld.%09lld: %s\n", seconds, nanoseconds, strerror(errno));
+        ALOGE("Unable to set alarm to %lld.%09lld: %s\n",
+              static_cast<long long>(seconds),
+              static_cast<long long>(nanoseconds), strerror(errno));
     }
 }
 
diff --git a/services/core/jni/com_android_server_hdmi_HdmiCecService.cpp b/services/core/jni/com_android_server_hdmi_HdmiCecService.cpp
index 6170c09..54c9755 100644
--- a/services/core/jni/com_android_server_hdmi_HdmiCecService.cpp
+++ b/services/core/jni/com_android_server_hdmi_HdmiCecService.cpp
@@ -20,7 +20,7 @@
 
 #include "ScopedPrimitiveArray.h"
 
-#include <cstring>
+#include <string>
 #include <deque>
 #include <map>
 
@@ -34,7 +34,6 @@
     jmethodID handleMessage;
     jmethodID handleHotplug;
     jmethodID getActiveSource;
-    jmethodID getOsdName;
     jmethodID getLanguage;
 } gHdmiCecServiceClassInfo;
 
@@ -63,30 +62,28 @@
     void initialize();
 
     // initialize individual logical device.
-    int initLogicalDevice(int type);
-    void releaseLogicalDevice(int type);
+    cec_logical_address_t initLogicalDevice(cec_device_type_t type);
+    void releaseLogicalDevice(cec_device_type_t type);
 
-    cec_logical_address_t getLogicalAddress(int deviceType);
+    cec_logical_address_t getLogicalAddress(cec_device_type_t deviceType);
+    uint16_t getPhysicalAddress();
     int getDeviceType(cec_logical_address_t addr);
     void queueMessage(const MessageEntry& message);
     void queueOutgoingMessage(const cec_message_t& message);
     void sendReportPhysicalAddress();
     void sendActiveSource(cec_logical_address_t srcAddr);
-    void sendInactiveSource(cec_logical_address_t srcAddr);
-    void sendImageViewOn(cec_logical_address_t srcAddr);
-    void sendTextViewOn(cec_logical_address_t srcAddr);
-    void sendGiveDevicePowerStatus(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr);
     void sendFeatureAbort(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr,
             int opcode, int reason);
     void sendCecVersion(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr,
             int version);
-    void sendDeviceVendorID(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr);
+    void sendDeviceVendorId(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr);
     void sendGiveDeviceVendorID(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr);
     void sendSetOsdName(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr,
             const char* name, size_t len);
     void sendSetMenuLanguage(cec_logical_address_t srcAddr, cec_logical_address_t dstAddr);
 
     void sendCecMessage(const cec_message_t& message);
+    void setOsdName(const char* name, size_t len);
 
 private:
     enum {
@@ -104,6 +101,7 @@
     static void checkAndClearExceptionFromCallback(JNIEnv* env, const char* methodName);
 
     void updatePhysicalAddress();
+    void updateLogicalAddress();
     void dispatchMessage(const MessageEntry& message);
     void processIncomingMessage(const cec_message_t& msg);
 
@@ -147,7 +145,7 @@
     };
 
     // device type -> logical address mapping
-    std::map<int, cec_logical_address_t> mLogicalDevices;
+    std::map<cec_device_type_t, cec_logical_address_t> mLogicalDevices;
 
     hdmi_cec_device_t* mDevice;
     jobject mCallbacksObj;
@@ -158,6 +156,7 @@
 
     std::deque<MessageEntry> mMessageQueue;
     uint16_t mPhysicalAddress;
+    std::string mOsdName;
 };
 
 
@@ -173,6 +172,10 @@
     updatePhysicalAddress();
 }
 
+uint16_t HdmiCecHandler::getPhysicalAddress() {
+    return mPhysicalAddress;
+}
+
 void HdmiCecHandler::updatePhysicalAddress() {
     uint16_t addr;
     if (!mDevice->get_physical_address(mDevice, &addr)) {
@@ -182,7 +185,17 @@
     }
 }
 
-int HdmiCecHandler::initLogicalDevice(int type) {
+void HdmiCecHandler::updateLogicalAddress() {
+    std::map<cec_device_type_t, cec_logical_address_t>::iterator it = mLogicalDevices.begin();
+    for (; it != mLogicalDevices.end(); ++it) {
+        cec_logical_address_t addr;
+        if (!mDevice->get_logical_address(mDevice, it->first, &addr)) {
+            it->second = addr;
+        }
+    }
+}
+
+cec_logical_address_t HdmiCecHandler::initLogicalDevice(cec_device_type_t type) {
     cec_logical_address_t addr;
     int res = mDevice->allocate_logical_address(mDevice, type, &addr);
 
@@ -190,21 +203,26 @@
         ALOGE("Logical Address Allocation failed: %d", res);
     } else {
         ALOGV("Logical Address Allocation success: %d", addr);
-        mLogicalDevices.insert(std::pair<int, cec_logical_address_t>(type, addr));
+        mLogicalDevices.insert(std::pair<cec_device_type_t, cec_logical_address_t>(type, addr));
+
+        // Broadcast <Report Physical Address> when a new logical address was allocated to let
+        // other devices discover the new logical device and its logical - physical address
+        // association.
+        sendReportPhysicalAddress();
     }
     return addr;
 }
 
-void HdmiCecHandler::releaseLogicalDevice(int type) {
-    std::map<int, cec_logical_address_t>::iterator it = mLogicalDevices.find(type);
+void HdmiCecHandler::releaseLogicalDevice(cec_device_type_t type) {
+    std::map<cec_device_type_t, cec_logical_address_t>::iterator it = mLogicalDevices.find(type);
     if (it != mLogicalDevices.end()) {
         mLogicalDevices.erase(it);
     }
     // TODO: remove the address monitored in HAL as well.
 }
 
-cec_logical_address_t HdmiCecHandler::getLogicalAddress(int mDevicetype) {
-    std::map<int, cec_logical_address_t>::iterator it = mLogicalDevices.find(mDevicetype);
+cec_logical_address_t HdmiCecHandler::getLogicalAddress(cec_device_type_t type) {
+    std::map<cec_device_type_t, cec_logical_address_t>::iterator it = mLogicalDevices.find(type);
     if (it != mLogicalDevices.end()) {
         return it->second;
     }
@@ -212,7 +230,7 @@
 }
 
 int HdmiCecHandler::getDeviceType(cec_logical_address_t addr) {
-    std::map<int, cec_logical_address_t>::iterator it = mLogicalDevices.begin();
+    std::map<cec_device_type_t, cec_logical_address_t>::iterator it = mLogicalDevices.begin();
     for (; it != mLogicalDevices.end(); ++it) {
         if (it->second == addr) {
             return it->first;
@@ -245,14 +263,15 @@
     }
 
     // Report physical address for each logical one hosted in it.
-    std::map<int, cec_logical_address_t>::iterator it = mLogicalDevices.begin();
+    std::map<cec_device_type_t, cec_logical_address_t>::iterator it = mLogicalDevices.begin();
     while (it != mLogicalDevices.end()) {
         cec_message_t msg;
         msg.initiator = it->second;  // logical address
         msg.destination = CEC_ADDR_BROADCAST;
         msg.length = 4;
         msg.body[0] = CEC_MESSAGE_REPORT_PHYSICAL_ADDRESS;
-        std::memcpy(msg.body + 1, &mPhysicalAddress, 2);
+        msg.body[1] = (mPhysicalAddress >> 8) & 0xff;
+        msg.body[2] = mPhysicalAddress & 0xff;
         msg.body[3] = it->first;  // device type
         queueOutgoingMessage(msg);
         ++it;
@@ -269,47 +288,8 @@
     msg.destination = CEC_ADDR_BROADCAST;
     msg.length = 3;
     msg.body[0] = CEC_MESSAGE_ACTIVE_SOURCE;
-    std::memcpy(msg.body + 1, &mPhysicalAddress, 2);
-    queueOutgoingMessage(msg);
-}
-
-void HdmiCecHandler::sendInactiveSource(cec_logical_address_t srcAddr) {
-    cec_message_t msg;
-    msg.initiator = srcAddr;
-    msg.destination = CEC_ADDR_TV;
-    msg.length = 3;
-    msg.body[0] = CEC_MESSAGE_INACTIVE_SOURCE;
-    if (mPhysicalAddress != INVALID_PHYSICAL_ADDRESS) {
-        std::memcpy(msg.body + 1, &mPhysicalAddress, 2);
-        queueOutgoingMessage(msg);
-    }
-}
-
-void HdmiCecHandler::sendImageViewOn(cec_logical_address_t srcAddr) {
-    cec_message_t msg;
-    msg.initiator = srcAddr;
-    msg.destination = CEC_ADDR_TV;
-    msg.length = 1;
-    msg.body[0] = CEC_MESSAGE_IMAGE_VIEW_ON;
-    queueOutgoingMessage(msg);
-}
-
-void HdmiCecHandler::sendTextViewOn(cec_logical_address_t srcAddr) {
-    cec_message_t msg;
-    msg.initiator = srcAddr;
-    msg.destination = CEC_ADDR_TV;
-    msg.length = 1;
-    msg.body[0] = CEC_MESSAGE_TEXT_VIEW_ON;
-    queueOutgoingMessage(msg);
-}
-
-void HdmiCecHandler::sendGiveDevicePowerStatus(cec_logical_address_t srcAddr,
-        cec_logical_address_t dstAddr) {
-    cec_message_t msg;
-    msg.initiator = srcAddr;
-    msg.destination = dstAddr;
-    msg.length = 1;
-    msg.body[0] = CEC_MESSAGE_GIVE_DEVICE_POWER_STATUS;
+    msg.body[1] = (mPhysicalAddress >> 8) & 0xff;
+    msg.body[2] = mPhysicalAddress & 0xff;
     queueOutgoingMessage(msg);
 }
 
@@ -346,7 +326,7 @@
     queueOutgoingMessage(msg);
 }
 
-void HdmiCecHandler::sendDeviceVendorID(cec_logical_address_t srcAddr,
+void HdmiCecHandler::sendDeviceVendorId(cec_logical_address_t srcAddr,
         cec_logical_address_t dstAddr) {
     cec_message_t msg;
     msg.initiator = srcAddr;
@@ -355,7 +335,9 @@
     msg.body[0] = CEC_MESSAGE_DEVICE_VENDOR_ID;
     uint32_t vendor_id;
     mDevice->get_vendor_id(mDevice, &vendor_id);
-    std::memcpy(msg.body + 1, &vendor_id, 3);
+    msg.body[1] = (vendor_id >> 16) & 0xff;
+    msg.body[2] = (vendor_id >> 8) & 0xff;
+    msg.body[3] = vendor_id & 0xff;
     queueOutgoingMessage(msg);
 }
 
@@ -397,6 +379,10 @@
     mDevice->send_message(mDevice, &message);
 }
 
+void HdmiCecHandler::setOsdName(const char* name, size_t len) {
+    mOsdName.assign(name, min(len, CEC_MESSAGE_BODY_MAX_LENGTH - 1));
+}
+
 // static
 void HdmiCecHandler::onReceived(const hdmi_event_t* event, void* arg) {
     HdmiCecHandler* handler = static_cast<HdmiCecHandler*>(arg);
@@ -437,9 +423,8 @@
         mMessageQueue.pop_front();
         bool connected = entry.second.hotplug.connected;
         if (connected) {
-            // TODO: Update logical addresses as well, since they also could have
-            // changed while the cable was disconnected.
             updatePhysicalAddress();
+            updateLogicalAddress();
         }
         propagateHotplug(connected);
     }
@@ -460,6 +445,9 @@
         handleGetCECVersion(msg);
     } else if (opcode == CEC_MESSAGE_GET_MENU_LANGUAGE) {
         handleGetMenuLanguage(msg);
+    } else if (opcode == CEC_MESSAGE_ABORT) {
+        // Compliance testing requires that abort message be responded with feature abort.
+        sendFeatureAbort(msg.destination, msg.initiator, msg.body[0], ABORT_REFUSED);
     } else {
         if (precheckMessage(msg)) {
             propagateMessage(msg);
@@ -480,8 +468,7 @@
             (opcode == CEC_MESSAGE_ACTIVE_SOURCE ||
              opcode == CEC_MESSAGE_SET_STREAM_PATH ||
              opcode == CEC_MESSAGE_INACTIVE_SOURCE)) {
-        uint16_t senderAddr;
-        std::memcpy(&senderAddr, &msg.body[1], 2);
+        uint16_t senderAddr = (msg.body[1] << 8) + msg.body[2];
         if (senderAddr == mPhysicalAddress) {
             return false;
         }
@@ -521,28 +508,19 @@
     jint activeDeviceType = env->CallIntMethod(mCallbacksObj,
             gHdmiCecServiceClassInfo.getActiveSource);
     if (activeDeviceType != INACTIVE_DEVICE_TYPE) {
-        sendActiveSource(getLogicalAddress(activeDeviceType));
+        sendActiveSource(getLogicalAddress(static_cast<cec_device_type_t>(activeDeviceType)));
     }
     checkAndClearExceptionFromCallback(env, __FUNCTION__);
 }
 
 void HdmiCecHandler::handleGetOsdName(const cec_message_t& msg) {
-    cec_logical_address_t addr = msg.destination;
-    JNIEnv* env = AndroidRuntime::getJNIEnv();
-    jbyteArray res = (jbyteArray) env->CallObjectMethod(mCallbacksObj,
-            gHdmiCecServiceClassInfo.getOsdName,
-            getDeviceType(addr));
-    jbyte *name = env->GetByteArrayElements(res, NULL);
-    if (name != NULL) {
-        sendSetOsdName(addr, msg.initiator, reinterpret_cast<const char *>(name),
-                env->GetArrayLength(res));
-        env->ReleaseByteArrayElements(res, name, JNI_ABORT);
+    if (!mOsdName.empty()) {
+        sendSetOsdName(msg.destination, msg.initiator, mOsdName.c_str(), mOsdName.length());
     }
-    checkAndClearExceptionFromCallback(env, __FUNCTION__);
 }
 
 void HdmiCecHandler::handleGiveDeviceVendorID(const cec_message_t& msg) {
-    sendDeviceVendorID(msg.destination, msg.initiator);
+    sendDeviceVendorId(msg.destination, msg.initiator);
 }
 
 void HdmiCecHandler::handleGetCECVersion(const cec_message_t& msg) {
@@ -585,8 +563,6 @@
             "handleHotplug", "(Z)V");
     GET_METHOD_ID(gHdmiCecServiceClassInfo.getActiveSource, clazz,
             "getActiveSource", "()I");
-    GET_METHOD_ID(gHdmiCecServiceClassInfo.getOsdName, clazz,
-            "getOsdName", "(I)[B");
     GET_METHOD_ID(gHdmiCecServiceClassInfo.getLanguage, clazz,
             "getLanguage", "(I)Ljava/lang/String;");
 
@@ -596,64 +572,43 @@
 static void nativeSendMessage(JNIEnv* env, jclass clazz, jlong handlerPtr, jint deviceType,
         jint dstAddr, jint opcode, jbyteArray params) {
     HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    cec_logical_address_t srcAddr = handler->getLogicalAddress(deviceType);
+    cec_logical_address_t srcAddr = handler->getLogicalAddress(
+            static_cast<cec_device_type_t>(deviceType));
     jsize len = env->GetArrayLength(params);
     ScopedByteArrayRO paramsPtr(env, params);
     cec_message_t message;
     message.initiator = srcAddr;
     message.destination = static_cast<cec_logical_address_t>(dstAddr);
-    message.length = len + 1;
+    message.length = min(len + 1, CEC_MESSAGE_BODY_MAX_LENGTH);
     message.body[0] = opcode;
-    std::memcpy(message.body + 1, paramsPtr.get(), len);
+    std::memcpy(message.body + 1, paramsPtr.get(), message.length - 1);
     handler->sendCecMessage(message);
 }
 
-static int nativeAllocateLogicalAddress(JNIEnv* env, jclass clazz, jlong handlerPtr,
+static jint nativeAllocateLogicalAddress(JNIEnv* env, jclass clazz, jlong handlerPtr,
         jint deviceType) {
     HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    return handler->initLogicalDevice(deviceType);
+    return handler->initLogicalDevice(static_cast<cec_device_type_t>(deviceType));
 }
 
 static void nativeRemoveLogicalAddress(JNIEnv* env, jclass clazz, jlong handlerPtr,
        jint deviceType) {
     HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    return handler->releaseLogicalDevice(deviceType);
+    return handler->releaseLogicalDevice(static_cast<cec_device_type_t>(deviceType));
 }
 
-static void nativeSendActiveSource(JNIEnv* env, jclass clazz, jlong handlerPtr,
-        jint deviceType) {
+static jint nativeGetPhysicalAddress(JNIEnv* env, jclass clazz, jlong handlerPtr) {
     HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    cec_logical_address_t srcAddr = handler->getLogicalAddress(deviceType);
-    handler->sendActiveSource(srcAddr);
+    return handler->getPhysicalAddress();
 }
 
-static void nativeSendInactiveSource(JNIEnv* env, jclass clazz, jlong handlerPtr,
-        jint deviceType) {
+static void nativeSetOsdName(JNIEnv* env, jclass clazz, jlong handlerPtr, jbyteArray name) {
     HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    cec_logical_address_t srcAddr = handler->getLogicalAddress(deviceType);
-    handler->sendInactiveSource(srcAddr);
-}
-
-static void nativeSendImageViewOn(JNIEnv* env, jclass clazz, jlong handlerPtr,
-        jint deviceType) {
-    HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    cec_logical_address_t srcAddr = handler->getLogicalAddress(deviceType);
-    handler->sendImageViewOn(srcAddr);
-}
-
-static void nativeSendTextViewOn(JNIEnv* env, jclass clazz, jlong handlerPtr,
-        jint deviceType) {
-    HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    cec_logical_address_t srcAddr = handler->getLogicalAddress(deviceType);
-    handler->sendTextViewOn(srcAddr);
-}
-
-static void nativeSendGiveDevicePowerStatus(JNIEnv* env, jclass clazz, jlong handlerPtr,
-        jint deviceType, jint destination) {
-    HdmiCecHandler *handler = reinterpret_cast<HdmiCecHandler *>(handlerPtr);
-    cec_logical_address_t srcAddr = handler->getLogicalAddress(deviceType);
-    cec_logical_address_t dstAddr = static_cast<cec_logical_address_t>(destination);
-    handler->sendGiveDevicePowerStatus(srcAddr, dstAddr);
+    jsize len = env->GetArrayLength(name);
+    if (len > 0) {
+        ScopedByteArrayRO namePtr(env, name);
+        handler->setOsdName(reinterpret_cast<const char *>(namePtr.get()), len);
+    }
 }
 
 static JNINativeMethod sMethods[] = {
@@ -666,16 +621,10 @@
             (void *)nativeAllocateLogicalAddress },
     { "nativeRemoveLogicalAddress", "(JI)V",
             (void *)nativeRemoveLogicalAddress },
-    { "nativeSendActiveSource", "(JI)V",
-            (void *)nativeSendActiveSource },
-    { "nativeSendInactiveSource", "(JI)V",
-            (void *)nativeSendInactiveSource },
-    { "nativeSendImageViewOn", "(JI)V",
-            (void *)nativeSendImageViewOn },
-    { "nativeSendTextViewOn", "(JI)V",
-            (void *)nativeSendTextViewOn },
-    { "nativeSendGiveDevicePowerStatus", "(JII)V",
-            (void *)nativeSendGiveDevicePowerStatus }
+    { "nativeGetPhysicalAddress", "(J)I",
+            (void *)nativeGetPhysicalAddress },
+    { "nativeSetOsdName", "(J[B)V",
+            (void *)nativeSetOsdName },
 };
 
 #define CLASS_PATH "com/android/server/hdmi/HdmiCecService"
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index e1069ae..4085991 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -71,7 +71,7 @@
     jmethodID notifyANR;
     jmethodID filterInputEvent;
     jmethodID interceptKeyBeforeQueueing;
-    jmethodID interceptMotionBeforeQueueingWhenScreenOff;
+    jmethodID interceptWakeMotionBeforeQueueing;
     jmethodID interceptKeyBeforeDispatching;
     jmethodID dispatchUnhandledKey;
     jmethodID checkInjectEventsPermission;
@@ -150,7 +150,7 @@
     status_t status = android_view_PointerIcon_loadSystemIcon(env,
             contextObj, style, &pointerIcon);
     if (!status) {
-        pointerIcon.bitmap.copyTo(&outSpriteIcon->bitmap, SkBitmap::kARGB_8888_Config);
+        pointerIcon.bitmap.copyTo(&outSpriteIcon->bitmap, kNative_8888_SkColorType);
         outSpriteIcon->hotSpotX = pointerIcon.hotSpotX;
         outSpriteIcon->hotSpotY = pointerIcon.hotSpotY;
     }
@@ -189,6 +189,7 @@
     void setSystemUiVisibility(int32_t visibility);
     void setPointerSpeed(int32_t speed);
     void setShowTouches(bool enabled);
+    void setInteractive(bool interactive);
     void reloadCalibration();
 
     /* --- InputReaderPolicyInterface implementation --- */
@@ -214,7 +215,6 @@
     virtual void notifyInputChannelBroken(const sp<InputWindowHandle>& inputWindowHandle);
     virtual bool filterInputEvent(const InputEvent* inputEvent, uint32_t policyFlags);
     virtual void getDispatcherConfiguration(InputDispatcherConfiguration* outConfig);
-    virtual bool isKeyRepeatEnabled();
     virtual void interceptKeyBeforeQueueing(const KeyEvent* keyEvent, uint32_t& policyFlags);
     virtual void interceptMotionBeforeQueueing(nsecs_t when, uint32_t& policyFlags);
     virtual nsecs_t interceptKeyBeforeDispatching(
@@ -262,14 +262,12 @@
         wp<PointerController> pointerController;
     } mLocked;
 
+    volatile bool mInteractive;
+
     void updateInactivityTimeoutLocked(const sp<PointerController>& controller);
     void handleInterceptActions(jint wmActions, nsecs_t when, uint32_t& policyFlags);
     void ensureSpriteControllerLocked();
 
-    // Power manager interactions.
-    bool isScreenOn();
-    bool isScreenBright();
-
     static bool checkAndClearExceptionFromCallback(JNIEnv* env, const char* methodName);
 
     static inline JNIEnv* jniEnv() {
@@ -281,7 +279,7 @@
 
 NativeInputManager::NativeInputManager(jobject contextObj,
         jobject serviceObj, const sp<Looper>& looper) :
-        mLooper(looper) {
+        mLooper(looper), mInteractive(true) {
     JNIEnv* env = jniEnv();
 
     mContextObj = env->NewGlobalRef(contextObj);
@@ -637,11 +635,6 @@
     }
 }
 
-bool NativeInputManager::isKeyRepeatEnabled() {
-    // Only enable automatic key repeating when the screen is on.
-    return isScreenOn();
-}
-
 void NativeInputManager::setInputWindows(JNIEnv* env, jobjectArray windowHandleObjArray) {
     Vector<sp<InputWindowHandle> > windowHandles;
 
@@ -753,19 +746,15 @@
             InputReaderConfiguration::CHANGE_SHOW_TOUCHES);
 }
 
+void NativeInputManager::setInteractive(bool interactive) {
+    mInteractive = interactive;
+}
+
 void NativeInputManager::reloadCalibration() {
     mInputManager->getReader()->requestRefreshConfiguration(
             InputReaderConfiguration::TOUCH_AFFINE_TRANSFORMATION);
 }
 
-bool NativeInputManager::isScreenOn() {
-    return android_server_PowerManagerService_isScreenOn();
-}
-
-bool NativeInputManager::isScreenBright() {
-    return android_server_PowerManagerService_isScreenBright();
-}
-
 TouchAffineTransformation NativeInputManager::getTouchAffineTransformation(
         JNIEnv *env, jfloatArray matrixArr) {
     ScopedFloatArrayRO matrix(env, matrixArr);
@@ -841,18 +830,18 @@
     // - Ignore untrusted events and pass them along.
     // - Ask the window manager what to do with normal events and trusted injected events.
     // - For normal events wake and brighten the screen if currently off or dim.
+    if (mInteractive) {
+        policyFlags |= POLICY_FLAG_INTERACTIVE;
+    }
     if ((policyFlags & POLICY_FLAG_TRUSTED)) {
         nsecs_t when = keyEvent->getEventTime();
-        bool isScreenOn = this->isScreenOn();
-        bool isScreenBright = this->isScreenBright();
-
         JNIEnv* env = jniEnv();
         jobject keyEventObj = android_view_KeyEvent_fromNative(env, keyEvent);
         jint wmActions;
         if (keyEventObj) {
             wmActions = env->CallIntMethod(mServiceObj,
                     gServiceClassInfo.interceptKeyBeforeQueueing,
-                    keyEventObj, policyFlags, isScreenOn);
+                    keyEventObj, policyFlags);
             if (checkAndClearExceptionFromCallback(env, "interceptKeyBeforeQueueing")) {
                 wmActions = 0;
             }
@@ -863,16 +852,6 @@
             wmActions = 0;
         }
 
-        if (!(policyFlags & POLICY_FLAG_INJECTED)) {
-            if (!isScreenOn) {
-                policyFlags |= POLICY_FLAG_WOKE_HERE;
-            }
-
-            if (!isScreenBright) {
-                policyFlags |= POLICY_FLAG_BRIGHT_HERE;
-            }
-        }
-
         handleInterceptActions(wmActions, when, /*byref*/ policyFlags);
     } else {
         policyFlags |= POLICY_FLAG_PASS_TO_USER;
@@ -885,24 +864,22 @@
     // - No special filtering for injected events required at this time.
     // - Filter normal events based on screen state.
     // - For normal events brighten (but do not wake) the screen if currently dim.
+    if (mInteractive) {
+        policyFlags |= POLICY_FLAG_INTERACTIVE;
+    }
     if ((policyFlags & POLICY_FLAG_TRUSTED) && !(policyFlags & POLICY_FLAG_INJECTED)) {
-        if (isScreenOn()) {
+        if (policyFlags & POLICY_FLAG_INTERACTIVE) {
             policyFlags |= POLICY_FLAG_PASS_TO_USER;
-
-            if (!isScreenBright()) {
-                policyFlags |= POLICY_FLAG_BRIGHT_HERE;
-            }
-        } else {
+        } else if (policyFlags & (POLICY_FLAG_WAKE | POLICY_FLAG_WAKE_DROPPED)) {
             JNIEnv* env = jniEnv();
             jint wmActions = env->CallIntMethod(mServiceObj,
-                        gServiceClassInfo.interceptMotionBeforeQueueingWhenScreenOff,
+                        gServiceClassInfo.interceptWakeMotionBeforeQueueing,
                         when, policyFlags);
             if (checkAndClearExceptionFromCallback(env,
-                    "interceptMotionBeforeQueueingWhenScreenOff")) {
+                    "interceptWakeMotionBeforeQueueing")) {
                 wmActions = 0;
             }
 
-            policyFlags |= POLICY_FLAG_WOKE_HERE | POLICY_FLAG_BRIGHT_HERE;
             handleInterceptActions(wmActions, when, /*byref*/ policyFlags);
         }
     } else {
@@ -1285,6 +1262,13 @@
     im->setShowTouches(enabled);
 }
 
+static void nativeSetInteractive(JNIEnv* env,
+        jclass clazz, jlong ptr, jboolean interactive) {
+    NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
+
+    im->setInteractive(interactive);
+}
+
 static void nativeReloadCalibration(JNIEnv* env, jclass clazz, jlong ptr) {
     NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
     im->reloadCalibration();
@@ -1297,7 +1281,7 @@
 
     size_t patternSize = env->GetArrayLength(patternObj);
     if (patternSize > MAX_VIBRATE_PATTERN_SIZE) {
-        ALOGI("Skipped requested vibration because the pattern size is %d "
+        ALOGI("Skipped requested vibration because the pattern size is %zu "
                 "which is more than the maximum supported size of %d.",
                 patternSize, MAX_VIBRATE_PATTERN_SIZE);
         return; // limit to reasonable size
@@ -1395,6 +1379,8 @@
             (void*) nativeSetPointerSpeed },
     { "nativeSetShowTouches", "(JZ)V",
             (void*) nativeSetShowTouches },
+    { "nativeSetInteractive", "(JZ)V",
+            (void*) nativeSetInteractive },
     { "nativeReloadCalibration", "(J)V",
             (void*) nativeReloadCalibration },
     { "nativeVibrate", "(JI[JII)V",
@@ -1453,11 +1439,10 @@
             "filterInputEvent", "(Landroid/view/InputEvent;I)Z");
 
     GET_METHOD_ID(gServiceClassInfo.interceptKeyBeforeQueueing, clazz,
-            "interceptKeyBeforeQueueing", "(Landroid/view/KeyEvent;IZ)I");
+            "interceptKeyBeforeQueueing", "(Landroid/view/KeyEvent;I)I");
 
-    GET_METHOD_ID(gServiceClassInfo.interceptMotionBeforeQueueingWhenScreenOff,
-            clazz,
-            "interceptMotionBeforeQueueingWhenScreenOff", "(JI)I");
+    GET_METHOD_ID(gServiceClassInfo.interceptWakeMotionBeforeQueueing, clazz,
+            "interceptWakeMotionBeforeQueueing", "(JI)I");
 
     GET_METHOD_ID(gServiceClassInfo.interceptKeyBeforeDispatching, clazz,
             "interceptKeyBeforeDispatching",
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
index 151e134..33e0bd7 100644
--- a/services/core/jni/com_android_server_power_PowerManagerService.cpp
+++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp
@@ -42,8 +42,6 @@
 // ----------------------------------------------------------------------------
 
 static struct {
-    jmethodID wakeUpFromNative;
-    jmethodID goToSleepFromNative;
     jmethodID userActivityFromNative;
 } gPowerManagerServiceClassInfo;
 
@@ -52,10 +50,6 @@
 static jobject gPowerManagerServiceObj;
 static struct power_module* gPowerModule;
 
-static Mutex gPowerManagerLock;
-static bool gScreenOn;
-static bool gScreenBright;
-
 static nsecs_t gLastEventTime[USER_ACTIVITY_EVENT_LAST + 1];
 
 // Throttling interval for user activity calls.
@@ -73,16 +67,6 @@
     return false;
 }
 
-bool android_server_PowerManagerService_isScreenOn() {
-    AutoMutex _l(gPowerManagerLock);
-    return gScreenOn;
-}
-
-bool android_server_PowerManagerService_isScreenBright() {
-    AutoMutex _l(gPowerManagerLock);
-    return gScreenBright;
-}
-
 void android_server_PowerManagerService_userActivity(nsecs_t eventTime, int32_t eventType) {
     // Tell the power HAL when user activity occurs.
     if (gPowerModule && gPowerModule->powerHint) {
@@ -114,28 +98,6 @@
     }
 }
 
-void android_server_PowerManagerService_wakeUp(nsecs_t eventTime) {
-    if (gPowerManagerServiceObj) {
-        JNIEnv* env = AndroidRuntime::getJNIEnv();
-
-        env->CallVoidMethod(gPowerManagerServiceObj,
-                gPowerManagerServiceClassInfo.wakeUpFromNative,
-                nanoseconds_to_milliseconds(eventTime));
-        checkAndClearExceptionFromCallback(env, "wakeUpFromNative");
-    }
-}
-
-void android_server_PowerManagerService_goToSleep(nsecs_t eventTime) {
-    if (gPowerManagerServiceObj) {
-        JNIEnv* env = AndroidRuntime::getJNIEnv();
-
-        env->CallVoidMethod(gPowerManagerServiceObj,
-                gPowerManagerServiceClassInfo.goToSleepFromNative,
-                nanoseconds_to_milliseconds(eventTime), 0);
-        checkAndClearExceptionFromCallback(env, "goToSleepFromNative");
-    }
-}
-
 // ----------------------------------------------------------------------------
 
 static void nativeInit(JNIEnv* env, jobject obj) {
@@ -150,13 +112,6 @@
     }
 }
 
-static void nativeSetPowerState(JNIEnv* env,
-        jclass clazz, jboolean screenOn, jboolean screenBright) {
-    AutoMutex _l(gPowerManagerLock);
-    gScreenOn = screenOn;
-    gScreenBright = screenBright;
-}
-
 static void nativeAcquireSuspendBlocker(JNIEnv *env, jclass clazz, jstring nameStr) {
     ScopedUtfChars name(env, nameStr);
     acquire_wake_lock(PARTIAL_WAKE_LOCK, name.c_str());
@@ -189,14 +144,24 @@
     }
 }
 
+static void nativeSendPowerHint(JNIEnv *env, jclass clazz, jint hintId, jint data) {
+    int data_param = data;
+
+    if (gPowerModule && gPowerModule->powerHint) {
+        if(data)
+            gPowerModule->powerHint(gPowerModule, (power_hint_t)hintId, &data_param);
+        else {
+            gPowerModule->powerHint(gPowerModule, (power_hint_t)hintId, NULL);
+        }
+    }
+}
+
 // ----------------------------------------------------------------------------
 
 static JNINativeMethod gPowerManagerServiceMethods[] = {
     /* name, signature, funcPtr */
     { "nativeInit", "()V",
             (void*) nativeInit },
-    { "nativeSetPowerState", "(ZZ)V",
-            (void*) nativeSetPowerState },
     { "nativeAcquireSuspendBlocker", "(Ljava/lang/String;)V",
             (void*) nativeAcquireSuspendBlocker },
     { "nativeReleaseSuspendBlocker", "(Ljava/lang/String;)V",
@@ -205,6 +170,8 @@
             (void*) nativeSetInteractive },
     { "nativeSetAutoSuspend", "(Z)V",
             (void*) nativeSetAutoSuspend },
+    { "nativeSendPowerHint", "(II)V",
+            (void*) nativeSendPowerHint },
 };
 
 #define FIND_CLASS(var, className) \
@@ -229,12 +196,6 @@
     jclass clazz;
     FIND_CLASS(clazz, "com/android/server/power/PowerManagerService");
 
-    GET_METHOD_ID(gPowerManagerServiceClassInfo.wakeUpFromNative, clazz,
-            "wakeUpFromNative", "(J)V");
-
-    GET_METHOD_ID(gPowerManagerServiceClassInfo.goToSleepFromNative, clazz,
-            "goToSleepFromNative", "(JI)V");
-
     GET_METHOD_ID(gPowerManagerServiceClassInfo.userActivityFromNative, clazz,
             "userActivityFromNative", "(JII)V");
 
@@ -242,8 +203,6 @@
     for (int i = 0; i <= USER_ACTIVITY_EVENT_LAST; i++) {
         gLastEventTime[i] = LLONG_MIN;
     }
-    gScreenOn = true;
-    gScreenBright = true;
     gPowerManagerServiceObj = NULL;
     gPowerModule = NULL;
     return 0;
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.h b/services/core/jni/com_android_server_power_PowerManagerService.h
index b48e546..f5fd3d6 100644
--- a/services/core/jni/com_android_server_power_PowerManagerService.h
+++ b/services/core/jni/com_android_server_power_PowerManagerService.h
@@ -24,11 +24,7 @@
 
 namespace android {
 
-extern bool android_server_PowerManagerService_isScreenOn();
-extern bool android_server_PowerManagerService_isScreenBright();
 extern void android_server_PowerManagerService_userActivity(nsecs_t eventTime, int32_t eventType);
-extern void android_server_PowerManagerService_wakeUp(nsecs_t eventTime);
-extern void android_server_PowerManagerService_goToSleep(nsecs_t eventTime);
 
 } // namespace android
 
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index f186b2c..5a458a3 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -170,7 +170,7 @@
         int mActivePasswordNonLetter = 0;
         int mFailedPasswordAttempts = 0;
 
-        int mUserHandle;;
+        int mUserHandle;
         int mPasswordOwner = -1;
         long mLastMaximumTimeToLock = -1;
 
@@ -722,6 +722,10 @@
         final int callingUid = Binder.getCallingUid();
         final int userHandle = UserHandle.getUserId(callingUid);
         final DevicePolicyData policy = getUserData(userHandle);
+
+        List<ActiveAdmin> candidates = new ArrayList<ActiveAdmin>();
+
+        // Build a list of admins for this uid matching the given ComponentName
         if (who != null) {
             ActiveAdmin admin = policy.mAdminMap.get(who);
             if (admin == null) {
@@ -731,22 +735,43 @@
                 throw new SecurityException("Admin " + who + " is not owned by uid "
                         + Binder.getCallingUid());
             }
-            if (!admin.info.usesPolicy(reqPolicy)) {
-                throw new SecurityException("Admin " + admin.info.getComponent()
-                        + " did not specify uses-policy for: "
-                        + admin.info.getTagForPolicy(reqPolicy));
-            }
-            return admin;
+            candidates.add(admin);
         } else {
-            final int N = policy.mAdminList.size();
-            for (int i=0; i<N; i++) {
-                ActiveAdmin admin = policy.mAdminList.get(i);
-                if (admin.getUid() == callingUid && admin.info.usesPolicy(reqPolicy)) {
+            for (ActiveAdmin admin : policy.mAdminList) {
+                if (admin.getUid() == callingUid) {
+                    candidates.add(admin);
+                }
+            }
+        }
+
+        // Try to find an admin which can use reqPolicy
+        for (ActiveAdmin admin : candidates) {
+            boolean ownsDevice = isDeviceOwner(admin.info.getPackageName());
+            boolean ownsProfile = (getProfileOwner(userHandle) != null
+                    && getProfileOwner(userHandle).equals(admin.info.getPackageName()));
+
+            if (reqPolicy == DeviceAdminInfo.USES_POLICY_DEVICE_OWNER) {
+                if (ownsDevice) {
+                    return admin;
+                }
+            } else if (reqPolicy == DeviceAdminInfo.USES_POLICY_PROFILE_OWNER) {
+                if (ownsDevice || ownsProfile) {
+                    return admin;
+                }
+            } else {
+                if (admin.info.usesPolicy(reqPolicy)) {
                     return admin;
                 }
             }
+        }
+
+        if (who != null) {
+            throw new SecurityException("Admin " + candidates.get(0).info.getComponent()
+                    + " did not specify uses-policy for: "
+                    + candidates.get(0).info.getTagForPolicy(reqPolicy));
+        } else {
             throw new SecurityException("No active admin owned by uid "
-                    + Binder.getCallingUid() + " for policy #" + reqPolicy);
+                    + Binder.getCallingUid() + " for policy:" + reqPolicy);
         }
     }
 
@@ -2863,6 +2888,33 @@
     }
 
     @Override
+    public void setProfileEnabled(ComponentName who) {
+        if (!mHasFeature) {
+            return;
+        }
+        synchronized (this) {
+            // Check for permissions
+            if (who == null) {
+                throw new NullPointerException("ComponentName is null");
+            }
+            // Check if this is the profile owner who is calling
+            getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+            Slog.d(LOG_TAG, "Enabling the profile for: " + UserHandle.getCallingUserId());
+            long id = Binder.clearCallingIdentity();
+
+            try {
+                Intent intent = new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED);
+                intent.putExtra(Intent.EXTRA_USER, new UserHandle(UserHandle.getCallingUserId()));
+                intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY |
+                        Intent.FLAG_RECEIVER_FOREGROUND);
+                mContext.sendBroadcastAsUser(intent, UserHandle.OWNER);
+            } finally {
+                restoreCallingIdentity(id);
+            }
+        }
+    }
+
+    @Override
     public String getProfileOwner(int userHandle) {
         if (!mHasFeature) {
             return null;
@@ -2966,64 +3018,41 @@
         }
     }
 
-    private boolean isProfileOwner(String packageName, int userId) {
-        String profileOwnerPackage = getProfileOwner(userId);
-        // TODO: make public and connect with isProfileOwnerApp in DPM
-        return profileOwnerPackage != null && profileOwnerPackage.equals(packageName);
-    }
-
-    public void addPersistentPreferredActivity(ComponentName admin, IntentFilter filter,
+    public void addPersistentPreferredActivity(ComponentName who, IntentFilter filter,
             ComponentName activity) {
-        int callingUserId = UserHandle.getCallingUserId();
-        Slog.d(LOG_TAG,"called by user " + callingUserId);
         synchronized (this) {
-            ActiveAdmin aa = getActiveAdminUncheckedLocked(admin, callingUserId);
-            if (aa == null) {
-                throw new SecurityException("No active admin " + admin);
-            } else {
-                if (isProfileOwner(admin.getPackageName(), callingUserId)
-                        || isDeviceOwner(admin.getPackageName())) {
-                    IPackageManager pm = AppGlobals.getPackageManager();
-                    long id = Binder.clearCallingIdentity();
-                    try {
-                        pm.addPersistentPreferredActivity(filter, activity, callingUserId);
-                    } catch (RemoteException re) {
-                        // Shouldn't happen
-                    } finally {
-                        restoreCallingIdentity(id);
-                    }
-                } else {
-                    throw new SecurityException("Admin " + admin +
-                            "is not device owner or profile owner" );
-                }
+            if (who == null) {
+                throw new NullPointerException("ComponentName is null");
+            }
+            getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+
+            IPackageManager pm = AppGlobals.getPackageManager();
+            long id = Binder.clearCallingIdentity();
+            try {
+                pm.addPersistentPreferredActivity(filter, activity, UserHandle.getCallingUserId());
+            } catch (RemoteException re) {
+                // Shouldn't happen
+            } finally {
+                restoreCallingIdentity(id);
             }
         }
     }
 
-    public void clearPackagePersistentPreferredActivities(ComponentName admin,
-            String packageName) {
-        int callingUserId = UserHandle.getCallingUserId();
-        Slog.d(LOG_TAG,"called by user " + callingUserId);
+    public void clearPackagePersistentPreferredActivities(ComponentName who, String packageName) {
         synchronized (this) {
-            ActiveAdmin aa = getActiveAdminUncheckedLocked(admin, callingUserId);
-            if (aa == null) {
-                throw new SecurityException("No active admin " + admin);
-            } else {
-                if (isProfileOwner(admin.getPackageName(), callingUserId)
-                        || isDeviceOwner(admin.getPackageName())) {
-                    IPackageManager pm = AppGlobals.getPackageManager();
-                    long id = Binder.clearCallingIdentity();
-                    try{
-                        pm.clearPackagePersistentPreferredActivities(packageName, callingUserId);
-                    } catch (RemoteException re) {
-                        // Shouldn't happen
-                    } finally {
-                        restoreCallingIdentity(id);
-                    }
-                } else {
-                    throw new SecurityException("Admin " + admin +
-                            "is not device owner or profile owner" );
-                }
+            if (who == null) {
+                throw new NullPointerException("ComponentName is null");
+            }
+            getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+
+            IPackageManager pm = AppGlobals.getPackageManager();
+            long id = Binder.clearCallingIdentity();
+            try {
+                pm.clearPackagePersistentPreferredActivities(packageName, UserHandle.getCallingUserId());
+            } catch (RemoteException re) {
+                // Shouldn't happen
+            } finally {
+                restoreCallingIdentity(id);
             }
         }
     }
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index c925669..912ac4d 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -42,6 +42,7 @@
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.service.dreams.DreamService;
+import android.tv.TvInputManager;
 import android.util.DisplayMetrics;
 import android.util.EventLog;
 import android.util.Log;
@@ -50,6 +51,7 @@
 
 import com.android.internal.R;
 import com.android.internal.os.BinderInternal;
+import com.android.internal.os.Zygote;
 import com.android.internal.os.SamplingProfilerIntegration;
 import com.android.server.accessibility.AccessibilityManagerService;
 import com.android.server.accounts.AccountManagerService;
@@ -69,6 +71,7 @@
 import com.android.server.notification.NotificationManagerService;
 import com.android.server.os.SchedulingPolicyService;
 import com.android.server.pm.Installer;
+import com.android.server.pm.LauncherAppsService;
 import com.android.server.pm.PackageManagerService;
 import com.android.server.pm.UserManagerService;
 import com.android.server.power.PowerManagerService;
@@ -76,13 +79,14 @@
 import com.android.server.search.SearchManagerService;
 import com.android.server.statusbar.StatusBarManagerService;
 import com.android.server.storage.DeviceStorageMonitorService;
+import com.android.server.trust.TrustManagerService;
+import com.android.server.tv.TvInputManagerService;
 import com.android.server.twilight.TwilightService;
 import com.android.server.usb.UsbService;
 import com.android.server.wallpaper.WallpaperManagerService;
 import com.android.server.wm.WindowManagerService;
 
 import dalvik.system.VMRuntime;
-import dalvik.system.Zygote;
 
 import java.io.File;
 import java.util.Timer;
@@ -116,6 +120,8 @@
             "com.android.server.usb.UsbService$Lifecycle";
     private static final String WIFI_SERVICE_CLASS =
             "com.android.server.wifi.WifiService";
+    private static final String WIFI_HOTSPOT_SERVICE_CLASS =
+            "com.android.server.wifi.hotspot.WifiHotspotService";
     private static final String WIFI_P2P_SERVICE_CLASS =
             "com.android.server.wifi.p2p.WifiP2pService";
     private static final String HDMI_CEC_SERVICE_CLASS =
@@ -266,7 +272,7 @@
     private void createSystemContext() {
         ActivityThread activityThread = ActivityThread.systemMain();
         mSystemContext = activityThread.getSystemContext();
-        mSystemContext.setTheme(android.R.style.Theme_Holo);
+        mSystemContext.setTheme(android.R.style.Theme_DeviceDefault_Light_DarkActionBar);
     }
 
     private void startBootstrapServices() {
@@ -614,6 +620,12 @@
                 }
 
                 try {
+                    mSystemServiceManager.startService(WIFI_HOTSPOT_SERVICE_CLASS);
+                } catch (Throwable e) {
+                    reportWtf("starting Wi-Fi HotspotService", e);
+                }
+
+                try {
                     mSystemServiceManager.startService(WIFI_SERVICE_CLASS);
                 } catch (Throwable e) {
                     reportWtf("starting Wi-Fi Service", e);
@@ -897,6 +909,13 @@
                 reportWtf("starting HdmiCec Service", e);
             }
 
+            try {
+                Slog.i(TAG, "TvInputManagerService");
+                mSystemServiceManager.startService(TvInputManagerService.class);
+            } catch (Throwable e) {
+                reportWtf("starting TvInputManagerService", e);
+            }
+
             if (!disableNonCoreServices) {
                 try {
                     Slog.i(TAG, "Media Router Service");
@@ -905,6 +924,21 @@
                 } catch (Throwable e) {
                     reportWtf("starting MediaRouterService", e);
                 }
+
+                try {
+                    Slog.i(TAG, "Trust Manager");
+                    mSystemServiceManager.startService(TrustManagerService.class);
+                } catch (Throwable e) {
+                    Slog.e(TAG, "Failure starting TrustManagerService", e);
+                }
+            }
+
+            try {
+                Slog.i(TAG, "LauncherAppsService");
+                LauncherAppsService las = new LauncherAppsService(context);
+                ServiceManager.addService(Context.LAUNCHER_APPS_SERVICE, las);
+            } catch (Throwable t) {
+                reportWtf("starting LauncherAppsService", t);
             }
         }
 
@@ -913,8 +947,6 @@
         final boolean safeMode = wm.detectSafeMode();
         if (safeMode) {
             mActivityManagerService.enterSafeMode();
-            // Post the safe mode state in the Zygote class
-            Zygote.systemInSafeMode = true;
             // Disable the JIT for the system_server process
             VMRuntime.getRuntime().disableJitCompilation();
         } else {
diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
index 8b9f718..8392672 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
@@ -216,7 +216,7 @@
         expectLastCall().atLeastOnce();
 
         // expect to answer screen status during systemReady()
-        expect(mPowerManager.isScreenOn()).andReturn(true).atLeastOnce();
+        expect(mPowerManager.isInteractive()).andReturn(true).atLeastOnce();
         expect(mNetworkManager.isBandwidthControlEnabled()).andReturn(true).atLeastOnce();
         expectCurrentTime();
 
@@ -331,7 +331,7 @@
         verifyAndReset();
 
         // now turn screen off and verify REJECT rule
-        expect(mPowerManager.isScreenOn()).andReturn(false).atLeastOnce();
+        expect(mPowerManager.isInteractive()).andReturn(false).atLeastOnce();
         expectSetUidNetworkRules(UID_A, true);
         expectSetUidForeground(UID_A, false);
         future = expectRulesChanged(UID_A, RULE_REJECT_METERED);
@@ -341,7 +341,7 @@
         verifyAndReset();
 
         // and turn screen back on, verify ALLOW rule restored
-        expect(mPowerManager.isScreenOn()).andReturn(true).atLeastOnce();
+        expect(mPowerManager.isInteractive()).andReturn(true).atLeastOnce();
         expectSetUidNetworkRules(UID_A, false);
         expectSetUidForeground(UID_A, true);
         future = expectRulesChanged(UID_A, RULE_ALLOW_ALL);
diff --git a/services/usb/java/com/android/server/usb/UsbDebuggingManager.java b/services/usb/java/com/android/server/usb/UsbDebuggingManager.java
index ce953a4..f73d425 100644
--- a/services/usb/java/com/android/server/usb/UsbDebuggingManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDebuggingManager.java
@@ -17,8 +17,10 @@
 package com.android.server.usb;
 
 import android.content.ActivityNotFoundException;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.net.LocalSocket;
 import android.net.LocalSocketAddress;
 import android.os.Handler;
@@ -244,15 +246,18 @@
     }
 
     private void showConfirmationDialog(String key, String fingerprints) {
-        Intent dialogIntent = new Intent();
+        Intent intent = new Intent();
 
-        dialogIntent.setClassName("com.android.systemui",
-                "com.android.systemui.usb.UsbDebuggingActivity");
-        dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        dialogIntent.putExtra("key", key);
-        dialogIntent.putExtra("fingerprints", fingerprints);
+        ComponentName componentName = ComponentName.unflattenFromString(
+                Resources.getSystem().getString(
+                        com.android.internal.R.string.config_customAdbPublicKeyActivity));
+        intent.setClassName(componentName.getPackageName(),
+                componentName.getClassName());
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.putExtra("key", key);
+        intent.putExtra("fingerprints", fingerprints);
         try {
-            mContext.startActivity(dialogIntent);
+            mContext.startActivity(intent);
         } catch (ActivityNotFoundException e) {
             Slog.e(TAG, "unable to start UsbDebuggingActivity");
         }
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
index 502ee18..f5ac178 100644
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@@ -590,14 +590,19 @@
                 intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
                 intent.putExtra("state", (enabled ? 1 : 0));
                 if (enabled) {
+                    Scanner scanner = null;
                     try {
-                        Scanner scanner = new Scanner(new File(AUDIO_SOURCE_PCM_PATH));
+                        scanner = new Scanner(new File(AUDIO_SOURCE_PCM_PATH));
                         int card = scanner.nextInt();
                         int device = scanner.nextInt();
                         intent.putExtra("card", card);
                         intent.putExtra("device", device);
                     } catch (FileNotFoundException e) {
                         Slog.e(TAG, "could not open audio source PCM file", e);
+                    } finally {
+                        if (scanner != null) {
+                            scanner.close();
+                        }
                     }
                 }
                 mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
diff --git a/services/usb/java/com/android/server/usb/UsbHostManager.java b/services/usb/java/com/android/server/usb/UsbHostManager.java
index 7ae5460..8b54264 100644
--- a/services/usb/java/com/android/server/usb/UsbHostManager.java
+++ b/services/usb/java/com/android/server/usb/UsbHostManager.java
@@ -17,6 +17,7 @@
 package com.android.server.usb;
 
 import android.content.Context;
+import android.content.Intent;
 import android.hardware.usb.UsbConfiguration;
 import android.hardware.usb.UsbConstants;
 import android.hardware.usb.UsbDevice;
@@ -25,11 +26,16 @@
 import android.os.Bundle;
 import android.os.ParcelFileDescriptor;
 import android.os.Parcelable;
+import android.os.UserHandle;
 import android.util.Slog;
 
+import com.android.alsascan.AlsaCardsParser;
+import com.android.alsascan.AlsaDevicesParser;
 import com.android.internal.annotations.GuardedBy;
 
+import java.io.File;
 import java.io.FileDescriptor;
+import java.io.FileNotFoundException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -39,7 +45,7 @@
  */
 public class UsbHostManager {
     private static final String TAG = UsbHostManager.class.getSimpleName();
-    private static final boolean LOG = false;
+    private static final boolean DEBUG_AUDIO = false;
 
     // contains all connected USB devices
     private final HashMap<String, UsbDevice> mDevices = new HashMap<String, UsbDevice>();
@@ -57,6 +63,15 @@
     private ArrayList<UsbInterface> mNewInterfaces;
     private ArrayList<UsbEndpoint> mNewEndpoints;
 
+    // Attributes of any connected USB audio device.
+    //TODO(pmclean) When we extend to multiple, USB Audio devices, we will need to get
+    // more clever about this.
+    private int mConnectedUsbCard = -1;
+    private int mConnectedUsbDeviceNum = -1;
+    private boolean mConnectedHasPlayback = false;
+    private boolean mConnectedHasCapture = false;
+    private boolean mConnectedHasMIDI = false;
+
     @GuardedBy("mLock")
     private UsbSettingsManager mCurrentSettings;
 
@@ -102,6 +117,48 @@
         return false;
     }
 
+    // Broadcasts the arrival/departure of a USB audio interface
+    // card - the ALSA card number of the physical interface
+    // device - the ALSA device number of the physical interface
+    // enabled - if true, we're connecting a device (it's arrived), else disconnecting
+    private void sendDeviceNotification(int card, int device, boolean enabled,
+            boolean hasPlayback, boolean hasCapture, boolean hasMIDI) {
+        // send a sticky broadcast containing current USB state
+        Intent intent = new Intent(Intent.ACTION_USB_AUDIO_DEVICE_PLUG);
+        intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
+        intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+        intent.putExtra("state", enabled ? 1 : 0);
+        intent.putExtra("card", card);
+        intent.putExtra("device", device);
+        intent.putExtra("hasPlayback", hasPlayback);
+        intent.putExtra("hasCapture", hasCapture);
+        intent.putExtra("hasMIDI", hasMIDI);
+        mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
+    }
+
+    private boolean waitForAlsaFile(int card, int device, boolean capture) {
+        // These values were empirically determined.
+        final int kNumRetries = 5;
+        final int kSleepTime = 500; // ms
+        String alsaDevPath = "/dev/snd/pcmC" + card + "D" + device + (capture ? "c" : "p");
+        File alsaDevFile = new File(alsaDevPath);
+        boolean exists = false;
+        for (int retry = 0; !exists && retry < kNumRetries; retry++) {
+            exists = alsaDevFile.exists();
+            if (!exists) {
+                try {
+                    Thread.sleep(kSleepTime);
+                } catch (IllegalThreadStateException ex) {
+                    Slog.d(TAG, "usb: IllegalThreadStateException while waiting for ALSA file.");
+                } catch (java.lang.InterruptedException ex) {
+                    Slog.d(TAG, "usb: InterruptedException while waiting for ALSA file.");
+                }
+            }
+        }
+
+        return exists;
+    }
+
     /* Called from JNI in monitorUsbHostBus() to report new USB devices
        Returns true if successful, in which case the JNI code will continue adding configurations,
        interfaces and endpoints, and finally call endUsbDeviceAdded after all descriptors
@@ -111,6 +168,25 @@
             int deviceClass, int deviceSubclass, int deviceProtocol,
             String manufacturerName, String productName, String serialNumber) {
 
+        if (DEBUG_AUDIO) {
+            Slog.d(TAG, "usb:UsbHostManager.beginUsbDeviceAdded(" + deviceName + ")");
+            // Audio Class Codes:
+            // Audio: 0x01
+            // Audio Subclass Codes:
+            // undefined: 0x00
+            // audio control: 0x01
+            // audio streaming: 0x02
+            // midi streaming: 0x03
+
+            // some useful debugging info
+            Slog.d(TAG, "usb: nm:" + deviceName + " vnd:" + vendorID + " prd:" + productID + " cls:"
+                    + deviceClass + " sub:" + deviceSubclass + " proto:" + deviceProtocol);
+        }
+
+        // OK this is non-obvious, but true. One can't tell if the device being attached is even
+        // potentially an audio device without parsing the interface descriptors, so punt on any
+        // such test until endUsbDeviceAdded() when we have that info.
+
         if (isBlackListed(deviceName) ||
                 isBlackListed(deviceClass, deviceSubclass, deviceProtocol)) {
             return false;
@@ -135,6 +211,7 @@
             mNewInterfaces = new ArrayList<UsbInterface>();
             mNewEndpoints = new ArrayList<UsbEndpoint>();
         }
+
         return true;
     }
 
@@ -176,6 +253,9 @@
 
     /* Called from JNI in monitorUsbHostBus() to finish adding a new device */
     private void endUsbDeviceAdded() {
+        if (DEBUG_AUDIO) {
+            Slog.d(TAG, "usb:UsbHostManager.endUsbDeviceAdded()");
+        }
         if (mNewInterface != null) {
             mNewInterface.setEndpoints(
                     mNewEndpoints.toArray(new UsbEndpoint[mNewEndpoints.size()]));
@@ -185,6 +265,17 @@
                     mNewInterfaces.toArray(new UsbInterface[mNewInterfaces.size()]));
         }
 
+        // Is there an audio interface in there?
+        final int kUsbClassId_Audio = 0x01;
+        boolean isAudioDevice = false;
+        for (int ntrfaceIndex = 0; !isAudioDevice && ntrfaceIndex < mNewInterfaces.size();
+                ntrfaceIndex++) {
+            UsbInterface ntrface = mNewInterfaces.get(ntrfaceIndex);
+            if (ntrface.getInterfaceClass() == kUsbClassId_Audio) {
+                isAudioDevice = true;
+            }
+        }
+
         synchronized (mLock) {
             if (mNewDevice != null) {
                 mNewDevice.setConfigurations(
@@ -200,10 +291,70 @@
             mNewInterfaces = null;
             mNewEndpoints = null;
         }
+
+        if (!isAudioDevice) {
+            return; // bail
+        }
+
+        //TODO(pmclean) The "Parser" objects inspect files in "/proc/asound" which we presume is
+        // present, unlike the waitForAlsaFile() which waits on a file in /dev/snd. It is not
+        // clear why this works, or that it can be relied on going forward.  Needs further
+        // research.
+        AlsaCardsParser cardsParser = new AlsaCardsParser();
+        cardsParser.scan();
+        // cardsParser.Log();
+
+        // But we need to parse the device to determine its capabilities.
+        AlsaDevicesParser devicesParser = new AlsaDevicesParser();
+        devicesParser.scan();
+        // devicesParser.Log();
+
+        // The protocol for now will be to select the last-connected (highest-numbered)
+        // Alsa Card.
+        mConnectedUsbCard = cardsParser.getNumCardRecords() - 1;
+        mConnectedUsbDeviceNum = 0;
+
+        if (!waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, false)) {
+            return;
+        }
+
+        mConnectedHasPlayback = devicesParser.hasPlaybackDevices(mConnectedUsbCard);
+        mConnectedHasCapture = devicesParser.hasCaptureDevices(mConnectedUsbCard);
+        mConnectedHasMIDI = devicesParser.hasMIDIDevices(mConnectedUsbCard);
+
+        if (DEBUG_AUDIO) {
+            Slog.d(TAG,
+                    "usb: hasPlayback:" + mConnectedHasPlayback + " hasCapture:" + mConnectedHasCapture);
+        }
+
+        sendDeviceNotification(mConnectedUsbCard,
+                mConnectedUsbDeviceNum,
+                true,
+                mConnectedHasPlayback,
+                mConnectedHasCapture,
+                mConnectedHasMIDI);
     }
 
     /* Called from JNI in monitorUsbHostBus to report USB device removal */
     private void usbDeviceRemoved(String deviceName) {
+        if (DEBUG_AUDIO) {
+          Slog.d(TAG, "usb:UsbHostManager.usbDeviceRemoved() nm:" + deviceName);
+        }
+
+        if (mConnectedUsbCard != -1 && mConnectedUsbDeviceNum != -1) {
+            sendDeviceNotification(mConnectedUsbCard,
+                    mConnectedUsbDeviceNum,
+                    false,
+                    mConnectedHasPlayback,
+                    mConnectedHasCapture,
+                    mConnectedHasMIDI);
+            mConnectedUsbCard = -1;
+            mConnectedUsbDeviceNum = -1;
+            mConnectedHasPlayback = false;
+            mConnectedHasCapture = false;
+            mConnectedHasMIDI = false;
+        }
+
         synchronized (mLock) {
             UsbDevice device = mDevices.remove(deviceName);
             if (device != null) {
diff --git a/telephony/java/android/telephony/CellSignalStrengthCdma.java b/telephony/java/android/telephony/CellSignalStrengthCdma.java
index 46d09f6..be13acc 100644
--- a/telephony/java/android/telephony/CellSignalStrengthCdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthCdma.java
@@ -137,7 +137,6 @@
 
     /**
      * Get the signal level as an asu value between 0..97, 99 is unknown
-     * Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69
      */
     @Override
     public int getAsuLevel() {
@@ -342,7 +341,7 @@
 
     /**
      * Construct a SignalStrength object from the given parcel
-     * where the TYPE_LTE token is already been processed.
+     * where the TYPE_CDMA token is already been processed.
      */
     private CellSignalStrengthCdma(Parcel in) {
         // CdmaDbm, CdmaEcio, EvdoDbm and EvdoEcio are written into
diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java
index 323e0ac..1c75658 100644
--- a/telephony/java/android/telephony/DisconnectCause.java
+++ b/telephony/java/android/telephony/DisconnectCause.java
@@ -101,8 +101,93 @@
     /** Unknown error or not specified */
     public static final int ERROR_UNSPECIFIED              = 36;
 
+    /** Smallest valid value for call disconnect codes. */
+    public static final int MINIMUM_VALID_VALUE = NOT_DISCONNECTED;
+    /** Largest valid value for call disconnect codes. */
+    public static final int MAXIMUM_VALID_VALUE = ERROR_UNSPECIFIED;
+
     /** Private constructor to avoid class instantiation. */
     private DisconnectCause() {
         // Do nothing.
     }
+
+    /** Returns descriptive string for the specified disconnect cause. */
+    public static String toString(int cause) {
+        switch (cause) {
+        case NOT_DISCONNECTED:
+            return "NOT_DISCONNECTED";
+        case INCOMING_MISSED:
+            return "INCOMING_MISSED";
+        case NORMAL:
+            return "NORMAL";
+        case LOCAL:
+            return "LOCAL";
+        case BUSY:
+            return "BUSY";
+        case CONGESTION:
+            return "CONGESTION";
+        case INVALID_NUMBER:
+            return "INVALID_NUMBER";
+        case NUMBER_UNREACHABLE:
+            return "NUMBER_UNREACHABLE";
+        case SERVER_UNREACHABLE:
+            return "SERVER_UNREACHABLE";
+        case INVALID_CREDENTIALS:
+            return "INVALID_CREDENTIALS";
+        case OUT_OF_NETWORK:
+            return "OUT_OF_NETWORK";
+        case SERVER_ERROR:
+            return "SERVER_ERROR";
+        case TIMED_OUT:
+            return "TIMED_OUT";
+        case LOST_SIGNAL:
+            return "LOST_SIGNAL";
+        case LIMIT_EXCEEDED:
+            return "LIMIT_EXCEEDED";
+        case INCOMING_REJECTED:
+            return "INCOMING_REJECTED";
+        case POWER_OFF:
+            return "POWER_OFF";
+        case OUT_OF_SERVICE:
+            return "OUT_OF_SERVICE";
+        case ICC_ERROR:
+            return "ICC_ERROR";
+        case CALL_BARRED:
+            return "CALL_BARRED";
+        case FDN_BLOCKED:
+            return "FDN_BLOCKED";
+        case CS_RESTRICTED:
+            return "CS_RESTRICTED";
+        case CS_RESTRICTED_NORMAL:
+            return "CS_RESTRICTED_NORMAL";
+        case CS_RESTRICTED_EMERGENCY:
+            return "CS_RESTRICTED_EMERGENCY";
+        case UNOBTAINABLE_NUMBER:
+            return "UNOBTAINABLE_NUMBER";
+        case CDMA_LOCKED_UNTIL_POWER_CYCLE:
+            return "CDMA_LOCKED_UNTIL_POWER_CYCLE";
+        case CDMA_DROP:
+            return "CDMA_DROP";
+        case CDMA_INTERCEPT:
+            return "CDMA_INTERCEPT";
+        case CDMA_REORDER:
+            return "CDMA_REORDER";
+        case CDMA_SO_REJECT:
+            return "CDMA_SO_REJECT";
+        case CDMA_RETRY_ORDER:
+            return "CDMA_RETRY_ORDER";
+        case CDMA_ACCESS_FAILURE:
+            return "CDMA_ACCESS_FAILURE";
+        case CDMA_PREEMPTED:
+            return "CDMA_PREEMPTED";
+        case CDMA_NOT_EMERGENCY:
+            return "CDMA_NOT_EMERGENCY";
+        case CDMA_ACCESS_BLOCKED:
+            return "CDMA_ACCESS_BLOCKED";
+        case ERROR_UNSPECIFIED:
+            return "ERROR_UNSPECIFIED";
+        default:
+            return "INVALID";
+        }
+    }
 }
diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java
index 118cba4..992ef4b 100644
--- a/test-runner/src/android/test/mock/MockPackageManager.java
+++ b/test-runner/src/android/test/mock/MockPackageManager.java
@@ -16,6 +16,7 @@
 
 package android.test.mock;
 
+import android.app.PackageInstallObserver;
 import android.content.ComponentName;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -77,6 +78,12 @@
     }
 
     @Override
+    public Intent getLeanbackLaunchIntentForPackage(String packageName) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+
     public int[] getPackageGids(String packageName) throws NameNotFoundException {
         throw new UnsupportedOperationException();
     }
@@ -664,4 +671,34 @@
     public VerifierDeviceIdentity getVerifierDeviceIdentity() {
         throw new UnsupportedOperationException();
     }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void installPackage(Uri packageURI, PackageInstallObserver observer,
+            int flags, String installerPackageName) {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void installPackageWithVerification(Uri packageURI,
+            PackageInstallObserver observer, int flags, String installerPackageName,
+            Uri verificationURI, ManifestDigest manifestDigest,
+            ContainerEncryptionParams encryptionParams) {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void installPackageWithVerificationAndEncryption(Uri packageURI,
+            PackageInstallObserver observer, int flags, String installerPackageName,
+            VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) {
+        throw new UnsupportedOperationException();
+    }
 }
diff --git a/tests/CoreTests/android/core/NsdServiceInfoTest.java b/tests/CoreTests/android/core/NsdServiceInfoTest.java
new file mode 100644
index 0000000..5bf0167
--- /dev/null
+++ b/tests/CoreTests/android/core/NsdServiceInfoTest.java
@@ -0,0 +1,163 @@
+package android.core;
+
+import android.test.AndroidTestCase;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.StrictMode;
+import android.net.nsd.NsdServiceInfo;
+import android.util.Log;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+
+public class NsdServiceInfoTest extends AndroidTestCase {
+
+    public final static InetAddress LOCALHOST;
+    static {
+        // Because test.
+        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
+        StrictMode.setThreadPolicy(policy);
+
+        InetAddress _host = null;
+        try {
+            _host = InetAddress.getLocalHost();
+        } catch (UnknownHostException e) { }
+        LOCALHOST = _host;
+    }
+
+    public void testLimits() throws Exception {
+        NsdServiceInfo info = new NsdServiceInfo();
+
+        // Non-ASCII keys.
+        boolean exceptionThrown = false;
+        try {
+            info.setAttribute("猫", "meow");
+        } catch (IllegalArgumentException e) {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+        assertEmptyServiceInfo(info);
+
+        // ASCII keys with '=' character.
+        exceptionThrown = false;
+        try {
+            info.setAttribute("kitten=", "meow");
+        } catch (IllegalArgumentException e) {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+        assertEmptyServiceInfo(info);
+
+        // Single key + value length too long.
+        exceptionThrown = false;
+        try {
+            String longValue = "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" +
+                    "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" +
+                    "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" +
+                    "ooooooooooooooooooooooooooooong";  // 248 characters.
+            info.setAttribute("longcat", longValue);  // Key + value == 255 characters.
+        } catch (IllegalArgumentException e) {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+        assertEmptyServiceInfo(info);
+
+        // Total TXT record length too long.
+        exceptionThrown = false;
+        int recordsAdded = 0;
+        try {
+            for (int i = 100; i < 300; ++i) {
+                // 6 char key + 5 char value + 2 bytes overhead = 13 byte record length.
+                String key = String.format("key%d", i);
+                info.setAttribute(key, "12345");
+                recordsAdded++;
+            }
+        } catch (IllegalArgumentException e) {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+        assertTrue(100 == recordsAdded);
+        assertTrue(info.getTxtRecord().length == 1300);
+    }
+
+    public void testParcel() throws Exception {
+        NsdServiceInfo emptyInfo = new NsdServiceInfo();
+        checkParcelable(emptyInfo);
+
+        NsdServiceInfo fullInfo = new NsdServiceInfo();
+        fullInfo.setServiceName("kitten");
+        fullInfo.setServiceType("_kitten._tcp");
+        fullInfo.setPort(4242);
+        fullInfo.setHost(LOCALHOST);
+        checkParcelable(fullInfo);
+
+        NsdServiceInfo noHostInfo = new NsdServiceInfo();
+        noHostInfo.setServiceName("kitten");
+        noHostInfo.setServiceType("_kitten._tcp");
+        noHostInfo.setPort(4242);
+        checkParcelable(noHostInfo);
+
+        NsdServiceInfo attributedInfo = new NsdServiceInfo();
+        attributedInfo.setServiceName("kitten");
+        attributedInfo.setServiceType("_kitten._tcp");
+        attributedInfo.setPort(4242);
+        attributedInfo.setHost(LOCALHOST);
+        attributedInfo.setAttribute("color", "pink");
+        attributedInfo.setAttribute("sound", (new String("にゃあ")).getBytes("UTF-8"));
+        attributedInfo.setAttribute("adorable", (String) null);
+        attributedInfo.setAttribute("sticky", "yes");
+        attributedInfo.setAttribute("siblings", new byte[] {});
+        attributedInfo.setAttribute("edge cases", new byte[] {0, -1, 127, -128});
+        attributedInfo.removeAttribute("sticky");
+        checkParcelable(attributedInfo);
+
+        // Sanity check that we actually wrote attributes to attributedInfo.
+        assertTrue(attributedInfo.getAttributes().keySet().contains("adorable"));
+        String sound = new String(attributedInfo.getAttributes().get("sound"), "UTF-8");
+        assertTrue(sound.equals("にゃあ"));
+        byte[] edgeCases = attributedInfo.getAttributes().get("edge cases");
+        assertTrue(Arrays.equals(edgeCases, new byte[] {0, -1, 127, -128}));
+        assertFalse(attributedInfo.getAttributes().keySet().contains("sticky"));
+    }
+
+    public void checkParcelable(NsdServiceInfo original) {
+        // Write to parcel.
+        Parcel p = Parcel.obtain();
+        Bundle writer = new Bundle();
+        writer.putParcelable("test_info", original);
+        writer.writeToParcel(p, 0);
+
+        // Extract from parcel.
+        p.setDataPosition(0);
+        Bundle reader = p.readBundle();
+        reader.setClassLoader(NsdServiceInfo.class.getClassLoader());
+        NsdServiceInfo result = reader.getParcelable("test_info");
+
+        // Assert equality of base fields.
+        assertEquality(original.getServiceName(), result.getServiceName());
+        assertEquality(original.getServiceType(), result.getServiceType());
+        assertEquality(original.getHost(), result.getHost());
+        assertTrue(original.getPort() == result.getPort());
+
+        // Assert equality of attribute map.
+        Map<String, byte[]> originalMap = original.getAttributes();
+        Map<String, byte[]> resultMap = result.getAttributes();
+        assertEquality(originalMap.keySet(), resultMap.keySet());
+        for (String key : originalMap.keySet()) {
+            assertTrue(Arrays.equals(originalMap.get(key), resultMap.get(key)));
+        }
+    }
+
+    public void assertEquality(Object expected, Object result) {
+        assertTrue(expected == result || expected.equals(result));
+    }
+
+    public void assertEmptyServiceInfo(NsdServiceInfo shouldBeEmpty) {
+        assertTrue(null == shouldBeEmpty.getTxtRecord());
+    }
+}
diff --git a/tests/DozeTest/src/com/android/dreams/dozetest/DozeTestDream.java b/tests/DozeTest/src/com/android/dreams/dozetest/DozeTestDream.java
index bf35db4..a0b2d1a 100644
--- a/tests/DozeTest/src/com/android/dreams/dozetest/DozeTestDream.java
+++ b/tests/DozeTest/src/com/android/dreams/dozetest/DozeTestDream.java
@@ -97,6 +97,7 @@
         setLowProfile(true);
         setFullscreen(true);
         setContentView(R.layout.dream);
+        setScreenBright(false);
 
         mAlarmClock = (TextView)findViewById(R.id.alarm_clock);
 
diff --git a/tests/HwAccelerationTest/AndroidManifest.xml b/tests/HwAccelerationTest/AndroidManifest.xml
index c8eefe0..0ad3456 100644
--- a/tests/HwAccelerationTest/AndroidManifest.xml
+++ b/tests/HwAccelerationTest/AndroidManifest.xml
@@ -867,14 +867,5 @@
             </intent-filter>
         </activity>
 
-        <activity
-                android:name="IsolationVolumeActivity"
-                android:label="Reordering/IsolationVolume">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.android.test.hwui.TEST" />
-            </intent-filter>
-        </activity>
-
     </application>
 </manifest>
diff --git a/tests/HwAccelerationTest/res/layout/isolation.xml b/tests/HwAccelerationTest/res/layout/isolation.xml
deleted file mode 100644
index e66db19..0000000
--- a/tests/HwAccelerationTest/res/layout/isolation.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?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"
-    android:background="#f55">
-    <!-- Left and right layouts are not isolated volumes, so the text views
-         will interleave since they share an isolated z volume-->
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-        <LinearLayout
-            android:layout_width="0dp"
-            android:layout_height="200dp"
-            android:layout_weight="1"
-            android:orientation="vertical">
-            <TextView style="@style/TopLeftReorderTextView"/>
-            <TextView style="@style/BottomLeftReorderTextView"/>
-        </LinearLayout>
-        <LinearLayout
-            android:layout_width="0dp"
-            android:layout_height="200dp"
-            android:layout_weight="1"
-            android:translationY="50dp"
-            android:orientation="vertical">
-            <TextView style="@style/TopRightReorderTextView"/>
-            <TextView style="@style/BottomRightReorderTextView"/>
-        </LinearLayout>
-    </LinearLayout>
-
-    <!-- Left and right volumes are isolated by default, so no interleaving will be seen. -->
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-        <LinearLayout
-            android:layout_width="0dp"
-            android:layout_height="200dp"
-            android:layout_weight="1"
-            android:orientation="vertical">
-            <TextView style="@style/TopLeftReorderTextView"/>
-            <TextView style="@style/BottomLeftReorderTextView"/>
-        </LinearLayout>
-        <LinearLayout
-            android:layout_width="0dp"
-            android:layout_height="200dp"
-            android:layout_weight="1"
-            android:translationY="50dp"
-            android:orientation="vertical">
-            <TextView style="@style/TopRightReorderTextView"/>
-            <TextView style="@style/BottomRightReorderTextView"/>
-        </LinearLayout>
-    </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/IsolationVolumeActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/IsolationVolumeActivity.java
deleted file mode 100644
index d5c93f2..0000000
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/IsolationVolumeActivity.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.android.test.hwui;
-
-import android.os.Bundle;
-import android.app.Activity;
-
-public class IsolationVolumeActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.isolation);
-    }
-}
diff --git a/tests/VectorDrawableTest/Android.mk b/tests/VectorDrawableTest/Android.mk
new file mode 100644
index 0000000..dd8a4d4
--- /dev/null
+++ b/tests/VectorDrawableTest/Android.mk
@@ -0,0 +1,26 @@
+#
+# 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_SRC_FILES := $(call all-subdir-java-files)
+
+LOCAL_PACKAGE_NAME := VectorDrawableTest
+
+LOCAL_MODULE_TAGS := tests
+
+include $(BUILD_PACKAGE)
diff --git a/tests/VectorDrawableTest/AndroidManifest.xml b/tests/VectorDrawableTest/AndroidManifest.xml
new file mode 100644
index 0000000..28c5f33
--- /dev/null
+++ b/tests/VectorDrawableTest/AndroidManifest.xml
@@ -0,0 +1,99 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.test.dynamic" >
+    <uses-sdk android:minSdkVersion="20" />
+
+    <application
+        android:hardwareAccelerated="true"
+        android:label="vector" >
+        <activity
+            android:name="VectorDrawableTest"
+            android:label="Vector Icon" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="VectorDrawable01"
+            android:label="VectorTest1" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="com.android.test.dynamic.TEST" />
+            </intent-filter>
+        </activity>
+
+         <activity
+            android:name="VectorDrawablePerformance"
+            android:label="Vector Performance" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="com.android.test.dynamic.TEST" />
+            </intent-filter>
+
+        </activity>
+
+         <activity
+            android:name="VectorDrawableDupPerf"
+            android:label="Vector Performance of clones" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="com.android.test.dynamic.TEST" />
+            </intent-filter>
+
+        </activity>
+        <activity
+            android:name="VectorDrawableStaticPerf"
+            android:label="Performance of vector images" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="com.android.test.dynamic.TEST" />
+            </intent-filter>
+
+        </activity>
+
+        <activity
+            android:name="VectorCheckbox"
+            android:label="On a Checkbox" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="com.android.test.dynamic.TEST" />
+            </intent-filter>
+
+        </activity>
+        <activity
+            android:name="VectorPathChecking"
+            android:label="Path Checking graphics" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="com.android.test.dynamic.TEST" />
+            </intent-filter>
+
+        </activity>
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/tests/VectorDrawableTest/res/drawable-hdpi/icon.png b/tests/VectorDrawableTest/res/drawable-hdpi/icon.png
new file mode 100644
index 0000000..60fbdf5
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/tests/VectorDrawableTest/res/drawable/icon.png b/tests/VectorDrawableTest/res/drawable/icon.png
new file mode 100644
index 0000000..cb40a19
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/icon.png
Binary files differ
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable01.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable01.xml
new file mode 100644
index 0000000..bb2bebf
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable01.xml
@@ -0,0 +1,78 @@
+<!--
+ 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:trigger="state_checked" android:versionCode="1" >
+
+    <size
+        android:height="48dp"
+        android:width="48dp" />
+
+    <viewport
+        android:viewportHeight="480"
+        android:viewportWidth="480" />
+
+    <group>
+        <path
+            android:name="check"
+            android:pathData="m20,200l100,90l180,-180l-35,-35l-145,145l-60,-60l-40,40z"
+            android:fill="?android:attr/colorControlActivated" />
+    </group>
+    <group>
+        <path
+            android:name="box1"
+            android:pathData="m127,171l37,38l33,-31l-37,-40l-1,3l-2,0l-30,30z"
+            android:fill="?android:attr/colorControlActivated"
+            android:stroke="?android:attr/colorControlActivated"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+    <group>
+        <path
+            android:name="box2"
+            android:pathData="m127,171l37,38l33,-31l-37,-40l-1,3l-2,0l-30,30z"
+            android:rotation="46.757"
+            android:pivotX="162"
+            android:pivotY="173.5"
+            android:fill="?android:attr/colorControlNormal"
+            android:stroke="?android:attr/colorControlNormal"
+            android:strokeWidth="3"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+    <group>
+        <path
+            android:name="box3"
+            android:pathData="m187,147l-1,55l-49,-1l2,-53l48,0z"
+            android:stroke="?android:attr/colorControlNormal"
+            android:strokeWidth="10"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+    <group>
+        <path
+            android:name="box4"
+            android:pathData="m248,74l0,164l-177,0l1,-165l173,-1l3,2z"
+            android:stroke="?android:attr/colorControlNormal"
+            android:strokeWidth="30"
+            android:strokeLineCap="round"
+            android:strokeLineJoin="round" />
+    </group>
+
+    <animation
+        android:durations="300,100,0,300"
+        android:sequence="check,box1,box2,box3,box4" />
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable02.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable02.xml
new file mode 100644
index 0000000..49906d17
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable02.xml
@@ -0,0 +1,46 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="320"
+          android:viewportHeight="320"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M 100,225 L 100,115 L 130,115 L 70,15 L 10,115 L 40,115 L 40,225 z"
+                android:fill="#ffffffff"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="1"/>
+    </group>
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M 130,225 L 130,115 L 130,115 L 70,15 L 10,115 L 10,115 L 10,225 z"
+                android:fill="#ff440000"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="10"
+                android:rotation="180"
+                android:pivotX="70"
+                android:pivotY="120"
+                android:trimPathStart=".1"
+                android:trimPathEnd=".9"/>
+    </group>
+    <animation android:sequence="arrow,house"/>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable03.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable03.xml
new file mode 100644
index 0000000..137049d
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable03.xml
@@ -0,0 +1,137 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport
+            android:viewportWidth="7.30625"
+            android:viewportHeight="12.25"/>
+
+    <group>
+
+        <path
+                android:name="clip1"
+                android:pathData="
+                M 0, 0
+                l 7.3, 0
+                l 0, 0
+                l -7.3, 0
+                z"
+                android:clipToPath="true"
+                android:rotation="-30"
+                android:pivotX="3.65"
+                android:pivotY="6.125"
+                />
+        <path
+                android:name="one"
+                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125
+                l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
+                l -5.046875,0.0 0.0,-1.0Z"
+                android:fill="#ff88ff"
+                />
+        <path
+                android:name="clip2"
+                android:pathData="
+                M 0, 0
+                l 7.3, 0
+                l 0, 12.25
+                l -7.3, 0
+                z"
+                android:clipToPath="true"
+                android:rotation="-30"
+                android:pivotX="3.65"
+                android:pivotY="6.125"
+                />
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ff88ff"
+                />
+    </group>
+    <group>
+        <path
+                android:name="clip1"
+                android:pathData="
+                M 0, 0
+                l 7.3, 0
+                l 0, 12.25
+                l -7.3, 0
+                z"
+                android:clipToPath="true"
+                android:rotation="-30"
+                android:pivotX="3.65"
+                android:pivotY="6.125"
+                />
+        <path
+                android:name="one"
+                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125
+                l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
+                l -5.046875,0.0 0.0,-1.0Z"
+                android:fill="#ff88ff"
+                />
+        <path
+                android:name="clip2"
+                android:pathData="
+                M 0, 12.25
+                l 7.3, 0
+                l 0, 12.25
+                l -7.3, 0
+                z"
+                android:clipToPath="true"
+                android:rotation="-30"
+                android:pivotX="3.65"
+                android:pivotY="6.125"
+                />
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ff88ff"
+                />
+    </group>
+
+
+    <animation
+            android:sequence="one,one"
+            android:durations="4000"/>
+    <animation
+            android:sequence="two,two"
+            android:durations="4000"/>
+    <animation
+            android:sequence="clip1,clip1"
+            android:durations="4000"/>
+    <animation
+            android:sequence="clip2,clip2"
+            android:durations="4000"/>
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable04.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable04.xml
new file mode 100644
index 0000000..cffb73f
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable04.xml
@@ -0,0 +1,126 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport
+            android:viewportWidth="7.30625"
+            android:viewportHeight="12.25"/>
+
+    <group>
+        <path
+                android:name="clip1"
+                android:pathData="
+                M 3.65, 6.125
+                m -.001, 0
+                a .001,.001 0 1,0 .002,0
+                a .001,.001 0 1,0 -.002,0z"
+                android:clipToPath="true"
+                android:fill="#112233"
+                />
+
+        <path
+                android:name="one"
+                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125
+                l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
+                l -5.046875,0.0 0.0,-1.0Z"
+                android:fill="#ff88ff"
+                />
+        <path
+                android:name="clip2"
+                android:pathData="
+                M 3.65, 6.125
+                m -6, 0
+                a 6,6 0 1,0 12,0
+                a 6,6 0 1,0 -12,0z"
+                android:clipToPath="true"
+                android:fill="#112233"
+                />
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ff88ff"
+                />
+    </group>
+    <group>
+        <path
+                android:name="clip1"
+                android:pathData="
+                M 3.65, 6.125
+                m -6, 0
+                a 6,6 0 1,0 12,0
+                a 6,6 0 1,0 -12,0z"
+                android:clipToPath="true"
+                android:fill="#332233"
+                />
+        <path
+                android:name="one"
+                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125
+                l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
+                l -5.046875,0.0 0.0,-1.0Z"
+                android:fill="#ff88ff"
+                />
+        <path
+                android:name="clip2"
+                android:pathData="
+                 M 3.65, 6.125
+                m -.001, 0
+                a .001,.001 0 1,0 .002,0
+                a .001,.001 0 1,0 -.002,0z"
+                android:clipToPath="true"
+                android:fill="#662233"
+                />
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ff88ff"
+                />
+    </group>
+
+
+
+    <animation
+            android:sequence="one,one"
+            android:durations="4000"/>
+    <animation
+            android:sequence="two,two"
+            android:durations="4000"/>
+    <animation
+            android:sequence="clip1,clip1"
+            android:durations="4000"/>
+    <animation
+            android:sequence="clip2,clip2"
+            android:durations="4000"/>
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable05.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable05.xml
new file mode 100644
index 0000000..bcf3ae6
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable05.xml
@@ -0,0 +1,147 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport
+            android:viewportWidth="7.30625"
+            android:viewportHeight="12.25"/>
+
+    <group>
+        <path
+                android:name="one"
+                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125
+                l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
+                l -5.046875,0.0 0.0,-1.0Z"
+                android:fill="#ffff00"
+                />
+
+
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ffff00"
+                android:fillOpacity="0"
+                />
+    </group>
+    <group>
+        <path
+                android:name="one"
+                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125
+l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
+l -5.046875,0.0 0.0,-1.0Z"
+                android:fill="#ffff00"
+                android:fillOpacity="0"
+                />
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ffff00"
+                />
+    </group>
+    <group>
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ffff00"
+                />
+        <path
+                android:name="three"
+                android:pathData="M 5.103125,6.003125q 0.84375,0.1875 1.3125,0.765625 0.484375,0.5625 0.484375,1.40625
+                        q 0.0,1.296875 -0.890625,2.015625 -0.890625,0.703125 -2.53125,0.703125
+                        q -0.546875,0.0 -1.140625,-0.109375 -0.5781251,-0.109375 -1.1875001,-0.328125
+                        l 0.0,-1.140625q 0.484375,0.28125 1.0625001,0.4375 0.59375,0.140625 1.234375,0.140625
+                        q 1.109375,0.0 1.6875,-0.4375 0.59375,-0.4375 0.59375,-1.28125
+                        q 0.0,-0.765625 -0.546875,-1.203125 -0.546875,-0.4375 -1.5,-0.4375
+                        l -1.03125,0.0 0.0,-0.96875 1.078125,0.0q 0.859375,0.0 1.328125,-0.34375
+                        q 0.46875,-0.359375 0.46875,-1.015625 0.0,-0.671875 -0.484375,-1.03125
+                        q -0.46875,-0.359375 -1.359375,-0.359375 -0.5,0.0 -1.0625,0.109375
+                        q -0.546875,0.09375 -1.2187501,0.3125l 0.0,-1.046875q 0.6875001,-0.1875 1.2656251,-0.28125
+                        q 0.59375,-0.09375 1.109375,-0.09375 1.359375,0.0 2.140625,0.609375
+                        q 0.78125,0.609375 0.78125,1.65625 0.0,0.734375 -0.421875,1.234375
+                        q -0.40625,0.5 -1.171875,0.6875Z"
+                android:fill="#ffff00"
+                android:fillOpacity="0"
+                />
+    </group>
+    <group>
+        <path
+                android:name="two"
+                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375
+                        q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625
+                        q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625
+                        q -0.484375,-0.4375 -1.2656252,-0.4375 -0.5625,0.0 -1.1875,0.1875
+                        q -0.609375,0.1875 -1.3125,0.59375l 0.0,-1.203125q 0.71875,-0.28125 1.328125,-0.421875
+                        q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875
+                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625
+                        q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375
+                        q -0.78125024,0.8125 -2.2187502,2.265625Z"
+                android:fill="#ffff00"
+                android:fillOpacity="0"
+                />
+        <path
+                android:name="three"
+                android:pathData="M 5.103125,6.003125q 0.84375,0.1875 1.3125,0.765625 0.484375,0.5625 0.484375,1.40625
+                        q 0.0,1.296875 -0.890625,2.015625 -0.890625,0.703125 -2.53125,0.703125
+                        q -0.546875,0.0 -1.140625,-0.109375 -0.5781251,-0.109375 -1.1875001,-0.328125
+                        l 0.0,-1.140625q 0.484375,0.28125 1.0625001,0.4375 0.59375,0.140625 1.234375,0.140625
+                        q 1.109375,0.0 1.6875,-0.4375 0.59375,-0.4375 0.59375,-1.28125
+                        q 0.0,-0.765625 -0.546875,-1.203125 -0.546875,-0.4375 -1.5,-0.4375
+                        l -1.03125,0.0 0.0,-0.96875 1.078125,0.0q 0.859375,0.0 1.328125,-0.34375
+                        q 0.46875,-0.359375 0.46875,-1.015625 0.0,-0.671875 -0.484375,-1.03125
+                        q -0.46875,-0.359375 -1.359375,-0.359375 -0.5,0.0 -1.0625,0.109375
+                        q -0.546875,0.09375 -1.2187501,0.3125l 0.0,-1.046875q 0.6875001,-0.1875 1.2656251,-0.28125
+                        q 0.59375,-0.09375 1.109375,-0.09375 1.359375,0.0 2.140625,0.609375
+                        q 0.78125,0.609375 0.78125,1.65625 0.0,0.734375 -0.421875,1.234375
+                        q -0.40625,0.5 -1.171875,0.6875Z"
+                android:fill="#ffff00"
+                />
+    </group>
+
+
+    <animation
+            android:sequence="one,one,three,three"
+            android:durations="2000,0,2000"/>
+    <animation
+            android:sequence="two,two,two,two"
+            android:durations="2000,0,2000"/>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable06.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable06.xml
new file mode 100644
index 0000000..73ff5e2
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable06.xml
@@ -0,0 +1,76 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport
+            android:viewportWidth="700"
+            android:viewportHeight="700"/>
+
+    <group>
+    </group>
+    <path android:pathData="M 569.374 461.472L 569.374 160.658L 160.658 160.658L 160.658 461.472L 569.374 461.472z"
+          android:name="path2451"
+          android:stroke="#FF000000"
+          android:strokeWidth="30.65500000000000"/>
+    <path android:pathData="M 365.015 311.066"
+          android:name="path2453"
+          android:stroke="#FF000000"
+          android:strokeWidth="30.655000000000001"/>
+    <path android:pathData="M 164.46 164.49L 340.78 343.158C 353.849 356.328 377.63 356.172 390.423 343.278L 566.622 165.928"
+          android:name="path2455"
+          android:stroke="#FF000000"
+          android:fill="#FF0000FF"
+          android:strokeWidth="30.655000000000001"/>
+    <path android:pathData="M 170.515 451.566L 305.61 313.46"
+          android:name="path2457"
+          android:stroke="#000000"
+          android:strokeWidth="30.655000000000001"/>
+    <path android:pathData="M 557.968 449.974L 426.515 315.375"
+          android:name="path2459"
+          android:stroke="#000000"
+          android:strokeWidth="30.655000000000001"/>
+    <group>
+        <path android:pathData="M 569.374 461.472L 569.374 160.658L 160.658 160.658L 160.658 461.472L 569.374 461.472z"
+              android:name="path2451"
+              android:stroke="#FF000000"
+              android:strokeWidth="30.65500000000000"/>
+        <path android:pathData="M 365.015 311.066"
+              android:name="path2453"
+              android:stroke="#FF000000"
+              android:strokeWidth="30.655000000000001"/>
+        <path android:pathData="M 164.46 164.49L 340.78 343.158C 353.849 356.328 377.63 356.172 390.423 343.278L 566.622 165.928"
+              android:name="path2455"
+              android:stroke="#FF000000"
+              android:fill="#FFFFFFFF"
+              android:strokeWidth="30.655000000000001"/>
+        <path android:pathData="M 170.515 451.566L 305.61 313.46"
+              android:name="path2457"
+              android:stroke="#000000"
+              android:strokeWidth="30.655000000000001"/>
+        <path android:pathData="M 557.968 449.974L 426.515 315.375"
+              android:name="path2459"
+              android:stroke="#000000"
+              android:strokeWidth="30.655000000000001"/>
+    </group>
+
+    <animation android:sequence="path2451,path2451"
+        android:durations="1000"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable07.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable07.xml
new file mode 100644
index 0000000..99d37ef
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable07.xml
@@ -0,0 +1,45 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"   >
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="140"
+          android:viewportHeight="110"/>
+    <group>
+        <path
+                android:name="menu"
+                android:pathData="M 20,20 l 100,0 0,10 -100,0 z
+              M 20,50 l 100,0 0,10 -100,0 z
+              M 20,80 l 0,-10 100,0 0,10 z"
+                android:fill="#ffffffff"/>
+    </group>
+    <group>
+        <path
+                android:name="back"
+                android:pathData="M 20,55 l 35.3,-35.3 7.07,7.07 -35.3,35.3 z
+              M 27,50 l 97,0 0,10 -97,0 z
+              M 20,55 l 7.07,-7.07 35.3,35.3 -7.07,7.07 z"
+                android:fill="#ffffffff"
+                android:rotation="180"
+                android:pivotX="70"
+                android:pivotY="55"
+                />
+    </group>
+    <animation android:sequence="menu,back"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable08.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable08.xml
new file mode 100644
index 0000000..f8a03d7
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable08.xml
@@ -0,0 +1,48 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+
+    <viewport android:viewportWidth="600"
+          android:viewportHeight="600"/>
+
+    <group>
+        <path
+                android:name="pie1"
+                android:pathData="M535.441,412.339A280.868,280.868 0 1,1 536.186,161.733L284.493,286.29Z"
+                android:fill="#ffffcc00"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="1"/>
+    </group>
+
+    <group>
+        <path
+                android:name="pie2"
+                android:pathData="M564.441,287A280.868,280.868 0 1,1 564.441,285L284.493,286.29Z"
+                android:fill="#FFccaa00"
+                android:stroke="#FF000000"
+                android:strokeWidth="10"
+                android:pivotX="90"
+                android:pivotY="100"/>
+    </group>
+
+    <animation android:sequence="pie1,pie2"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable09.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable09.xml
new file mode 100644
index 0000000..09934de
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable09.xml
@@ -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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+
+    <viewport android:viewportWidth="200"
+          android:viewportHeight="200"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M 20,20 l 60,0 0,140 -60,0 z M 120,20 l 60,0 0,140 -60,0 z"
+                android:fill="#ffffffff"/>
+    </group>
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M 100,20 l 0,0 0,140 -80,0 z M 100,20 l 0,0 80,140 -80,0 z"
+                android:fill="#ffffffff"
+                android:rotation="90"
+                android:pivotX="100"
+                android:pivotY="100"/>
+    </group>
+    <animation android:sequence="arrow,house"/>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable10.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable10.xml
new file mode 100644
index 0000000..f17f67a
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable10.xml
@@ -0,0 +1,114 @@
+<?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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+        android:height="64dp"
+        android:width="64dp" />
+
+    <viewport
+        android:viewportHeight="200"
+        android:viewportWidth="200" />
+
+    <group>
+        <path
+            android:name="bar3"
+            android:pathData="M49.001,60c-5.466,0 -9.899,4.478 -9.899,10s4.434,10,9.899,10c5.468,0,9.899 -4.478,9.899 -10S54.469,60,49.001,60z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar2"
+            android:pathData="M28.001,48.787l7,7.07c7.731 -7.811,20.269 -7.81,28.001,0l6.999 -7.07C58.403,37.071,39.599,37.071,28.001,48.787z"
+            android:fill="#FF555555" />
+        <path
+            android:name="bar1"
+            android:pathData="M14.001,34.645   L21,41.716c15.464 -15.621,40.536 -15.621,56,0l7.001 -7.071C64.672,15.119,33.33,15.119,14.001,34.645z"
+            android:fill="#FF555555" />
+        <path
+            android:name="bar0"
+            android:pathData="M0,20.502l6.999,7.071   c23.196 -23.431,60.806 -23.431,84.002,0L98,20.503C70.938 -6.834,27.063 -6.834,0,20.502z"
+            android:fill="#FF555555" />
+    </group>
+ <group>
+        <path
+            android:name="bar3"
+            android:pathData="M49.001,60c-5.466,0 -9.899,4.478 -9.899,10s4.434,10,9.899,10c5.468,0,9.899 -4.478,9.899 -10S54.469,60,49.001,60z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar2"
+            android:pathData="M28.001,48.787l7,7.07c7.731 -7.811,20.269 -7.81,28.001,0l6.999 -7.07C58.403,37.071,39.599,37.071,28.001,48.787z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar1"
+            android:pathData="M14.001,34.645   L21,41.716c15.464 -15.621,40.536 -15.621,56,0l7.001 -7.071C64.672,15.119,33.33,15.119,14.001,34.645z"
+            android:fill="#FF555555" />
+        <path
+            android:name="bar0"
+            android:pathData="M0,20.502l6.999,7.071   c23.196 -23.431,60.806 -23.431,84.002,0L98,20.503C70.938 -6.834,27.063 -6.834,0,20.502z"
+            android:fill="#FF555555" />
+    </group>
+
+  <group>
+        <path
+            android:name="bar3"
+            android:pathData="M49.001,60c-5.466,0 -9.899,4.478 -9.899,10s4.434,10,9.899,10c5.468,0,9.899 -4.478,9.899 -10S54.469,60,49.001,60z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar2"
+            android:pathData="M28.001,48.787l7,7.07c7.731 -7.811,20.269 -7.81,28.001,0l6.999 -7.07C58.403,37.071,39.599,37.071,28.001,48.787z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar1"
+            android:pathData="M14.001,34.645   L21,41.716c15.464 -15.621,40.536 -15.621,56,0l7.001 -7.071C64.672,15.119,33.33,15.119,14.001,34.645z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar0"
+            android:pathData="M0,20.502l6.999,7.071   c23.196 -23.431,60.806 -23.431,84.002,0L98,20.503C70.938 -6.834,27.063 -6.834,0,20.502z"
+            android:fill="#FF555555" />
+    </group>
+
+   <group>
+        <path
+            android:name="bar3"
+            android:pathData="M49.001,60c-5.466,0 -9.899,4.478 -9.899,10s4.434,10,9.899,10c5.468,0,9.899 -4.478,9.899 -10S54.469,60,49.001,60z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar2"
+            android:pathData="M28.001,48.787l7,7.07c7.731 -7.811,20.269 -7.81,28.001,0l6.999 -7.07C58.403,37.071,39.599,37.071,28.001,48.787z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar1"
+            android:pathData="M14.001,34.645   L21,41.716c15.464 -15.621,40.536 -15.621,56,0l7.001 -7.071C64.672,15.119,33.33,15.119,14.001,34.645z"
+            android:fill="#FFFFFFFF" />
+        <path
+            android:name="bar0"
+            android:pathData="M0,20.502l6.999,7.071   c23.196 -23.431,60.806 -23.431,84.002,0L98,20.503C70.938 -6.834,27.063 -6.834,0,20.502z"
+            android:fill="#FFFFFFFF" />
+    </group>
+
+ <animation
+            android:sequence="bar0,bar0,bar0,bar0"
+            android:durations="500,500,500"/>
+ <animation
+            android:sequence="bar1,bar1,bar1,bar1"
+            android:durations="500,500,500"/>
+ <animation
+            android:sequence="bar2,bar2,bar2,bar2"
+            android:durations="500,500,500"/>
+ <animation
+            android:sequence="bar3,bar3,bar3,bar3"
+            android:durations="500,500,500"/>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable11.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable11.xml
new file mode 100644
index 0000000..8787b34
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable11.xml
@@ -0,0 +1,62 @@
+<!--
+ 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+        android:height="64dp"
+        android:width="64dp" />
+
+    <viewport
+        android:viewportHeight="80"
+        android:viewportWidth="40" />
+
+    <group>
+        <path
+            android:name="battery"
+            android:pathData="M 20.28125,2.0000002 C 17.352748,2.0000002 15,4.3527485 15,7.2812502 L 15,8.0000002 L 13.15625,8.0000002 C 9.7507553,8.0000002 7,10.750759 7,14.15625 L 7,39.84375 C 7,43.24924 9.7507558,46 13.15625,46 L 33.84375,46 C 37.249245,46 39.999999,43.24924 40,39.84375 L 40,14.15625 C 40,10.75076 37.249243,8.0000002 33.84375,8.0000002 L 32,8.0000002 L 32,7.2812502 C 32,4.3527485 29.647252,2.0000002 26.71875,2.0000002 L 20.28125,2.0000002 z"
+            android:fill="#3388ff"
+            android:stroke="#ff8833"
+            android:strokeWidth="1"
+            android:rotation="0"/>
+         <path
+            android:name="spark"
+            android:pathData="M 30,18.031528 L 25.579581,23.421071 L 29.370621,26.765348 L 20.096792,37 L 21.156922,28.014053 L 17,24.902844 L 20.880632,18 L 30,18.031528 z"
+            android:fill="#FFFF0000" />
+
+    </group>
+    <group>
+        <path
+            android:name="battery"
+            android:pathData="M 20.28125,2.0000002 C 17.352748,2.0000002 15,4.3527485 15,7.2812502 L 15,8.0000002 L 13.15625,8.0000002 C 9.7507553,8.0000002 7,10.750759 7,14.15625 L 7,39.84375 C 7,43.24924 9.7507558,46 13.15625,46 L 33.84375,46 C 37.249245,46 39.999999,43.24924 40,39.84375 L 40,14.15625 C 40,10.75076 37.249243,8.0000002 33.84375,8.0000002 L 32,8.0000002 L 32,7.2812502 C 32,4.3527485 29.647252,2.0000002 26.71875,2.0000002 L 20.28125,2.0000002 z"
+            android:fill="#ff8833"
+            android:stroke="#3388ff"
+            android:strokeWidth="1"
+            android:rotation="0" />
+        <path
+            android:name="spark"
+            android:pathData="M 30,18.031528 L 25.579581,23.421071 L 29.370621,26.765348 L 20.096792,37 L 21.156922,28.014053 L 17,24.902844 L 20.880632,18 L 30,18.031528 z"
+            android:fill="#FFFF0000" />
+    </group>
+
+    <animation
+        android:durations="2000"
+        android:sequence="spark,spark" />
+    <animation
+        android:durations="2000"
+        android:sequence="battery,battery" />
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable12.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable12.xml
new file mode 100644
index 0000000..89748d5
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable12.xml
@@ -0,0 +1,90 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+
+    <viewport android:viewportWidth="600"
+          android:viewportHeight="600"/>
+
+    <group>
+        <path
+                android:name="pie1"
+                android:pathData="M300,70 a230,230 0 1,0 1,0 z"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="70"
+                android:trimPathStart="0"
+                android:trimPathEnd=".75"
+                android:trimPathOffset="0"/>
+
+        <path
+                android:name="v"
+                android:pathData="M300,70 l 0,-70 70,70 -70,70z"
+                android:fill="#FF00FF00"
+                android:pivotX="300"
+                android:pivotY="300"
+                android:rotation="0"
+                />
+    </group>
+
+    <group>
+        <path
+                android:name="v"
+                android:pathData="M300,70 l 0,-70 70,70 -70,70z"
+                android:pivotX="300"
+                android:pivotY="300"
+                android:rotation="360"/>
+        <path
+                android:name="pie2"
+                android:pathData="M300,70 a230,230 0 1,0 1,0 z"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="70"
+                android:rotation="360"
+                android:pivotX="300"
+                android:pivotY="300"
+                android:trimPathStart="0"
+                android:trimPathEnd=".5"
+                android:trimPathOffset="0"
+                android:strokeLineCap="round"
+                />
+    </group>
+
+    <animation android:sequence="pie1,pie2"
+               android:durations="2000"
+               android:startOffset="500"
+               android:repeatCount="-1"
+               android:repeatStyle="forward"
+               android:animate="easeInOut"
+            />
+    <animation android:sequence="v,v"
+               android:durations="2000"
+               android:startOffset="500"
+               android:repeatCount="-1"
+               android:repeatStyle="forward"
+               android:animate="easeInOut"
+            />
+    <animation android:sequence="pie1,pie2"
+               android:durations="2800"
+               android:startOffset="500"
+               android:limitTo="trimPathEnd"
+               android:repeatCount="-1"
+               android:repeatStyle="reverse"
+               android:animate="easeInOut"
+            />
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable13.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable13.xml
new file mode 100644
index 0000000..43dda52
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable13.xml
@@ -0,0 +1,82 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+
+    <viewport android:viewportWidth="600"
+          android:viewportHeight="400"/>
+
+    <group>
+        <path
+                android:name="pie1"
+                android:pathData="M300,200 h-150 a150,150 0 1,0 150,-150 z"
+                android:fill="#ffffffff"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="1"/>
+
+        <path
+                android:name="half"
+                android:pathData="M275,175 v-150 a150,150 0 0,0 -150,150 z"
+                android:fill="#FFFF0000"
+                android:stroke="#FF0000FF"
+                android:strokeWidth="5"
+                android:rotation="0"
+                android:pivotX="300"
+                android:pivotY="200"/>
+    </group>
+
+    <group>
+        <path
+                android:name="pie2"
+                android:pathData="M300,200 h-150 a150,150 0 1,0 150,-150 z"
+                android:fill="#ffff0000"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="10"
+                android:rotation="360"
+                android:pivotX="300"
+                android:pivotY="200"/>
+
+        <path
+                android:name="half"
+                android:pathData="M275,175 v-150 a150,150 0 0,0 -150,150 z"
+                android:fill="#FFFFFF00"
+                android:stroke="#FF0000FF"
+                android:strokeWidth="5"
+                android:rotation="-360"
+                android:pivotX="300"
+                android:pivotY="200"/>
+    </group>
+    <animation android:sequence="pie1,pie2"
+               android:durations="1000"
+               android:startOffset="500"
+               android:repeatCount="2"
+               android:repeatStyle="forward"
+               android:animate="easeInOut"
+            />
+    <animation android:sequence="half,half"
+               android:durations="1000"
+               android:startOffset="500"
+               android:repeatCount="5"
+               android:repeatStyle="forward"
+               android:animate="easeInOut"
+            />
+
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable14.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable14.xml
new file mode 100644
index 0000000..0f1f149
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable14.xml
@@ -0,0 +1,54 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="800"
+          android:viewportHeight="500"/>
+
+    <group>
+        <path
+                android:name="pie1"
+                android:pathData="M200,450 l 50,-25
+           a25,25 -30 0,1 100,-50 l 50,-25
+           a25,50 -30 0,1 100,-50 l 50,-25
+           a25,75 -30 0,1 100,-50 l 50,-25
+           a25,100 -30 0,1 100,-50 l 50,-25"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="10"/>
+    </group>
+
+    <group>
+        <path
+                android:name="pie2"
+                android:pathData="M200,350 l 50,-25
+           a25,12 -30 0,1 100,-50 l 50,-25
+           a25,25 -30 0,1 100,-50 l 50,-25
+           a25,37 -30 0,1 100,-50 l 50,-25
+           a25,50 -30 0,1 100,-50 l 50,-25"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="10"
+                android:rotation="20"
+                android:pivotX="90"
+                android:pivotY="100"/>
+
+    </group>
+    <animation android:sequence="pie1,pie2"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable15.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable15.xml
new file mode 100644
index 0000000..6bc946f
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable15.xml
@@ -0,0 +1,48 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="500"
+          android:viewportHeight="400"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M100,200 C100,100 250,100 250,200 S400,300 400,200"
+                android:fill="#ffffffff"
+                android:stroke="#FFFF0000"
+                android:strokeWidth="1"/>
+    </group>
+
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M100,200 C100,100 250,100 250,200 S400,300 400,200"
+                android:fill="#ff440000"
+                android:stroke="#FFFF0000"
+                android:strokeWidth="10"
+                android:rotation="180"
+                android:pivotX="250"
+                android:pivotY="200"/>
+    </group>
+
+    <animation android:sequence="arrow,house"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable16.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable16.xml
new file mode 100644
index 0000000..c9c8e8a
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable16.xml
@@ -0,0 +1,46 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="200"
+          android:viewportHeight="200"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M 100,10 v 180 M 10,100 h 180"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="1"/>
+    </group>
+
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M 100,10 v 90 M 10,100 h 90"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="10"
+                android:rotation="360"
+                android:pivotX="100"
+                android:pivotY="100"/>
+    </group>
+
+    <animation android:sequence="arrow,house"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable17.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable17.xml
new file mode 100644
index 0000000..9427652
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable17.xml
@@ -0,0 +1,46 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="1200"
+          android:viewportHeight="600"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M200,300 Q400,50 600,300 T1000,300"
+                android:stroke="#FF00FF00"
+                android:strokeWidth="1"/>
+    </group>
+
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M200,300 Q400,50 600,300 T1000,300"
+                android:stroke="#FFFF0000"
+                android:strokeWidth="10"
+                android:rotation="360"
+                android:pivotX="600"
+                android:pivotY="300"/>
+    </group>
+
+    <animation android:sequence="arrow,house"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable18.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable18.xml
new file mode 100644
index 0000000..83dfbd2
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable18.xml
@@ -0,0 +1,45 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="500"
+          android:viewportHeight="400"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M100,200 C100,100 250,100 250,200 S400,300 400,200"
+                android:stroke="#FFFFFF00"
+                android:strokeWidth="10"/>
+    </group>
+
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M100,200 C100,100 250,100 250,200 S400,300 400,200"
+                android:strokeWidth="10"
+                android:rotation="360"
+                android:pivotX="250"
+                android:pivotY="200"/>
+    </group>
+
+    <animation android:sequence="arrow,house"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable19.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable19.xml
new file mode 100644
index 0000000..013254f
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable19.xml
@@ -0,0 +1,45 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="1000"
+          android:viewportHeight="800"/>
+
+    <group>
+        <path
+                android:name="arrow"
+                android:pathData="M10,300 Q400,50 600,300 T1000,300"
+                android:stroke="#FF00FFFF"
+                android:strokeWidth="40"/>
+    </group>
+
+    <group>
+        <path
+                android:name="house"
+                android:pathData="M10,300 Q400,550 600,300 T1000,300"
+                android:stroke="#FFFF0000"
+                android:strokeWidth="60"
+                android:pivotX="90"
+                android:pivotY="100"/>
+    </group>
+
+    <animation android:sequence="arrow,house"/>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_drawable20.xml b/tests/VectorDrawableTest/res/drawable/vector_drawable20.xml
new file mode 100644
index 0000000..aba7e5f
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_drawable20.xml
@@ -0,0 +1,37 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size
+            android:width="64dp"
+            android:height="64dp"/>
+
+    <viewport android:viewportWidth="480"
+          android:viewportHeight="480"/>
+
+    <group>
+        <path
+                android:name="edit"
+                android:pathData="M406.667,180c0,0 -100 -100 -113.334 -113.333
+    c-13.333 -13.334 -33.333,0 -33.333,0l-160,160c0,0 -40,153.333 -40,173.333c0,13.333,13.333,13.333,13.333,13.333l173.334 -40
+    c0,0,146.666 -146.666,160 -160C420,200,406.667,180,406.667,180z M226.399,356.823L131.95,378.62l-38.516 -38.522
+    c7.848 -34.675,20.152 -82.52,23.538 -95.593l3.027,2.162l106.667,106.666L226.399,356.823z"
+                android:stroke="#FF000000"
+                android:fill="#FF00FFFF"
+                android:strokeWidth="10"/>
+    </group>
+
+
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_create.xml b/tests/VectorDrawableTest/res/drawable/vector_icon_create.xml
new file mode 100644
index 0000000..8897181
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_icon_create.xml
@@ -0,0 +1,29 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="64dp"
+android:height="64dp"/>
+
+    <viewport android:viewportWidth="24"
+          android:viewportHeight="24"/>
+
+<group>
+<path
+     android:pathData="M3.0,17.25L3.0,21.0l3.75,0.0L17.813995,9.936001l-3.75,-3.75L3.0,17.25zM20.707,7.0429993c0.391,-0.391 0.391,-1.023 0.0,-1.414l-2.336,-2.336c-0.391,-0.391 -1.023,-0.391 -1.414,0.0l-1.832,1.832l3.75,3.75L20.707,7.0429993z"
+     android:fill="#FF000000"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_delete.xml b/tests/VectorDrawableTest/res/drawable/vector_icon_delete.xml
new file mode 100644
index 0000000..2c7ebbd
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_icon_delete.xml
@@ -0,0 +1,29 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="64dp"
+android:height="64dp"/>
+
+    <viewport android:viewportWidth="24"
+          android:viewportHeight="24"/>
+
+<group>
+<path
+     android:pathData="M6.0,19.0c0.0,1.104 0.896,2.0 2.0,2.0l8.0,0.0c1.104,0.0 2.0,-0.896 2.0,-2.0l0.0,-12.0L6.0,7.0L6.0,19.0zM18.0,4.0l-2.5,0.0l-1.0,-1.0l-5.0,0.0l-1.0,1.0L6.0,4.0C5.4469986,4.0 5.0,4.4469986 5.0,5.0l0.0,1.0l14.0,0.0l0.0,-1.0C19.0,4.4469986 18.552002,4.0 18.0,4.0z"
+     android:fill="#FF000000"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_heart.xml b/tests/VectorDrawableTest/res/drawable/vector_icon_heart.xml
new file mode 100644
index 0000000..e4cf78c
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_icon_heart.xml
@@ -0,0 +1,29 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="64dp"
+android:height="64dp"/>
+
+    <viewport android:viewportWidth="24"
+          android:viewportHeight="24"/>
+
+<group>
+<path
+     android:pathData="M16.0,5.0c-1.955,0.0 -3.83,1.268 -4.5,3.0c-0.67,-1.732 -2.547,-3.0 -4.5,-3.0C4.4570007,5.0 2.5,6.931999 2.5,9.5c0.0,3.529 3.793,6.258 9.0,11.5c5.207,-5.242 9.0,-7.971 9.0,-11.5C20.5,6.931999 18.543,5.0 16.0,5.0z"
+     android:fill="#FF000000"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_schedule.xml b/tests/VectorDrawableTest/res/drawable/vector_icon_schedule.xml
new file mode 100644
index 0000000..cec12ba
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_icon_schedule.xml
@@ -0,0 +1,33 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="64dp"
+android:height="64dp"/>
+
+    <viewport android:viewportWidth="24"
+          android:viewportHeight="24"/>
+
+<group>
+<path
+     android:pathData="M11.994999,2.0C6.4679985,2.0 2.0,6.4780006 2.0,12.0s4.468,10.0 9.995,10.0S22.0,17.522 22.0,12.0S17.521,2.0 11.994999,2.0zM12.0,20.0c-4.42,0.0 -8.0,-3.582 -8.0,-8.0s3.58,-8.0 8.0,-8.0s8.0,3.582 8.0,8.0S16.419998,20.0 12.0,20.0z"
+          android:fillOpacity="0.9"
+     />
+<path
+     android:pathData="M12.5,6.0l-1.5,0.0 0.0,7.0 5.3029995,3.1819992 0.75,-1.249999 -4.5529995,-2.7320004z"
+          android:fillOpacity="0.9"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_icon_settings.xml b/tests/VectorDrawableTest/res/drawable/vector_icon_settings.xml
new file mode 100644
index 0000000..5fe1fb6
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_icon_settings.xml
@@ -0,0 +1,29 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="64dp"
+android:height="64dp"/>
+
+    <viewport android:viewportWidth="24"
+          android:viewportHeight="24"/>
+
+<group>
+<path
+     android:pathData="M19.429,12.975998c0.042,-0.32 0.07,-0.645 0.07,-0.976s-0.029,-0.655 -0.07,-0.976l2.113,-1.654c0.188,-0.151 0.243,-0.422 0.118,-0.639l-2.0,-3.463c-0.125,-0.217 -0.386,-0.304 -0.612,-0.218l-2.49,1.004c-0.516,-0.396 -1.081,-0.731 -1.69,-0.984l-0.375,-2.648C14.456,2.1829987 14.25,2.0 14.0,2.0l-4.0,0.0C9.75,2.0 9.544,2.1829987 9.506,2.422001L9.131,5.0699997C8.521,5.322998 7.957,5.6570015 7.44,6.054001L4.952,5.0509987C4.726,4.965 4.464,5.052002 4.34,5.269001l-2.0,3.463C2.2150002,8.947998 2.27,9.219002 2.4580002,9.369999l2.112,1.653C4.528,11.344002 4.5,11.668999 4.5,12.0s0.029,0.656 0.071,0.977L2.4580002,14.630001c-0.188,0.151 -0.243,0.422 -0.118,0.639l2.0,3.463c0.125,0.217 0.386,0.304 0.612,0.218l2.489,-1.004c0.516,0.396 1.081,0.731 1.69,0.984l0.375,2.648C9.544,21.817001 9.75,22.0 10.0,22.0l4.0,0.0c0.25,0.0 0.456,-0.183 0.494,-0.422l0.375,-2.648c0.609,-0.253 1.174,-0.588 1.689,-0.984l2.49,1.004c0.226,0.086 0.487,-0.001 0.612,-0.218l2.0,-3.463c0.125,-0.217 0.07,-0.487 -0.118,-0.639L19.429,12.975998zM12.0,16.0c-2.21,0.0 -4.0,-1.791 -4.0,-4.0c0.0,-2.21 1.79,-4.0 4.0,-4.0c2.208,0.0 4.0,1.79 4.0,4.0C16.0,14.209 14.208,16.0 12.0,16.0z"
+     android:fill="#FF000000"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_test01.xml b/tests/VectorDrawableTest/res/drawable/vector_test01.xml
new file mode 100644
index 0000000..6beb9d8
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_test01.xml
@@ -0,0 +1,31 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="128dp"
+android:height="128dp"/>
+
+    <viewport android:viewportWidth="512"
+          android:viewportHeight="512"/>
+
+<group>
+<path
+     android:name="002b"
+     android:pathData="M100,200c0,-100 150,-100 150,0s150,100 150,0t-200,299"
+     android:stroke="#FF0000FF"
+     android:strokeWidth="4"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/drawable/vector_test02.xml b/tests/VectorDrawableTest/res/drawable/vector_test02.xml
new file mode 100644
index 0000000..2c1a28e
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable/vector_test02.xml
@@ -0,0 +1,31 @@
+<!-- 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" >
+<size
+android:width="128dp"
+android:height="128dp"/>
+
+    <viewport android:viewportWidth="512"
+          android:viewportHeight="512"/>
+
+<group>
+<path
+     android:name="002b"
+     android:pathData="M100,200c0,-100 150,-100 150,0s150,100 150,0T-200,299"
+     android:stroke="#FF0000FF"
+     android:strokeWidth="4"
+     />
+</group>
+</vector>
diff --git a/tests/VectorDrawableTest/res/values/strings.xml b/tests/VectorDrawableTest/res/values/strings.xml
new file mode 100644
index 0000000..64163c2
--- /dev/null
+++ b/tests/VectorDrawableTest/res/values/strings.xml
@@ -0,0 +1,18 @@
+<?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.
+-->
+
+<resources>
+</resources>
diff --git a/tests/VectorDrawableTest/res/values/styles.xml b/tests/VectorDrawableTest/res/values/styles.xml
new file mode 100644
index 0000000..460c0db
--- /dev/null
+++ b/tests/VectorDrawableTest/res/values/styles.xml
@@ -0,0 +1,16 @@
+<!-- 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.
+-->
+<resources>
+</resources>
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java
new file mode 100644
index 0000000..0b3ea4d
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorCheckbox.java
@@ -0,0 +1,68 @@
+/*
+ * 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.android.test.dynamic;
+
+import android.app.Activity;
+import android.graphics.drawable.VectorDrawable;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.GridLayout;
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class VectorCheckbox extends Activity {
+    private static final String LOGCAT = "VectorDrawable1";
+    int[] icon = {
+            R.drawable.vector_drawable01,
+            R.drawable.vector_drawable02,
+            R.drawable.vector_drawable03,
+            R.drawable.vector_drawable04,
+            R.drawable.vector_drawable05,
+            R.drawable.vector_drawable06,
+            R.drawable.vector_drawable07,
+            R.drawable.vector_drawable08,
+            R.drawable.vector_drawable09,
+            R.drawable.vector_drawable10,
+            R.drawable.vector_drawable11,
+            R.drawable.vector_drawable12,
+            R.drawable.vector_drawable13,
+            R.drawable.vector_drawable14,
+            R.drawable.vector_drawable15,
+            R.drawable.vector_drawable16,
+            R.drawable.vector_drawable17,
+            R.drawable.vector_drawable18,
+            R.drawable.vector_drawable19,
+            R.drawable.vector_drawable20
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        GridLayout container = new GridLayout(this);
+        container.setColumnCount(5);
+        container.setBackgroundColor(0xFF888888);
+        final Button []bArray = new Button[icon.length];
+
+        for (int i = 0; i < icon.length; i++) {
+            CheckBox checkBox = new CheckBox(this);
+            bArray[i] = checkBox;
+            checkBox.setWidth(200);
+            checkBox.setButtonDrawable(icon[i]);
+            container.addView(checkBox);
+        }
+        setContentView(container);
+    }
+}
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java
new file mode 100644
index 0000000..88ae398
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawable01.java
@@ -0,0 +1,88 @@
+/*
+ * 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.android.test.dynamic;
+
+import android.app.Activity;
+import android.graphics.drawable.VectorDrawable;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.GridLayout;
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class VectorDrawable01 extends Activity implements View.OnClickListener {
+    private static final String LOGCAT = "VectorDrawable1";
+    int[] icon = {
+            R.drawable.vector_drawable01,
+            R.drawable.vector_drawable02,
+            R.drawable.vector_drawable03,
+            R.drawable.vector_drawable04,
+            R.drawable.vector_drawable05,
+            R.drawable.vector_drawable06,
+            R.drawable.vector_drawable07,
+            R.drawable.vector_drawable08,
+            R.drawable.vector_drawable09,
+            R.drawable.vector_drawable10,
+            R.drawable.vector_drawable11,
+            R.drawable.vector_drawable12,
+            R.drawable.vector_drawable13,
+            R.drawable.vector_drawable14,
+            R.drawable.vector_drawable15,
+            R.drawable.vector_drawable16,
+            R.drawable.vector_drawable17,
+            R.drawable.vector_drawable18,
+            R.drawable.vector_drawable19,
+            R.drawable.vector_drawable20
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        GridLayout container = new GridLayout(this);
+        container.setColumnCount(5);
+        container.setBackgroundColor(0xFF888888);
+        final Button []bArray = new Button[icon.length];
+
+        for (int i = 0; i < icon.length; i++) {
+            Button button = new Button(this);
+            bArray[i] = button;
+            button.setWidth(200);
+            button.setBackgroundResource(icon[i]);
+            container.addView(button);
+            button.setOnClickListener(this);
+        }
+        Button b = new Button(this);
+        b.setText("Run All");
+        b.setOnClickListener(new View.OnClickListener(){
+
+            @Override
+            public void onClick(View v) {
+                for (int i = 0; i < bArray.length; i++) {
+                    VectorDrawable d = (VectorDrawable)  bArray[i].getBackground();
+                    d.start();
+                }
+            }});
+        container.addView(b);
+        setContentView(container);
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        VectorDrawable d = (VectorDrawable) v.getBackground();
+        d.start();
+    }
+
+}
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java
new file mode 100644
index 0000000..a00bc5e
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableDupPerf.java
@@ -0,0 +1,43 @@
+/*
+ * 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.android.test.dynamic;
+
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class VectorDrawableDupPerf extends VectorDrawablePerformance {
+    {
+        icon = new int[]{
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+                R.drawable.vector_drawable04,
+        };
+    }
+}
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
new file mode 100644
index 0000000..3929298
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawablePerformance.java
@@ -0,0 +1,94 @@
+/*
+ * 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.android.test.dynamic;
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.graphics.drawable.VectorDrawable;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+import android.widget.Button;
+import android.widget.GridLayout;
+import android.widget.ScrollView;
+import java.text.DecimalFormat;
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class VectorDrawablePerformance extends Activity implements View.OnClickListener {
+    private static final String LOGCAT = "VectorDrawable1";
+    protected int[] icon = {
+            R.drawable.vector_drawable01,
+            R.drawable.vector_drawable02,
+            R.drawable.vector_drawable03,
+            R.drawable.vector_drawable04,
+            R.drawable.vector_drawable05,
+            R.drawable.vector_drawable06,
+            R.drawable.vector_drawable07,
+            R.drawable.vector_drawable08,
+            R.drawable.vector_drawable09,
+            R.drawable.vector_drawable10,
+            R.drawable.vector_drawable11,
+            R.drawable.vector_drawable12,
+            R.drawable.vector_drawable13,
+            R.drawable.vector_drawable14,
+            R.drawable.vector_drawable15,
+            R.drawable.vector_drawable16,
+            R.drawable.vector_drawable17,
+            R.drawable.vector_drawable18,
+            R.drawable.vector_drawable19,
+            R.drawable.vector_drawable20
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ScrollView scrollView = new ScrollView(this);
+        GridLayout container = new GridLayout(this);
+        scrollView.addView(container);
+        container.setColumnCount(5);
+        Resources res = this.getResources();
+        container.setBackgroundColor(0xFF888888);
+        VectorDrawable []d = new VectorDrawable[icon.length];
+        long time =  android.os.SystemClock.elapsedRealtimeNanos();
+        for (int i = 0; i < icon.length; i++) {
+             d[i] = VectorDrawable.create(res,icon[i]);
+        }
+        time =  android.os.SystemClock.elapsedRealtimeNanos()-time;
+        TextView t = new TextView(this);
+        DecimalFormat df = new DecimalFormat("#.##");
+        t.setText("avgL=" + df.format(time / (icon.length * 1000000.)) + " ms");
+        t.setBackgroundColor(0xFF000000);
+        container.addView(t);
+        time =  android.os.SystemClock.elapsedRealtimeNanos();
+        for (int i = 0; i < icon.length; i++) {
+            Button button = new Button(this);
+            button.setWidth(200);
+            button.setBackgroundResource(icon[i]);
+            container.addView(button);
+            button.setOnClickListener(this);
+        }
+        setContentView(scrollView);
+        time =  android.os.SystemClock.elapsedRealtimeNanos()-time;
+        t = new TextView(this);
+        t.setText("avgS=" + df.format(time / (icon.length * 1000000.)) + " ms");
+        t.setBackgroundColor(0xFF000000);
+        container.addView(t);
+    }
+
+    @Override
+    public void onClick(View v) {
+        VectorDrawable d = (VectorDrawable) v.getBackground();
+        d.start();
+    }
+}
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java
new file mode 100644
index 0000000..9d3eded
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableStaticPerf.java
@@ -0,0 +1,36 @@
+/*
+ * 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.android.test.dynamic;
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.graphics.drawable.VectorDrawable;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+import android.widget.Button;
+import android.widget.GridLayout;
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class VectorDrawableStaticPerf extends VectorDrawablePerformance {
+    {
+        icon = new int[]{
+                R.drawable.vector_icon_create,
+                R.drawable.vector_icon_delete,
+                R.drawable.vector_icon_heart,
+                R.drawable.vector_icon_schedule,
+                R.drawable.vector_icon_settings,
+        };
+    }
+}
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java
new file mode 100644
index 0000000..704d3d7
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorDrawableTest.java
@@ -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.
+ */
+
+package com.android.test.dynamic;
+
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.SimpleAdapter;
+
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@SuppressWarnings("UnusedDeclaration")
+public class VectorDrawableTest extends android.app.ListActivity {
+    private static final String EXTRA_PATH = "com.android.test.dynamic.Path";
+    private static final String CATEGORY_HWUI_TEST = "com.android.test.dynamic.TEST";
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Intent intent = getIntent();
+        String path = intent.getStringExtra("com.android.test.hwui.Path");
+
+        if (path == null) {
+            path = "";
+        }
+
+        setListAdapter(new SimpleAdapter(this, getData(path),
+                android.R.layout.simple_list_item_1, new String[] { "title" },
+                new int[] { android.R.id.text1 }));
+        getListView().setTextFilterEnabled(true);
+    }
+
+    protected List<Map<String, Object>> getData(String prefix) {
+        List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
+
+        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
+        mainIntent.addCategory(CATEGORY_HWUI_TEST);
+
+        PackageManager pm = getPackageManager();
+        List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
+
+        if (null == list)
+            return myData;
+
+        String[] prefixPath;
+        String prefixWithSlash = prefix;
+
+        if (prefix.equals("")) {
+            prefixPath = null;
+        } else {
+            prefixPath = prefix.split("/");
+            prefixWithSlash = prefix + "/";
+        }
+
+        int len = list.size();
+
+        Map<String, Boolean> entries = new HashMap<String, Boolean>();
+
+        for (int i = 0; i < len; i++) {
+            ResolveInfo info = list.get(i);
+            CharSequence labelSeq = info.loadLabel(pm);
+            String label = labelSeq != null
+                    ? labelSeq.toString()
+                            : info.activityInfo.name;
+
+                    if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
+
+                        String[] labelPath = label.split("/");
+
+                        String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
+
+                        if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
+                            addItem(myData, nextLabel, activityIntent(
+                                    info.activityInfo.applicationInfo.packageName,
+                                    info.activityInfo.name));
+                        } else {
+                            if (entries.get(nextLabel) == null) {
+                                addItem(myData, nextLabel, browseIntent(prefix.equals("") ?
+                                        nextLabel : prefix + "/" + nextLabel));
+                                entries.put(nextLabel, true);
+                            }
+                        }
+                    }
+        }
+
+        Collections.sort(myData, sDisplayNameComparator);
+
+        return myData;
+    }
+
+    private final static Comparator<Map<String, Object>> sDisplayNameComparator =
+            new Comparator<Map<String, Object>>() {
+        private final Collator collator = Collator.getInstance();
+
+        public int compare(Map<String, Object> map1, Map<String, Object> map2) {
+            return collator.compare(map1.get("title"), map2.get("title"));
+        }
+    };
+
+    protected Intent activityIntent(String pkg, String componentName) {
+        Intent result = new Intent();
+        result.setClassName(pkg, componentName);
+        return result;
+    }
+
+    protected Intent browseIntent(String path) {
+        Intent result = new Intent();
+        result.setClass(this, VectorDrawableTest.class);
+        result.putExtra(EXTRA_PATH, path);
+        return result;
+    }
+
+    protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
+        Map<String, Object> temp = new HashMap<String, Object>();
+        temp.put("title", name);
+        temp.put("intent", intent);
+        data.add(temp);
+    }
+
+    @Override
+    @SuppressWarnings({ "unchecked", "UnusedParameters" })
+    protected void onListItemClick(ListView l, View v, int position, long id) {
+        Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position);
+
+        Intent intent = (Intent) map.get("intent");
+        startActivity(intent);
+    }
+}
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java
new file mode 100644
index 0000000..3430192
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/VectorPathChecking.java
@@ -0,0 +1,25 @@
+/*
+ * 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.android.test.dynamic;
+
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class VectorPathChecking extends VectorDrawablePerformance {
+    {
+        icon = new int[]{
+                R.drawable.vector_test01,
+                R.drawable.vector_test02
+        };
+    }
+}
diff --git a/tests/permission/src/com/android/framework/permission/tests/PmPermissionsTests.java b/tests/permission/src/com/android/framework/permission/tests/PmPermissionsTests.java
index b690c45..93aa555 100644
--- a/tests/permission/src/com/android/framework/permission/tests/PmPermissionsTests.java
+++ b/tests/permission/src/com/android/framework/permission/tests/PmPermissionsTests.java
@@ -16,7 +16,7 @@
 
 package com.android.framework.permission.tests;
 
-import junit.framework.TestCase;
+import android.app.PackageInstallObserver;
 import android.content.pm.PackageManager;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -68,10 +68,14 @@
      * This test verifies that PackageManger.installPackage enforces permission
      * android.permission.INSTALL_PACKAGES
      */
+    private class TestInstallObserver extends PackageInstallObserver {
+    }
+
     @SmallTest
     public void testInstallPackage() {
+        TestInstallObserver observer = new TestInstallObserver();
         try {
-            mPm.installPackage(null, null, 0, null);
+            mPm.installPackage(null, observer, 0, null);
             fail("PackageManager.installPackage" +
                     "did not throw SecurityException as expected");
         } catch (SecurityException e) {
diff --git a/tools/aapt/AaptAssets.cpp b/tools/aapt/AaptAssets.cpp
index 38bfa00..e0dab78 100644
--- a/tools/aapt/AaptAssets.cpp
+++ b/tools/aapt/AaptAssets.cpp
@@ -1342,6 +1342,11 @@
               (out->uiMode&~ResTable_config::MASK_UI_MODE_TYPE)
               | ResTable_config::UI_MODE_TYPE_APPLIANCE;
         return true;
+    } else if (strcmp(name, "watch") == 0) {
+      if (out) out->uiMode =
+              (out->uiMode&~ResTable_config::MASK_UI_MODE_TYPE)
+              | ResTable_config::UI_MODE_TYPE_WATCH;
+        return true;
     }
 
     return false;
diff --git a/tools/layoutlib/Android.mk b/tools/layoutlib/Android.mk
index 1fa9615..cb68340 100644
--- a/tools/layoutlib/Android.mk
+++ b/tools/layoutlib/Android.mk
@@ -53,6 +53,7 @@
 $(LOCAL_BUILT_MODULE): $(built_core_dep) \
                        $(built_framework_dep) \
                        $(built_ext_dep) \
+                       $(built_ext_data) \
                        $(built_layoutlib_create_jar)
 	$(hide) echo "host layoutlib_create: $@"
 	$(hide) mkdir -p $(dir $@)
diff --git a/tools/layoutlib/bridge/resources/bars/action_bar.xml b/tools/layoutlib/bridge/resources/bars/action_bar.xml
deleted file mode 100644
index 7adc5af..0000000
--- a/tools/layoutlib/bridge/resources/bars/action_bar.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-    <include layout="@android:layout/action_bar_home" />
-    <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
-</merge>
diff --git a/tools/layoutlib/bridge/src/android/content/res/AssetManager_Delegate.java b/tools/layoutlib/bridge/src/android/content/res/AssetManager_Delegate.java
new file mode 100644
index 0000000..914a359
--- /dev/null
+++ b/tools/layoutlib/bridge/src/android/content/res/AssetManager_Delegate.java
@@ -0,0 +1,45 @@
+/*
+ * 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 android.content.res;
+
+import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
+
+/**
+ * Delegate used to provide implementation of a select few native methods of {@link AssetManager}
+ * <p/>
+ * Through the layoutlib_create tool, the original native methods of AssetManager have been replaced
+ * by calls to methods of the same name in this delegate class.
+ *
+ */
+public class AssetManager_Delegate {
+
+    @LayoutlibDelegate
+    /*package*/ static long newTheme(AssetManager manager) {
+        return Resources_Theme_Delegate.getDelegateManager()
+                .addNewDelegate(new Resources_Theme_Delegate());
+    }
+
+    @LayoutlibDelegate
+    /*package*/ static void deleteTheme(AssetManager manager, long theme) {
+        Resources_Theme_Delegate.getDelegateManager().removeJavaReferenceFor(theme);
+    }
+
+    @LayoutlibDelegate
+    /*package*/ static void applyThemeStyle(long theme, int styleRes, boolean force) {
+        Resources_Theme_Delegate.getDelegateManager().getDelegate(theme).force = force;
+    }
+}
diff --git a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
index cfe7525..cc621c4 100644
--- a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
@@ -52,9 +52,9 @@
     private final BridgeContext mContext;
     private final boolean mPlatformFile;
 
-    private ResourceValue[] mResourceData;
-    private String[] mNames;
-    private boolean[] mIsFramework;
+    private final ResourceValue[] mResourceData;
+    private final String[] mNames;
+    private final boolean[] mIsFramework;
 
     public BridgeTypedArray(BridgeResources resources, BridgeContext context, int len,
             boolean platformFile) {
@@ -81,8 +81,8 @@
     }
 
     /**
-     * Seals the array after all calls to {@link #bridgeSetValue(int, String, ResourceValue)} have
-     * been done.
+     * Seals the array after all calls to
+     * {@link #bridgeSetValue(int, String, boolean, ResourceValue)} have been done.
      * <p/>This allows to compute the list of non default values, permitting
      * {@link #getIndexCount()} to return the proper value.
      */
@@ -252,7 +252,7 @@
             for (String keyword : keywords) {
                 Integer i = map.get(keyword.trim());
                 if (i != null) {
-                    result |= i.intValue();
+                    result |= i;
                 } else {
                     Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
                             String.format(
@@ -731,7 +731,7 @@
         }
 
         // not a direct id valid reference? resolve it
-        Integer idValue = null;
+        Integer idValue;
 
         if (resValue.isFramework()) {
             idValue = Bridge.getResourceId(resValue.getResourceType(),
@@ -742,7 +742,7 @@
         }
 
         if (idValue != null) {
-            return idValue.intValue();
+            return idValue;
         }
 
         Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_RESOLVE,
@@ -753,6 +753,12 @@
         return defValue;
     }
 
+    @Override
+    public int getThemeAttributeId(int index, int defValue) {
+        // TODO: Get the right Theme Attribute ID to enable caching of the drawables.
+        return defValue;
+    }
+
     /**
      * Retrieve the Drawable for the attribute at <var>index</var>.  This
      * gets the resource ID of the selected attribute, and uses
@@ -854,6 +860,7 @@
      */
     @Override
     public boolean hasValue(int index) {
+        //noinspection SimplifiableIfStatement
         if (index < 0 || index >= mResourceData.length) {
             return false;
         }
diff --git a/tools/layoutlib/bridge/src/android/content/res/Resources_Theme_Delegate.java b/tools/layoutlib/bridge/src/android/content/res/Resources_Theme_Delegate.java
index c9d615c..31d1594 100644
--- a/tools/layoutlib/bridge/src/android/content/res/Resources_Theme_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/content/res/Resources_Theme_Delegate.java
@@ -16,7 +16,13 @@
 
 package android.content.res;
 
+import com.android.annotations.Nullable;
+import com.android.ide.common.rendering.api.ResourceReference;
+import com.android.ide.common.rendering.api.StyleResourceValue;
+import com.android.layoutlib.bridge.android.BridgeContext;
+import com.android.layoutlib.bridge.impl.DelegateManager;
 import com.android.layoutlib.bridge.impl.RenderSessionImpl;
+import com.android.resources.ResourceType;
 import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
 
 import android.content.res.Resources.NotFoundException;
@@ -25,7 +31,7 @@
 import android.util.TypedValue;
 
 /**
- * Delegate used to provide new implementation of a select few methods of {@link Resources$Theme}
+ * Delegate used to provide new implementation of a select few methods of {@link Resources.Theme}
  *
  * Through the layoutlib_create tool, the original  methods of Theme have been replaced
  * by calls to methods of the same name in this delegate class.
@@ -33,11 +39,28 @@
  */
 public class Resources_Theme_Delegate {
 
+    // Whether to use the Theme.mThemeResId as primary theme.
+    boolean force;
+
+    // ---- delegate manager ----
+
+    private static final DelegateManager<Resources_Theme_Delegate> sManager =
+            new DelegateManager<Resources_Theme_Delegate>(Resources_Theme_Delegate.class);
+
+    public static DelegateManager<Resources_Theme_Delegate> getDelegateManager() {
+        return sManager;
+    }
+
+    // ---- delegate methods. ----
+
     @LayoutlibDelegate
     /*package*/ static TypedArray obtainStyledAttributes(
             Resources thisResources, Theme thisTheme,
             int[] attrs) {
-        return RenderSessionImpl.getCurrentContext().obtainStyledAttributes(attrs);
+        boolean changed = setupResources(thisTheme);
+        TypedArray ta = RenderSessionImpl.getCurrentContext().obtainStyledAttributes(attrs);
+        restoreResources(changed);
+        return ta;
     }
 
     @LayoutlibDelegate
@@ -45,15 +68,21 @@
             Resources thisResources, Theme thisTheme,
             int resid, int[] attrs)
             throws NotFoundException {
-        return RenderSessionImpl.getCurrentContext().obtainStyledAttributes(resid, attrs);
+        boolean changed = setupResources(thisTheme);
+        TypedArray ta = RenderSessionImpl.getCurrentContext().obtainStyledAttributes(resid, attrs);
+        restoreResources(changed);
+        return ta;
     }
 
     @LayoutlibDelegate
     /*package*/ static TypedArray obtainStyledAttributes(
             Resources thisResources, Theme thisTheme,
             AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) {
-        return RenderSessionImpl.getCurrentContext().obtainStyledAttributes(
-                set, attrs, defStyleAttr, defStyleRes);
+        boolean changed = setupResources(thisTheme);
+        TypedArray ta = RenderSessionImpl.getCurrentContext().obtainStyledAttributes(set, attrs,
+                defStyleAttr, defStyleRes);
+        restoreResources(changed);
+        return ta;
     }
 
     @LayoutlibDelegate
@@ -61,7 +90,45 @@
             Resources thisResources, Theme thisTheme,
             int resid, TypedValue outValue,
             boolean resolveRefs) {
-        return RenderSessionImpl.getCurrentContext().resolveThemeAttribute(
+        boolean changed = setupResources(thisTheme);
+        boolean found =  RenderSessionImpl.getCurrentContext().resolveThemeAttribute(
                 resid, outValue, resolveRefs);
+        restoreResources(changed);
+        return found;
+    }
+
+    // ---- private helper methods ----
+
+    private static boolean setupResources(Theme thisTheme) {
+        Resources_Theme_Delegate themeDelegate = sManager.getDelegate(thisTheme.getNativeTheme());
+        StyleResourceValue style = resolveStyle(thisTheme.getAppliedStyleResId());
+        if (style != null) {
+            RenderSessionImpl.getCurrentContext().getRenderResources()
+                    .applyStyle(style, themeDelegate.force);
+            return true;
+        }
+        return false;
+    }
+
+    private static void restoreResources(boolean changed) {
+        if (changed) {
+            RenderSessionImpl.getCurrentContext().getRenderResources().clearStyles();
+        }
+    }
+
+    @Nullable
+    private static StyleResourceValue resolveStyle(int nativeResid) {
+        if (nativeResid == 0) {
+            return null;
+        }
+        BridgeContext context = RenderSessionImpl.getCurrentContext();
+        ResourceReference theme = context.resolveId(nativeResid);
+        if (theme.isFramework()) {
+            return (StyleResourceValue) context.getRenderResources()
+                    .getFrameworkResource(ResourceType.STYLE, theme.getName());
+        } else {
+            return (StyleResourceValue) context.getRenderResources()
+                    .getProjectResource(ResourceType.STYLE, theme.getName());
+        }
     }
 }
diff --git a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
index 743a26c..757cdd2 100644
--- a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
+++ b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
@@ -23,22 +23,13 @@
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
-import android.graphics.Rect;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.IRemoteCallback;
 import android.os.RemoteException;
 import android.util.DisplayMetrics;
-import android.view.Display;
-import android.view.Gravity;
-import android.view.IApplicationToken;
-import android.view.IInputFilter;
-import android.view.IOnKeyguardExitResult;
-import android.view.IRotationWatcher;
-import android.view.IWindowManager;
-import android.view.IWindowSession;
 
-import java.util.List;
+import java.lang.Override;
 
 /**
  * Basic implementation of {@link IWindowManager} so that {@link Display} (and
@@ -462,4 +453,22 @@
         // TODO Auto-generated method stub
         return false;
     }
+
+    @Override
+    public void enableScreenIfNeeded() throws RemoteException {
+        // TODO Auto-generated method stub
+    }
+
+    @Override
+    public boolean clearWindowContentFrameStats(IBinder token) throws RemoteException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public WindowContentFrameStats getWindowContentFrameStats(IBinder token)
+            throws RemoteException {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }
diff --git a/tools/layoutlib/bridge/src/com/android/internal/widget/ActionBarAccessor.java b/tools/layoutlib/bridge/src/com/android/internal/widget/ActionBarAccessor.java
new file mode 100644
index 0000000..40b6220
--- /dev/null
+++ b/tools/layoutlib/bridge/src/com/android/internal/widget/ActionBarAccessor.java
@@ -0,0 +1,32 @@
+/*
+ * 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.android.internal.widget;
+
+import android.widget.ActionMenuPresenter;
+
+/**
+ * To access non public members of AbsActionBarView
+ */
+public class ActionBarAccessor {
+
+    /**
+     * Returns the {@link ActionMenuPresenter} associated with the {@link AbsActionBarView}
+     */
+    public static ActionMenuPresenter getActionMenuPresenter(AbsActionBarView view) {
+        return view.mActionMenuPresenter;
+    }
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
index ab4be71..fa8050f 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
@@ -215,7 +215,8 @@
                 Capability.ADAPTER_BINDING,
                 Capability.EXTENDED_VIEWINFO,
                 Capability.FIXED_SCALABLE_NINE_PATCH,
-                Capability.RTL);
+                Capability.RTL,
+                Capability.ACTION_BAR);
 
 
         BridgeAssetManager.initSystem();
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
index f9f4b3a..e0f87fd 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
@@ -64,6 +64,11 @@
     }
 
     @Override
+    public List<ViewInfo> getSystemRootViews() {
+        return mSession.getSystemViewInfos();
+    }
+
+    @Override
     public Map<String, String> getDefaultProperties(Object viewObject) {
         return mSession.getDefaultProperties(viewObject);
     }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
index b9294ab..6595ce1 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java
@@ -16,6 +16,7 @@
 
 package com.android.layoutlib.bridge.android;
 
+import com.android.annotations.Nullable;
 import com.android.ide.common.rendering.api.ILayoutPullParser;
 import com.android.ide.common.rendering.api.IProjectCallback;
 import com.android.ide.common.rendering.api.LayoutLog;
@@ -109,7 +110,7 @@
     // maps for dynamically generated id representing style objects (StyleResourceValue)
     private Map<Integer, StyleResourceValue> mDynamicIdToStyleMap;
     private Map<StyleResourceValue, Integer> mStyleToDynamicIdMap;
-    private int mDynamicIdGenerator = 0x01030000; // Base id for framework R.style
+    private int mDynamicIdGenerator = 0x02030000; // Base id for R.style in custom namespace
 
     // cache for TypedArray generated from IStyleResourceValue object
     private Map<int[], Map<Integer, TypedArray>> mTypedArrayCache;
@@ -315,6 +316,11 @@
             }
         }
 
+        // The base value for R.style is 0x01030000 and the custom style is 0x02030000.
+        // So, if the second byte is 03, it's probably a style.
+        if ((id >> 16 & 0xFF) == 0x03) {
+            return getStyleByDynamicId(id);
+        }
         return null;
     }
 
@@ -455,7 +461,10 @@
 
     @Override
     public final TypedArray obtainStyledAttributes(int[] attrs) {
-        return createStyleBasedTypedArray(mRenderResources.getCurrentTheme(), attrs);
+        // No style is specified here, so create the typed array based on the default theme
+        // and the styles already applied to it. A null value of style indicates that the default
+        // theme should be used.
+        return createStyleBasedTypedArray(null, attrs);
     }
 
     @Override
@@ -604,7 +613,8 @@
             }
 
             if (value != null) {
-                if (value.getFirst() == ResourceType.STYLE) {
+                if ((value.getFirst() == ResourceType.STYLE)
+                        || (value.getFirst() == ResourceType.ATTR)) {
                     // look for the style in the current theme, and its parent:
                     ResourceValue item = mRenderResources.findItemInTheme(value.getSecond(),
                             isFrameworkRes);
@@ -723,11 +733,13 @@
 
     /**
      * Creates a {@link BridgeTypedArray} by filling the values defined by the int[] with the
-     * values found in the given style.
+     * values found in the given style. If no style is specified, the default theme, along with the
+     * styles applied to it are used.
+     *
      * @see #obtainStyledAttributes(int, int[])
      */
-    private BridgeTypedArray createStyleBasedTypedArray(StyleResourceValue style, int[] attrs)
-            throws Resources.NotFoundException {
+    private BridgeTypedArray createStyleBasedTypedArray(@Nullable StyleResourceValue style,
+            int[] attrs) throws Resources.NotFoundException {
 
         List<Pair<String, Boolean>> attributes = searchAttrs(attrs);
 
@@ -740,8 +752,14 @@
 
             if (attribute != null) {
                 // look for the value in the given style
-                ResourceValue resValue = mRenderResources.findItemInStyle(style,
-                        attribute.getFirst(), attribute.getSecond());
+                ResourceValue resValue;
+                if (style != null) {
+                    resValue = mRenderResources.findItemInStyle(style, attribute.getFirst(),
+                            attribute.getSecond());
+                } else {
+                    resValue = mRenderResources.findItemInTheme(attribute.getFirst(),
+                            attribute.getSecond());
+                }
 
                 if (resValue != null) {
                     // resolve it to make sure there are no references left.
@@ -756,7 +774,6 @@
         return ta;
     }
 
-
     /**
      * The input int[] attrs is a list of attributes. The returns a list of information about
      * each attributes. The information is (name, isFramework)
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
index 66e67db..0bb7fc2 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
@@ -238,4 +238,9 @@
         // TODO Auto-generated method stub
         return null;
     }
+
+    @Override
+    public void setCursorAnchorMonitorMode(IBinder arg0, int arg1) {
+      // TODO Auto-generated method stub
+    }
 }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
index 3414b3e..4eb70aa 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePowerManager.java
@@ -28,7 +28,7 @@
 public class BridgePowerManager implements IPowerManager {
 
     @Override
-    public boolean isScreenOn() throws RemoteException {
+    public boolean isInteractive() throws RemoteException {
         return true;
     }
 
@@ -51,6 +51,11 @@
     }
 
     @Override
+    public void powerHint(int hintId, int data) {
+        // pass for now.
+    }
+
+    @Override
     public void crash(String arg0) throws RemoteException {
         // pass for now.
     }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java
index df576d2..d32f6ee 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindow.java
@@ -58,11 +58,6 @@
     }
 
     @Override
-    public void dispatchScreenState(boolean on) throws RemoteException {
-        // pass for now.
-    }
-
-    @Override
     public void windowFocusChanged(boolean arg0, boolean arg1) throws RemoteException {
         // pass for now.
     }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java
new file mode 100644
index 0000000..49027c6
--- /dev/null
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.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.android.layoutlib.bridge.bars;
+
+import com.android.annotations.NonNull;
+import com.android.annotations.Nullable;
+import com.android.ide.common.rendering.api.ActionBarCallback;
+import com.android.ide.common.rendering.api.ActionBarCallback.HomeButtonStyle;
+import com.android.ide.common.rendering.api.RenderResources;
+import com.android.ide.common.rendering.api.ResourceValue;
+import com.android.ide.common.rendering.api.SessionParams;
+import com.android.internal.R;
+import com.android.internal.app.WindowDecorActionBar;
+import com.android.internal.view.menu.MenuBuilder;
+import com.android.internal.view.menu.MenuItemImpl;
+import com.android.internal.widget.ActionBarAccessor;
+import com.android.internal.widget.ActionBarContainer;
+import com.android.internal.widget.ActionBarView;
+import com.android.layoutlib.bridge.android.BridgeContext;
+import com.android.layoutlib.bridge.impl.ResourceHelper;
+import com.android.resources.ResourceType;
+
+import android.app.ActionBar;
+import android.app.ActionBar.Tab;
+import android.app.ActionBar.TabListener;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MenuInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+
+import java.util.ArrayList;
+
+/**
+ * A layout representing the action bar.
+ */
+public class ActionBarLayout extends LinearLayout {
+
+    // Store another reference to the context so that we don't have to cast it repeatedly.
+    @NonNull private final BridgeContext mBridgeContext;
+    @NonNull private final Context mThemedContext;
+
+    @NonNull private final ActionBar mActionBar;
+
+    // Data for Action Bar.
+    @Nullable private final String mIcon;
+    @Nullable private final String mTitle;
+    @Nullable private final String mSubTitle;
+    private final boolean mSplit;
+    private final boolean mShowHomeAsUp;
+    private final int mNavMode;
+
+    // Helper fields.
+    @NonNull private final MenuBuilder mMenuBuilder;
+    private final int mPopupMaxWidth;
+    @NonNull private final RenderResources res;
+    @Nullable private final ActionBarView mActionBarView;
+    @Nullable private FrameLayout mContentRoot;
+    @NonNull private final ActionBarCallback mCallback;
+
+    // A fake parent for measuring views.
+    @Nullable private ViewGroup mMeasureParent;
+
+    public ActionBarLayout(@NonNull BridgeContext context, @NonNull SessionParams params) {
+
+        super(context);
+        setOrientation(LinearLayout.HORIZONTAL);
+        setGravity(Gravity.CENTER_VERTICAL);
+
+        // Inflate action bar layout.
+        LayoutInflater.from(context).inflate(R.layout.screen_action_bar, this,
+                true /*attachToRoot*/);
+        mActionBar = new WindowDecorActionBar(this);
+
+        // Set contexts.
+        mBridgeContext = context;
+        mThemedContext = mActionBar.getThemedContext();
+
+        // Set data for action bar.
+        mCallback = params.getProjectCallback().getActionBarCallback();
+        mIcon = params.getAppIcon();
+        mTitle = params.getAppLabel();
+        // Split Action Bar when the screen size is narrow and the application requests split action
+        // bar when narrow.
+        mSplit = context.getResources().getBoolean(R.bool.split_action_bar_is_narrow) &&
+                mCallback.getSplitActionBarWhenNarrow();
+        mNavMode = mCallback.getNavigationMode();
+        // TODO: Support Navigation Drawer Indicator.
+        mShowHomeAsUp = mCallback.getHomeButtonStyle() == HomeButtonStyle.SHOW_HOME_AS_UP;
+        mSubTitle = mCallback.getSubTitle();
+
+
+        // Set helper fields.
+        mMenuBuilder = new MenuBuilder(mThemedContext);
+        res = mBridgeContext.getRenderResources();
+        mPopupMaxWidth = Math.max(mBridgeContext.getMetrics().widthPixels / 2,
+                mThemedContext.getResources().getDimensionPixelSize(
+                        R.dimen.config_prefDialogWidth));
+        mActionBarView = (ActionBarView) findViewById(R.id.action_bar);
+        mContentRoot = (FrameLayout) findViewById(android.R.id.content);
+
+        setupActionBar();
+    }
+
+    /**
+     * Sets up the action bar by filling the appropriate data.
+     */
+    private void setupActionBar() {
+        // Add title and sub title.
+        ResourceValue titleValue = res.findResValue(mTitle, false /*isFramework*/);
+        if (titleValue != null && titleValue.getValue() != null) {
+            mActionBar.setTitle(titleValue.getValue());
+        } else {
+            mActionBar.setTitle(mTitle);
+        }
+        if (mSubTitle != null) {
+            mActionBar.setSubtitle(mSubTitle);
+        }
+
+        // Add show home as up icon.
+        if (mShowHomeAsUp) {
+            mActionBar.setDisplayOptions(0xFF, ActionBar.DISPLAY_HOME_AS_UP);
+        }
+
+        // Set the navigation mode.
+        mActionBar.setNavigationMode(mNavMode);
+        if (mNavMode == ActionBar.NAVIGATION_MODE_TABS) {
+            setupTabs(3);
+        }
+
+        if (mActionBarView != null) {
+            // If the action bar style doesn't specify an icon, set the icon obtained from the session
+            // params.
+            if (!mActionBarView.hasIcon() && mIcon != null) {
+                Drawable iconDrawable = getDrawable(mIcon, false /*isFramework*/);
+                if (iconDrawable != null) {
+                    mActionBar.setIcon(iconDrawable);
+                }
+            }
+
+            // Set action bar to be split, if needed.
+            mActionBarView.setSplitView((ActionBarContainer) findViewById(R.id.split_action_bar));
+            mActionBarView.setSplitActionBar(mSplit);
+
+            inflateMenus();
+        }
+    }
+
+    /**
+     * Gets the menus to add to the action bar from the callback, resolves them, inflates them and
+     * adds them to the action bar.
+     */
+    private void inflateMenus() {
+        if (mActionBarView == null) {
+            return;
+        }
+        final MenuInflater inflater = new MenuInflater(mThemedContext);
+        for (String name : mCallback.getMenuIdNames()) {
+            if (mBridgeContext.getRenderResources().getProjectResource(ResourceType.MENU, name)
+                    != null) {
+                int id = mBridgeContext.getProjectResourceValue(ResourceType.MENU, name, -1);
+                if (id > -1) {
+                    inflater.inflate(id, mMenuBuilder);
+                }
+            }
+        }
+        mActionBarView.setMenu(mMenuBuilder, null /*callback*/);
+    }
+
+    // TODO: Use an adapter, like List View to set up tabs.
+    private void setupTabs(int num) {
+        for (int i = 1; i <= num; i++) {
+            Tab tab = mActionBar.newTab().setText("Tab" + i).setTabListener(new TabListener() {
+                @Override
+                public void onTabUnselected(Tab t, FragmentTransaction ft) {
+                    // pass
+                }
+                @Override
+                public void onTabSelected(Tab t, FragmentTransaction ft) {
+                    // pass
+                }
+                @Override
+                public void onTabReselected(Tab t, FragmentTransaction ft) {
+                    // pass
+                }
+            });
+            mActionBar.addTab(tab);
+        }
+    }
+
+    @Nullable
+    private Drawable getDrawable(@NonNull String name, boolean isFramework) {
+        ResourceValue value = res.findResValue(name, isFramework);
+        value = res.resolveResValue(value);
+        if (value != null) {
+            return ResourceHelper.getDrawable(value, mBridgeContext);
+        }
+        return null;
+    }
+
+    /**
+     * Creates a Popup and adds it to the content frame. It also adds another {@link FrameLayout} to
+     * the content frame which shall serve as the new content root.
+     */
+    public void createMenuPopup() {
+        assert mContentRoot != null && findViewById(android.R.id.content) == mContentRoot
+                : "Action Bar Menus have already been created.";
+
+        if (!isOverflowPopupNeeded()) {
+            return;
+        }
+
+        // Create a layout to hold the menus and the user's content.
+        RelativeLayout layout = new RelativeLayout(mThemedContext);
+        layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
+                LayoutParams.MATCH_PARENT));
+        mContentRoot.addView(layout);
+        // Create a layout for the user's content.
+        FrameLayout contentRoot = new FrameLayout(mBridgeContext);
+        contentRoot.setLayoutParams(new LayoutParams(
+                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+        // Add contentRoot and menus to the layout.
+        layout.addView(contentRoot);
+        layout.addView(createMenuView());
+        // ContentRoot is now the view we just created.
+        mContentRoot = contentRoot;
+    }
+
+    /**
+     * Returns a {@link LinearLayout} containing the menu list view to be embedded in a
+     * {@link RelativeLayout}
+     */
+    @NonNull
+    private View createMenuView() {
+        DisplayMetrics metrics = mBridgeContext.getMetrics();
+        OverflowMenuAdapter adapter = new OverflowMenuAdapter(mMenuBuilder, mThemedContext);
+
+        LinearLayout layout = new LinearLayout(mThemedContext);
+        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
+                measureContentWidth(adapter), LayoutParams.WRAP_CONTENT);
+        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_END);
+        if (mSplit) {
+            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
+            // TODO: Find correct value instead of hardcoded 10dp.
+            layoutParams.bottomMargin = getPixelValue("-10dp", metrics);
+        } else {
+            layoutParams.topMargin = getPixelValue("-10dp", metrics);
+        }
+        layout.setLayoutParams(layoutParams);
+        final TypedArray a = mThemedContext.obtainStyledAttributes(null,
+                R.styleable.PopupWindow, R.attr.popupMenuStyle, 0);
+        layout.setBackground(a.getDrawable(R.styleable.PopupWindow_popupBackground));
+        layout.setDividerDrawable(a.getDrawable(R.attr.actionBarDivider));
+        a.recycle();
+        layout.setOrientation(LinearLayout.VERTICAL);
+        layout.setDividerPadding(getPixelValue("12dp", metrics));
+        layout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+
+        ListView listView = new ListView(mThemedContext, null, R.attr.dropDownListViewStyle);
+        listView.setAdapter(adapter);
+        layout.addView(listView);
+        return layout;
+    }
+
+    private boolean isOverflowPopupNeeded() {
+        boolean needed = mCallback.isOverflowPopupNeeded();
+        if (!needed) {
+            return false;
+        }
+        // Copied from android.widget.ActionMenuPresenter.updateMenuView()
+        ArrayList<MenuItemImpl> menus = mMenuBuilder.getNonActionItems();
+        if (ActionBarAccessor.getActionMenuPresenter(mActionBarView).isOverflowReserved() &&
+                menus != null) {
+            final int count = menus.size();
+            if (count == 1) {
+                needed = !menus.get(0).isActionViewExpanded();
+            } else {
+                needed = count > 0;
+            }
+        }
+        return needed;
+    }
+
+    @Nullable
+    public FrameLayout getContentRoot() {
+        return mContentRoot;
+    }
+
+    // Copied from com.android.internal.view.menu.MenuPopHelper.measureContentWidth()
+    private int measureContentWidth(@NonNull ListAdapter adapter) {
+        // Menus don't tend to be long, so this is more sane than it looks.
+        int maxWidth = 0;
+        View itemView = null;
+        int itemType = 0;
+
+        final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
+        final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
+        final int count = adapter.getCount();
+        for (int i = 0; i < count; i++) {
+            final int positionType = adapter.getItemViewType(i);
+            if (positionType != itemType) {
+                itemType = positionType;
+                itemView = null;
+            }
+
+            if (mMeasureParent == null) {
+                mMeasureParent = new FrameLayout(mThemedContext);
+            }
+
+            itemView = adapter.getView(i, itemView, mMeasureParent);
+            itemView.measure(widthMeasureSpec, heightMeasureSpec);
+
+            final int itemWidth = itemView.getMeasuredWidth();
+            if (itemWidth >= mPopupMaxWidth) {
+                return mPopupMaxWidth;
+            } else if (itemWidth > maxWidth) {
+                maxWidth = itemWidth;
+            }
+        }
+
+        return maxWidth;
+    }
+
+    private int getPixelValue(@NonNull String value, @NonNull DisplayMetrics metrics) {
+        TypedValue typedValue = ResourceHelper.getValue(null, value, false /*requireUnit*/);
+        return (int) typedValue.getDimension(metrics);
+    }
+
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/FakeActionBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/FakeActionBar.java
deleted file mode 100644
index 226649d..0000000
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/FakeActionBar.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.android.layoutlib.bridge.bars;
-
-import com.android.resources.Density;
-
-import org.xmlpull.v1.XmlPullParserException;
-
-import android.content.Context;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-public class FakeActionBar extends CustomBar {
-
-    private TextView mTextView;
-
-    public FakeActionBar(Context context, Density density, String label, String icon)
-            throws XmlPullParserException {
-        super(context, density, LinearLayout.HORIZONTAL, "/bars/action_bar.xml", "action_bar.xml");
-
-        // Cannot access the inside items through id because no R.id values have been
-        // created for them.
-        // We do know the order though.
-        loadIconById(android.R.id.home, icon);
-        mTextView = setText(1, label);
-
-        setStyle("actionBarStyle");
-    }
-
-    @Override
-    protected TextView getStyleableTextView() {
-        return mTextView;
-    }
-}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/OverflowMenuAdapter.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/OverflowMenuAdapter.java
new file mode 100644
index 0000000..778305d
--- /dev/null
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/OverflowMenuAdapter.java
@@ -0,0 +1,99 @@
+/*
+ * 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.android.layoutlib.bridge.bars;
+
+import com.android.internal.view.menu.MenuBuilder;
+import com.android.internal.view.menu.MenuItemImpl;
+import com.android.internal.view.menu.MenuView;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+
+import java.util.ArrayList;
+
+/**
+ * Provides an adapter for Overflow menu popup. This is very similar to
+ * {@code MenuPopupHelper.MenuAdapter}
+ */
+public class OverflowMenuAdapter extends BaseAdapter {
+
+    private final MenuBuilder mMenu;
+    private int mExpandedIndex = -1;
+    private final Context context;
+
+    public OverflowMenuAdapter(MenuBuilder menu, Context context) {
+        mMenu = menu;
+        findExpandedIndex();
+        this.context = context;
+    }
+
+    @Override
+    public int getCount() {
+        ArrayList<MenuItemImpl> items = mMenu.getNonActionItems();
+        if (mExpandedIndex < 0) {
+            return items.size();
+        }
+        return items.size() - 1;
+    }
+
+    @Override
+    public MenuItemImpl getItem(int position) {
+        ArrayList<MenuItemImpl> items = mMenu.getNonActionItems();
+        if (mExpandedIndex >= 0 && position >= mExpandedIndex) {
+            position++;
+        }
+        return items.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        // Since a menu item's ID is optional, we'll use the position as an
+        // ID for the item in the AdapterView
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            LayoutInflater mInflater = LayoutInflater.from(context);
+            convertView = mInflater.inflate(com.android.internal.R.layout.popup_menu_item_layout,
+                    parent, false);
+        }
+
+        MenuView.ItemView itemView = (MenuView.ItemView) convertView;
+        itemView.initialize(getItem(position), 0);
+        return convertView;
+    }
+
+    private void findExpandedIndex() {
+        final MenuItemImpl expandedItem = mMenu.getExpandedItem();
+        if (expandedItem != null) {
+            final ArrayList<MenuItemImpl> items = mMenu.getNonActionItems();
+            final int count = items.size();
+            for (int i = 0; i < count; i++) {
+                final MenuItemImpl item = items.get(i);
+                if (item == expandedItem) {
+                    mExpandedIndex = i;
+                    return;
+                }
+            }
+        }
+    }
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java
index 377d996..afcadef 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java
@@ -43,12 +43,13 @@
 import com.android.layoutlib.bridge.android.BridgeContext;
 import com.android.layoutlib.bridge.android.BridgeLayoutParamsMapAttributes;
 import com.android.layoutlib.bridge.android.BridgeXmlBlockParser;
-import com.android.layoutlib.bridge.bars.FakeActionBar;
 import com.android.layoutlib.bridge.bars.NavigationBar;
 import com.android.layoutlib.bridge.bars.StatusBar;
 import com.android.layoutlib.bridge.bars.TitleBar;
+import com.android.layoutlib.bridge.bars.ActionBarLayout;
 import com.android.layoutlib.bridge.impl.binding.FakeAdapter;
 import com.android.layoutlib.bridge.impl.binding.FakeExpandableAdapter;
+import com.android.resources.Density;
 import com.android.resources.ResourceType;
 import com.android.resources.ScreenOrientation;
 import com.android.util.Pair;
@@ -134,6 +135,7 @@
     // information being returned through the API
     private BufferedImage mImage;
     private List<ViewInfo> mViewInfoList;
+    private List<ViewInfo> mSystemViewInfoList;
 
     private static final class PostInflateException extends Exception {
         private static final long serialVersionUID = 1L;
@@ -146,10 +148,11 @@
     /**
      * Creates a layout scene with all the information coming from the layout bridge API.
      * <p>
-     * This <b>must</b> be followed by a call to {@link RenderSessionImpl#init()}, which act as a
+     * This <b>must</b> be followed by a call to {@link RenderSessionImpl#init(long)},
+     * which act as a
      * call to {@link RenderSessionImpl#acquire(long)}
      *
-     * @see LayoutBridge#createScene(com.android.layoutlib.api.SceneParams)
+     * @see Bridge#createSession(SessionParams)
      */
     public RenderSessionImpl(SessionParams params) {
         super(new SessionParams(params));
@@ -225,14 +228,15 @@
             HardwareConfig hardwareConfig = params.getHardwareConfig();
             BridgeContext context = getContext();
             boolean isRtl = Bridge.isLocaleRtl(params.getLocale());
-            int direction = isRtl ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR;
+            int layoutDirection = isRtl ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR;
+            ActionBarLayout actionBar = null;
 
             // the view group that receives the window background.
             ViewGroup backgroundView = null;
 
             if (mWindowIsFloating || params.isForceNoDecor()) {
                 backgroundView = mViewRoot = mContentRoot = new FrameLayout(context);
-                mViewRoot.setLayoutDirection(direction);
+                mViewRoot.setLayoutDirection(layoutDirection);
             } else {
                 if (hasSoftwareButtons() && mNavigationBarOrientation == LinearLayout.VERTICAL) {
                     /*
@@ -254,18 +258,13 @@
                        the bottom
                      */
                     LinearLayout topLayout = new LinearLayout(context);
-                    topLayout.setLayoutDirection(direction);
+                    topLayout.setLayoutDirection(layoutDirection);
                     mViewRoot = topLayout;
                     topLayout.setOrientation(LinearLayout.HORIZONTAL);
 
                     try {
-                        NavigationBar navigationBar = new NavigationBar(context,
-                                hardwareConfig.getDensity(), LinearLayout.VERTICAL, isRtl,
-                                params.isRtlSupported());
-                        navigationBar.setLayoutParams(
-                                new LinearLayout.LayoutParams(
-                                        mNavigationBarSize,
-                                        LayoutParams.MATCH_PARENT));
+                        NavigationBar navigationBar = createNavigationBar(context,
+                                hardwareConfig.getDensity(), isRtl, params.isRtlSupported());
                         topLayout.addView(navigationBar);
                     } catch (XmlPullParserException e) {
 
@@ -293,14 +292,15 @@
 
                 LinearLayout topLayout = new LinearLayout(context);
                 topLayout.setOrientation(LinearLayout.VERTICAL);
-                topLayout.setLayoutDirection(direction);
+                topLayout.setLayoutDirection(layoutDirection);
                 // if we don't already have a view root this is it
                 if (mViewRoot == null) {
                     mViewRoot = topLayout;
                 } else {
+                    int topLayoutWidth =
+                            params.getHardwareConfig().getScreenWidth() - mNavigationBarSize;
                     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
-                            LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
-                    layoutParams.weight = 1;
+                            topLayoutWidth, LayoutParams.MATCH_PARENT);
                     topLayout.setLayoutParams(layoutParams);
 
                     // this is the case of soft buttons + vertical bar.
@@ -319,12 +319,9 @@
                 if (mStatusBarSize > 0) {
                     // system bar
                     try {
-                        StatusBar systemBar = new StatusBar(context, hardwareConfig.getDensity(),
-                                direction, params.isRtlSupported());
-                        systemBar.setLayoutParams(
-                                new LinearLayout.LayoutParams(
-                                        LayoutParams.MATCH_PARENT, mStatusBarSize));
-                        topLayout.addView(systemBar);
+                        StatusBar statusBar = createStatusBar(context, hardwareConfig.getDensity(),
+                                layoutDirection, params.isRtlSupported());
+                        topLayout.addView(statusBar);
                     } catch (XmlPullParserException e) {
 
                     }
@@ -343,23 +340,17 @@
                 // if the theme says no title/action bar, then the size will be 0
                 if (mActionBarSize > 0) {
                     try {
-                        FakeActionBar actionBar = new FakeActionBar(context,
-                                hardwareConfig.getDensity(),
-                                params.getAppLabel(), params.getAppIcon());
-                        actionBar.setLayoutParams(
-                                new LinearLayout.LayoutParams(
-                                        LayoutParams.MATCH_PARENT, mActionBarSize));
+                        actionBar = createActionBar(context, params);
                         backgroundLayout.addView(actionBar);
+                        actionBar.createMenuPopup();
+                        mContentRoot = actionBar.getContentRoot();
                     } catch (XmlPullParserException e) {
 
                     }
                 } else if (mTitleBarSize > 0) {
                     try {
-                        TitleBar titleBar = new TitleBar(context,
+                        TitleBar titleBar = createTitleBar(context,
                                 hardwareConfig.getDensity(), params.getAppLabel());
-                        titleBar.setLayoutParams(
-                                new LinearLayout.LayoutParams(
-                                        LayoutParams.MATCH_PARENT, mTitleBarSize));
                         backgroundLayout.addView(titleBar);
                     } catch (XmlPullParserException e) {
 
@@ -367,23 +358,21 @@
                 }
 
                 // content frame
-                mContentRoot = new FrameLayout(context);
-                layoutParams = new LinearLayout.LayoutParams(
-                        LayoutParams.MATCH_PARENT, 0);
-                layoutParams.weight = 1;
-                mContentRoot.setLayoutParams(layoutParams);
-                backgroundLayout.addView(mContentRoot);
+                if (mContentRoot == null) {
+                    mContentRoot = new FrameLayout(context);
+                    layoutParams = new LinearLayout.LayoutParams(
+                            LayoutParams.MATCH_PARENT, 0);
+                    layoutParams.weight = 1;
+                    mContentRoot.setLayoutParams(layoutParams);
+                    backgroundLayout.addView(mContentRoot);
+                }
 
                 if (mNavigationBarOrientation == LinearLayout.HORIZONTAL &&
                         mNavigationBarSize > 0) {
                     // system bar
                     try {
-                        NavigationBar navigationBar = new NavigationBar(context,
-                                hardwareConfig.getDensity(), LinearLayout.HORIZONTAL, isRtl,
-                                params.isRtlSupported());
-                        navigationBar.setLayoutParams(
-                                new LinearLayout.LayoutParams(
-                                        LayoutParams.MATCH_PARENT, mNavigationBarSize));
+                        NavigationBar navigationBar = createNavigationBar(context,
+                                hardwareConfig.getDensity(), isRtl, params.isRtlSupported());
                         topLayout.addView(navigationBar);
                     } catch (XmlPullParserException e) {
 
@@ -441,7 +430,7 @@
      * @throws IllegalStateException if the current context is different than the one owned by
      *      the scene, or if {@link #acquire(long)} was not called.
      *
-     * @see RenderParams#getRenderingMode()
+     * @see SessionParams#getRenderingMode()
      * @see RenderSession#render(long)
      */
     public Result render(boolean freshRender) {
@@ -584,7 +573,7 @@
                 mViewRoot.draw(mCanvas);
             }
 
-            mViewInfoList = startVisitingViews(mViewRoot, 0, params.getExtendedViewInfoMode());
+            mSystemViewInfoList = visitAllChildren(mViewRoot, 0, params.getExtendedViewInfoMode(), false);
 
             // success!
             return SUCCESS.createResult();
@@ -1369,50 +1358,126 @@
         }
     }
 
-    private List<ViewInfo> startVisitingViews(View view, int offset, boolean setExtendedInfo) {
-        if (view == null) {
-            return null;
-        }
-
-        // adjust the offset to this view.
-        offset += view.getTop();
-
-        if (view == mContentRoot) {
-            return visitAllChildren(mContentRoot, offset, setExtendedInfo);
-        }
-
-        // otherwise, look for mContentRoot in the children
-        if (view instanceof ViewGroup) {
-            ViewGroup group = ((ViewGroup) view);
-
-            for (int i = 0; i < group.getChildCount(); i++) {
-                List<ViewInfo> list = startVisitingViews(group.getChildAt(i), offset,
-                        setExtendedInfo);
-                if (list != null) {
-                    return list;
-                }
-            }
-        }
-
-        return null;
-    }
-
     /**
-     * Visits a View and its children and generate a {@link ViewInfo} containing the
+     * Visits a {@link View} and its children and generate a {@link ViewInfo} containing the
      * bounds of all the views.
+     *
      * @param view the root View
      * @param offset an offset for the view bounds.
      * @param setExtendedInfo whether to set the extended view info in the {@link ViewInfo} object.
+     * @param isContentFrame {@code true} if the {@code ViewInfo} to be created is part of the
+     *                       content frame.
+     *
+     * @return {@code ViewInfo} containing the bounds of the view and it children otherwise.
      */
-    private ViewInfo visit(View view, int offset, boolean setExtendedInfo) {
+    private ViewInfo visit(View view, int offset, boolean setExtendedInfo,
+            boolean isContentFrame) {
+        ViewInfo result = createViewInfo(view, offset, setExtendedInfo, isContentFrame);
+
+        if (view instanceof ViewGroup) {
+            ViewGroup group = ((ViewGroup) view);
+            result.setChildren(visitAllChildren(group, isContentFrame ? 0 : offset,
+                    setExtendedInfo, isContentFrame));
+        }
+        return result;
+    }
+
+    /**
+     * Visits all the children of a given ViewGroup and generates a list of {@link ViewInfo}
+     * containing the bounds of all the views. It also initializes the {@link #mViewInfoList} with
+     * the children of the {@code mContentRoot}.
+     *
+     * @param viewGroup the root View
+     * @param offset an offset from the top for the content view frame.
+     * @param setExtendedInfo whether to set the extended view info in the {@link ViewInfo} object.
+     * @param isContentFrame {@code true} if the {@code ViewInfo} to be created is part of the
+     *                       content frame. {@code false} if the {@code ViewInfo} to be created is
+     *                       part of the system decor.
+     */
+    private List<ViewInfo> visitAllChildren(ViewGroup viewGroup, int offset,
+            boolean setExtendedInfo, boolean isContentFrame) {
+        if (viewGroup == null) {
+            return null;
+        }
+
+        if (!isContentFrame) {
+            offset += viewGroup.getTop();
+        }
+
+        int childCount = viewGroup.getChildCount();
+        if (viewGroup == mContentRoot) {
+            List<ViewInfo> childrenWithoutOffset = new ArrayList<ViewInfo>(childCount);
+            List<ViewInfo> childrenWithOffset = new ArrayList<ViewInfo>(childCount);
+            for (int i = 0; i < childCount; i++) {
+                ViewInfo[] childViewInfo = visitContentRoot(viewGroup.getChildAt(i), offset,
+                        setExtendedInfo);
+                childrenWithoutOffset.add(childViewInfo[0]);
+                childrenWithOffset.add(childViewInfo[1]);
+            }
+            mViewInfoList = childrenWithOffset;
+            return childrenWithoutOffset;
+        } else {
+            List<ViewInfo> children = new ArrayList<ViewInfo>(childCount);
+            for (int i = 0; i < childCount; i++) {
+                children.add(visit(viewGroup.getChildAt(i), offset, setExtendedInfo,
+                        isContentFrame));
+            }
+            return children;
+        }
+    }
+
+    /**
+     * Visits the children of {@link #mContentRoot} and generates {@link ViewInfo} containing the
+     * bounds of all the views. It returns two {@code ViewInfo} objects with the same children,
+     * one with the {@code offset} and other without the {@code offset}. The offset is needed to
+     * get the right bounds if the {@code ViewInfo} hierarchy is accessed from
+     * {@code mViewInfoList}. When the hierarchy is accessed via {@code mSystemViewInfoList}, the
+     * offset is not needed.
+     *
+     * @return an array of length two, with ViewInfo at index 0 is without offset and ViewInfo at
+     *         index 1 is with the offset.
+     */
+    private ViewInfo[] visitContentRoot(View view, int offset, boolean setExtendedInfo) {
+        ViewInfo[] result = new ViewInfo[2];
+        if (view == null) {
+            return result;
+        }
+
+        result[0] = createViewInfo(view, 0, setExtendedInfo, true);
+        result[1] = createViewInfo(view, offset, setExtendedInfo, true);
+        if (view instanceof ViewGroup) {
+            List<ViewInfo> children = visitAllChildren((ViewGroup) view, 0, setExtendedInfo, true);
+            result[0].setChildren(children);
+            result[1].setChildren(children);
+        }
+        return result;
+    }
+
+    /**
+     * Creates a {@link ViewInfo} for the view. The {@code ViewInfo} corresponding to the children
+     * of the {@code view} are not created. Consequently, the children of {@code ViewInfo} is not
+     * set.
+     * @param offset an offset for the view bounds. Used only if view is part of the content frame.
+     */
+    private ViewInfo createViewInfo(View view, int offset, boolean setExtendedInfo,
+            boolean isContentFrame) {
         if (view == null) {
             return null;
         }
 
-        ViewInfo result = new ViewInfo(view.getClass().getName(),
-                getContext().getViewKey(view),
-                view.getLeft(), view.getTop() + offset, view.getRight(), view.getBottom() + offset,
-                view, view.getLayoutParams());
+        ViewInfo result;
+        if (isContentFrame) {
+            result = new ViewInfo(view.getClass().getName(),
+                    getContext().getViewKey(view),
+                    view.getLeft(), view.getTop() + offset, view.getRight(),
+                    view.getBottom() + offset, view, view.getLayoutParams());
+
+        } else {
+            result = new SystemViewInfo(view.getClass().getName(),
+                    getContext().getViewKey(view),
+                    view.getLeft(), view.getTop(), view.getRight(),
+                    view.getBottom(), view, view.getLayoutParams());
+        }
 
         if (setExtendedInfo) {
             MarginLayoutParams marginParams = null;
@@ -1427,39 +1492,67 @@
                     marginParams != null ? marginParams.bottomMargin : 0);
         }
 
-        if (view instanceof ViewGroup) {
-            ViewGroup group = ((ViewGroup) view);
-            result.setChildren(visitAllChildren(group, 0 /*offset*/, setExtendedInfo));
-        }
-
         return result;
     }
 
-    /**
-     * Visits all the children of a given ViewGroup generate a list of {@link ViewInfo}
-     * containing the bounds of all the views.
-     * @param view the root View
-     * @param offset an offset for the view bounds.
-     * @param setExtendedInfo whether to set the extended view info in the {@link ViewInfo} object.
-     */
-    private List<ViewInfo> visitAllChildren(ViewGroup viewGroup, int offset,
-            boolean setExtendedInfo) {
-        if (viewGroup == null) {
-            return null;
-        }
-
-        List<ViewInfo> children = new ArrayList<ViewInfo>();
-        for (int i = 0; i < viewGroup.getChildCount(); i++) {
-            children.add(visit(viewGroup.getChildAt(i), offset, setExtendedInfo));
-        }
-        return children;
-    }
-
-
     private void invalidateRenderingSize() {
         mMeasuredScreenWidth = mMeasuredScreenHeight = -1;
     }
 
+    /**
+     * Creates the status bar with wifi and battery icons.
+     */
+    private StatusBar createStatusBar(BridgeContext context, Density density, int direction,
+            boolean isRtlSupported) throws XmlPullParserException {
+        StatusBar statusBar = new StatusBar(context, density,
+                direction, isRtlSupported);
+        statusBar.setLayoutParams(
+                new LinearLayout.LayoutParams(
+                        LayoutParams.MATCH_PARENT, mStatusBarSize));
+        return statusBar;
+    }
+
+    /**
+     * Creates the navigation bar with back, home and recent buttons.
+     *
+     * @param isRtl true if the current locale is right-to-left
+     * @param isRtlSupported true is the project manifest declares that the application
+     *        is RTL aware.
+     */
+    private NavigationBar createNavigationBar(BridgeContext context, Density density,
+            boolean isRtl, boolean isRtlSupported) throws XmlPullParserException {
+        NavigationBar navigationBar = new NavigationBar(context,
+                density, mNavigationBarOrientation, isRtl,
+                isRtlSupported);
+        if (mNavigationBarOrientation == LinearLayout.VERTICAL) {
+            navigationBar.setLayoutParams(new LinearLayout.LayoutParams(mNavigationBarSize,
+                    LayoutParams.MATCH_PARENT));
+        } else {
+            navigationBar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+                    mNavigationBarSize));
+        }
+        return navigationBar;
+    }
+
+    private TitleBar createTitleBar(BridgeContext context, Density density, String title)
+            throws XmlPullParserException {
+        TitleBar titleBar = new TitleBar(context, density, title);
+        titleBar.setLayoutParams(
+                new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, mTitleBarSize));
+        return titleBar;
+    }
+
+    /**
+     * Creates the action bar. Also queries the project callback for missing information.
+     */
+    private ActionBarLayout createActionBar(BridgeContext context, SessionParams params)
+            throws XmlPullParserException {
+        ActionBarLayout actionBar = new ActionBarLayout(context, params);
+        actionBar.setLayoutParams(new LinearLayout.LayoutParams(
+                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+        return actionBar;
+    }
+
     public BufferedImage getImage() {
         return mImage;
     }
@@ -1472,6 +1565,10 @@
         return mViewInfoList;
     }
 
+    public List<ViewInfo> getSystemViewInfos() {
+        return mSystemViewInfoList;
+    }
+
     public Map<String, String> getDefaultProperties(Object viewObject) {
         return getContext().getDefaultPropMap(viewObject);
     }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
index 6dcb693..adb0937 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
@@ -165,6 +165,9 @@
      * @param context the current context
      */
     public static Drawable getDrawable(ResourceValue value, BridgeContext context) {
+        if (value == null) {
+            return null;
+        }
         String stringValue = value.getValue();
         if (RenderResources.REFERENCE_NULL.equals(stringValue)) {
             return null;
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/SystemViewInfo.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/SystemViewInfo.java
new file mode 100644
index 0000000..5c267df
--- /dev/null
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/SystemViewInfo.java
@@ -0,0 +1,38 @@
+/*
+ * 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.android.layoutlib.bridge.impl;
+
+import com.android.ide.common.rendering.api.ViewInfo;
+
+public class SystemViewInfo extends ViewInfo {
+
+    public SystemViewInfo(String name, Object cookie, int left, int top,
+            int right, int bottom) {
+        super(name, cookie, left, top, right, bottom);
+    }
+
+    public SystemViewInfo(String name, Object cookie, int left, int top,
+            int right, int bottom, Object viewObject, Object layoutParamsObject) {
+        super(name, cookie, left, top, right, bottom, viewObject,
+                layoutParamsObject);
+    }
+
+    @Override
+    public boolean isSystemView() {
+        return true;
+    }
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java
index 53e1640..a2a8aa9 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/util/SparseWeakArray.java
@@ -18,6 +18,7 @@
 
 
 import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.GrowingArrayUtils;
 
 import android.util.SparseArray;
 
@@ -59,10 +60,8 @@
      * number of mappings.
      */
     public SparseWeakArray(int initialCapacity) {
-        initialCapacity = ArrayUtils.idealLongArraySize(initialCapacity);
-
-        mKeys = new long[initialCapacity];
-        mValues = new WeakReference[initialCapacity];
+        mKeys = ArrayUtils.newUnpaddedLongArray(initialCapacity);
+        mValues = new WeakReference[mKeys.length];
         mSize = 0;
     }
 
@@ -142,18 +141,6 @@
 
         mGarbage = false;
         mSize = o;
-
-        int newSize = ArrayUtils.idealLongArraySize(mSize);
-        if (newSize < mKeys.length) {
-            long[] nkeys = new long[newSize];
-            WeakReference<?>[] nvalues = new WeakReference[newSize];
-
-            System.arraycopy(mKeys, 0, nkeys, 0, newSize);
-            System.arraycopy(mValues, 0, nvalues, 0, newSize);
-
-            mKeys = nkeys;
-            mValues = nvalues;
-        }
     }
 
     /**
@@ -182,28 +169,8 @@
                 i = ~binarySearch(mKeys, 0, mSize, key);
             }
 
-            if (mSize >= mKeys.length) {
-                int n = ArrayUtils.idealLongArraySize(mSize + 1);
-
-                long[] nkeys = new long[n];
-                WeakReference<?>[] nvalues = new WeakReference[n];
-
-                // Log.e("SparseArray", "grow " + mKeys.length + " to " + n);
-                System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-                System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-                mKeys = nkeys;
-                mValues = nvalues;
-            }
-
-            if (mSize - i != 0) {
-                // Log.e("SparseArray", "move " + (mSize - i));
-                System.arraycopy(mKeys, i, mKeys, i + 1, mSize - i);
-                System.arraycopy(mValues, i, mValues, i + 1, mSize - i);
-            }
-
-            mKeys[i] = key;
-            mValues[i] = new WeakReference(value);
+            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
+            mValues = GrowingArrayUtils.insert(mValues, mSize, i, new WeakReference(value));
             mSize++;
         }
     }
@@ -321,24 +288,9 @@
             gc();
         }
 
-        int pos = mSize;
-        if (pos >= mKeys.length) {
-            int n = ArrayUtils.idealLongArraySize(pos + 1);
-
-            long[] nkeys = new long[n];
-            WeakReference<?>[] nvalues = new WeakReference[n];
-
-            // Log.e("SparseArray", "grow " + mKeys.length + " to " + n);
-            System.arraycopy(mKeys, 0, nkeys, 0, mKeys.length);
-            System.arraycopy(mValues, 0, nvalues, 0, mValues.length);
-
-            mKeys = nkeys;
-            mValues = nvalues;
-        }
-
-        mKeys[pos] = key;
-        mValues[pos] = new WeakReference(value);
-        mSize = pos + 1;
+        mKeys = GrowingArrayUtils.append(mKeys, mSize, key);
+        mValues = GrowingArrayUtils.append(mValues, mSize, new WeakReference(value));
+        mSize++;
     }
 
     private boolean hasReclaimedRefs() {
diff --git a/tools/layoutlib/create/.classpath b/tools/layoutlib/create/.classpath
index cd8bb0d..25c3b3e 100644
--- a/tools/layoutlib/create/.classpath
+++ b/tools/layoutlib/create/.classpath
@@ -4,6 +4,6 @@
 	<classpathentry excluding="mock_data/" kind="src" path="tests"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="var" path="ANDROID_SRC/prebuilts/tools/common/asm-tools/asm-4.0.jar" sourcepath="/ANDROID_PLAT/prebuilts/tools/common/asm-tools/src-4.0.zip"/>
+	<classpathentry kind="var" path="ANDROID_PLAT_SRC/prebuilts/misc/common/asm/asm-4.0.jar" sourcepath="/ANDROID_PLAT_SRC/prebuilts/misc/common/asm/src.zip"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tools/layoutlib/create/README.txt b/tools/layoutlib/create/README.txt
index ef2b185..6e0a300 100644
--- a/tools/layoutlib/create/README.txt
+++ b/tools/layoutlib/create/README.txt
@@ -4,46 +4,45 @@
 - Description -
 ---------------
 
-Layoutlib_create generates a JAR library used by the Eclipse graphical layout editor
-to perform layout.
+Layoutlib_create generates a JAR library used by the Eclipse graphical layout editor to perform
+layout.
 
 
 - Usage -
 ---------
 
- ./layoutlib_create path/to/android.jar destination.jar
+ ./layoutlib_create destination.jar path/to/android1.jar path/to/android2.jar
 
 
 - Design Overview -
 -------------------
 
-Layoutlib_create uses the "android.jar" containing all the Java code used by Android
-as generated by the Android build, right before the classes are converted to a DEX format.
+Layoutlib_create uses a few jars from the framework containing the Java code used by Android as
+generated by the Android build, right before the classes are converted to a DEX format.
 
-The Android JAR can't be used directly in Eclipse:
-- it contains references to native code (which we want to avoid in Eclipse),
-- some classes need to be overridden, for example all the drawing code that is
-  replaced by Java 2D calls in Eclipse.
-- some of the classes that need to be changed are final and/or we need access
-  to their private internal state.
+These jars can't be used directly in Eclipse as:
+- they contains references to native code (which we want to avoid in Eclipse),
+- some classes need to be overridden, for example all the drawing code that is replaced by Java 2D
+  calls in Eclipse.
+- some of the classes that need to be changed are final and/or we need access to their private
+  internal state.
 
 Consequently this tool:
 - parses the input JAR,
 - modifies some of the classes directly using some bytecode manipulation,
 - filters some packages and removes those we don't want in the output JAR,
 - injects some new classes,
-- generates a modified JAR file that is suitable for the Android plugin
-  for Eclipse to perform rendering.
+- generates a modified JAR file that is suitable for the Android plugin for Eclipse to perform
+  rendering.
 
 The ASM library is used to do the bytecode modification using its visitor pattern API.
 
-The layoutlib_create is *NOT* generic. There is no configuration file. Instead all the
-configuration is done in the main() method and the CreateInfo structure is expected to
-change with the Android platform as new classes are added, changed or removed.
+The layoutlib_create is *NOT* generic. There is no configuration file. Instead all the configuration
+is done in the main() method and the CreateInfo structure is expected to change with the Android
+platform as new classes are added, changed or removed.
 
-The resulting JAR is used by layoutlib_bridge (a.k.a. "the bridge"), also part of the
-platform, that provides all the necessary missing implementation for rendering graphics
-in Eclipse.
+The resulting JAR is used by layoutlib_bridge (a.k.a. "the bridge"), also part of the platform, that
+provides all the necessary missing implementation for rendering graphics in Eclipse.
 
 
 
@@ -58,97 +57,96 @@
 - Analyzer
 ----------
 
-The goal of the analyzer is to create a graph of all the classes from the input JAR
-with their dependencies and then only keep the ones we want.
+The goal of the analyzer is to create a graph of all the classes from the input JAR with their
+dependencies and then only keep the ones we want.
 
-To do that, the analyzer is created with a list of base classes to keep -- everything
-that derives from these is kept. Currently the one such class is android.view.View:
-since we want to render layouts, anything that is sort of a view needs to be kept.
+To do that, the analyzer is created with a list of base classes to keep -- everything that derives
+from these is kept. Currently the one such class is android.view.View: since we want to render
+layouts, anything that is sort of a view needs to be kept.
 
-The analyzer is also given a list of class names to keep in the output.
-This is done using shell-like glob patterns that filter on the fully-qualified
-class names, for example "android.*.R**" ("*" does not matches dots whilst "**" does,
-and "." and "$" are interpreted as-is).
-In practice we almost but not quite request the inclusion of full packages.
+The analyzer is also given a list of class names to keep in the output. This is done using
+shell-like glob patterns that filter on the fully-qualified class names, for example "android.*.R**"
+("*" does not matches dots whilst "**" does, and "." and "$" are interpreted as-is). In practice we
+almost but not quite request the inclusion of full packages.
 
-The analyzer is also given a list of classes to exclude. A fake implementation of these
-classes is injected by the Generator.
+The analyzer is also given a list of classes to exclude. A fake implementation of these classes is
+injected by the Generator.
 
-With this information, the analyzer parses the input zip to find all the classes.
-All classes deriving from the requested bases classes are kept.
-All classes which name matched the glob pattern are kept.
-The analysis then finds all the dependencies of the classes that are to be kept
-using an ASM visitor on the class, the field types, the method types and annotations types.
-Classes that belong to the current JRE are excluded.
+With this information, the analyzer parses the input zip to find all the classes. All classes
+deriving from the requested bases classes are kept. All classes whose name match the glob pattern
+are kept. The analysis then finds all the dependencies of the classes that are to be kept using an
+ASM visitor on the class, the field types, the method types and annotations types. Classes that
+belong to the current JRE are excluded.
 
-The output of the analyzer is a set of ASM ClassReader instances which are then
-fed to the generator.
+The output of the analyzer is a set of ASM ClassReader instances which are then fed to the
+generator.
 
 
 - Generator
 -----------
 
-The generator is constructed from a CreateInfo struct that acts as a config file
-and lists:
-- the classes to inject in the output JAR -- these classes are directly implemented
-  in layoutlib_create and will be used to interface with the renderer in Eclipse.
+The generator is constructed from a CreateInfo struct that acts as a config file and lists:
+- the classes to inject in the output JAR -- these classes are directly implemented in
+  layoutlib_create and will be used to interface with the renderer in Eclipse.
 - specific methods to override (see method stubs details below).
 - specific methods for which to delegate calls.
 - specific methods to remove based on their return type.
 - specific classes to rename.
 - specific classes to refactor.
 
-Each of these are specific strategies we use to be able to modify the Android code
-to fit within the Eclipse renderer. These strategies are explained beow.
+Each of these are specific strategies we use to be able to modify the Android code to fit within the
+Eclipse renderer. These strategies are explained beow.
 
-The core method of the generator is transform(): it takes an input ASM ClassReader
-and modifies it to produce a byte array suitable for the final JAR file.
+The core method of the generator is transform(): it takes an input ASM ClassReader and modifies it
+to produce a byte array suitable for the final JAR file.
 
 The first step of the transformation is to implement the method delegates.
 
-The TransformClassAdapter is then used to process the potentially renamed class.
-All protected or private classes are market as public.
-All classes are made non-final.
-Interfaces are left as-is.
+The TransformClassAdapter is then used to process the potentially renamed class.  All protected or
+private classes are market as public. All classes are made non-final. Interfaces are left as-is.
 
-If a method has a return type that must be erased, the whole method is skipped.
-Methods are also changed from protected/private to public.
-The code of the methods is then kept as-is, except for native methods which are
-replaced by a stub. Methods that are to be overridden are also replaced by a stub.
+If a method has a return type that must be erased, the whole method is skipped.  Methods are also
+changed from protected/private to public. The code of the methods is then kept as-is, except for
+native methods which are replaced by a stub. Methods that are to be overridden are also replaced by
+a stub.
 
 Finally fields are also visited and changed from protected/private to public.
 
-The next step of the transformation is changing the name of the class in case
-we requested the class to be renamed. This uses the RenameClassAdapter to also rename
-all inner classes and references in methods and types. Note that other classes are
-not transformed and keep referencing the original name.
+The next step of the transformation is changing the name of the class in case we requested the class
+to be renamed. This uses the RenameClassAdapter to also rename all inner classes and references in
+methods and types. Note that other classes are not transformed and keep referencing the original
+name.
 
-The class is then fed to RefactorClassAdapter which is like RenameClassAdapter but
-updates the references in all classes. This is used to update the references of classes
-in the java package that were added in the Dalvik VM but are not a part of the standard
-JVM. The existing classes are modified to update all references to these non-standard
-classes. An alternate implementation of these (com.android.tools.layoutlib.java.*) is
-injected.
+The class is then fed to RefactorClassAdapter which is like RenameClassAdapter but updates the
+references in all classes. This is used to update the references of classes in the java package that
+were added in the Dalvik VM but are not a part of the standard JVM. The existing classes are
+modified to update all references to these non-standard classes. An alternate implementation of
+these (com.android.tools.layoutlib.java.*) is injected.
 
-The ClassAdapters are chained together to achieve the desired output. (Look at section
-2.2.7 Transformation chains in the asm user guide, link in the References.) The order of
-execution of these is:
+RenameClassAdapter and RefactorClassAdapter both inherit from AbstractClassAdapter which changes the
+class version (version of the JDK used to compile the class) to 50 (corresponding to Java 6), if the
+class was originally compiled with Java 7 (version 51). This is because we don't currently generate
+the StackMapTable correctly and Java 7 VM enforces that classes with version greater than 51 have
+valid StackMapTable. As a side benefit of this, we can continue to support Java 6 because Java 7 on
+Mac has horrible font rendering support.
+
+The ClassAdapters are chained together to achieve the desired output. (Look at section 2.2.7
+Transformation chains in the asm user guide, link in the References.) The order of execution of
+these is:
 ClassReader -> [DelegateClassAdapter] -> TransformClassAdapter -> [RenameClassAdapter] ->
 RefactorClassAdapter -> ClassWriter
 
 - Method stubs
 --------------
 
-As indicated above, all native and overridden methods are replaced by a stub.
-We don't have the code to replace with in layoutlib_create.
-Instead the StubMethodAdapter replaces the code of the method by a call to
-OverrideMethod.invokeX(). When using the final JAR, the bridge can register
+As indicated above, all native and overridden methods are replaced by a stub.  We don't have the
+code to replace with in layoutlib_create. Instead the StubMethodAdapter replaces the code of the
+method by a call to OverrideMethod.invokeX(). When using the final JAR, the bridge can register
 listeners from these overridden method calls based on the method signatures.
 
-The listeners are currently pretty basic: we only pass the signature of the
-method being called, its caller object and a flag indicating whether the
-method was native. We do not currently provide the parameters. The listener
-can however specify the return value of the overridden method.
+The listeners are currently pretty basic: we only pass the signature of the method being called, its
+caller object and a flag indicating whether the method was native. We do not currently provide the
+parameters. The listener can however specify the return value of the overridden method.
 
 This strategy is now obsolete and replaced by the method delegates.
 
@@ -156,97 +154,89 @@
 - Strategies
 ------------
 
-We currently have 6 strategies to deal with overriding the rendering code
-and make it run in Eclipse. Most of these strategies are implemented hand-in-hand
-by the bridge (which runs in Eclipse) and the generator.
+We currently have 6 strategies to deal with overriding the rendering code and make it run in
+Eclipse. Most of these strategies are implemented hand-in-hand by the bridge (which runs in Eclipse)
+and the generator.
 
 
 1- Class Injection
 
 This is the easiest: we currently inject the following classes:
-- OverrideMethod and its associated MethodListener and MethodAdapter are used
-  to intercept calls to some specific methods that are stubbed out and change
-  their return value.
-- CreateInfo class, which configured the generator. Not used yet, but could
-  in theory help us track what the generator changed.
-- AutoCloseable and Objects are part of Java 7. To enable us to still run on Java 6, new
-  classes are injected. The implementation for these classes has been taken from
-  Android's libcore (platform/libcore/luni/src/main/java/java/...).
-- Charsets, IntegralToString and UnsafeByteSequence are not part of the standard JAVA VM.
-  They are added to the Dalvik VM for performance reasons. An implementation that is very
-  close to the original (which is at platform/libcore/luni/src/main/java/...) is injected.
-  Since these classees were in part of the java package, where we can't inject classes,
-  all references to these have been updated (See strategy 4- Refactoring Classes).
+- OverrideMethod and its associated MethodListener and MethodAdapter are used to intercept calls to
+  some specific methods that are stubbed out and change their return value.
+- CreateInfo class, which configured the generator. Not used yet, but could in theory help us track
+  what the generator changed.
+- AutoCloseable and Objects are part of Java 7. To enable us to still run on Java 6, new classes are
+  injected. The implementation for these classes has been taken from Android's libcore
+  (platform/libcore/luni/src/main/java/java/...).
+- Charsets, IntegralToString and UnsafeByteSequence are not part of the standard JAVA VM. They are
+  added to the Dalvik VM for performance reasons. An implementation that is very close to the
+  original (which is at platform/libcore/luni/src/main/java/...) is injected. Since these classees
+  were in part of the java package, where we can't inject classes, all references to these have been
+  updated (See strategy 4- Refactoring Classes).
 
 
 2- Overriding methods
 
-As explained earlier, the creator doesn't have any replacement code for
-methods to override. Instead it removes the original code and replaces it
-by a call to a specific OveriddeMethod.invokeX(). The bridge then registers
-a listener on the method signature and can provide an implementation.
+As explained earlier, the creator doesn't have any replacement code for methods to override. Instead
+it removes the original code and replaces it by a call to a specific OveriddeMethod.invokeX(). The
+bridge then registers a listener on the method signature and can provide an implementation.
 
-This strategy is now obsolete and replaced by the method delegates.
-See strategy 5 below.
+This strategy is now obsolete and replaced by the method delegates (See strategy 6- Method
+Delegates).
 
 
 3- Renaming classes
 
-This simply changes the name of a class in its definition, as well as all its
-references in internal inner classes and methods.
-Calls from other classes are not modified -- they keep referencing the original
-class name. This allows the bridge to literally replace an implementation.
+This simply changes the name of a class in its definition, as well as all its references in internal
+inner classes and methods. Calls from other classes are not modified -- they keep referencing the
+original class name. This allows the bridge to literally replace an implementation.
 
-An example will make this easier: android.graphics.Paint is the main drawing
-class that we need to replace. To do so, the generator renames Paint to _original_Paint.
-Later the bridge provides its own replacement version of Paint which will be used
-by the rest of the Android stack. The replacement version of Paint can still use
-(either by inheritance or delegation) all the original non-native code of _original_Paint
-if it so desires.
+An example will make this easier: android.graphics.Paint is the main drawing class that we need to
+replace. To do so, the generator renames Paint to _original_Paint. Later the bridge provides its own
+replacement version of Paint which will be used by the rest of the Android stack. The replacement
+version of Paint can still use (either by inheritance or delegation) all the original non-native
+code of _original_Paint if it so desires.
 
-Some of the Android classes are basically wrappers over native objects and since
-we don't have the native code in Eclipse, we need to provide a full alternate
-implementation. Sub-classing doesn't work as some native methods are static and
-we don't control object creation.
+Some of the Android classes are basically wrappers over native objects and since we don't have the
+native code in Eclipse, we need to provide a full alternate implementation. Sub-classing doesn't
+work as some native methods are static and we don't control object creation.
 
 This won't rename/replace the inner static methods of a given class.
 
 
 4- Refactoring classes
 
-This is very similar to the Renaming classes except that it also updates the reference in
-all classes. This is done for classes which are added to the Dalvik VM for performance
-reasons but are not present in the Standard Java VM. An implementation for these classes
-is also injected.
+This is very similar to the Renaming classes except that it also updates the reference in all
+classes. This is done for classes which are added to the Dalvik VM for performance reasons but are
+not present in the Standard Java VM. An implementation for these classes is also injected.
 
 
 5- Method erasure based on return type
 
-This is mostly an implementation detail of the bridge: in the Paint class
-mentioned above, some inner static classes are used to pass around
-attributes (e.g. FontMetrics, or the Style enum) and all the original implementation
-is native.
+This is mostly an implementation detail of the bridge: in the Paint class mentioned above, some
+inner static classes are used to pass around attributes (e.g. FontMetrics, or the Style enum) and
+all the original implementation is native.
 
-In this case we have a strategy that tells the generator that anything returning, for
-example, the inner class Paint$Style in the Paint class should be discarded and the
-bridge will provide its own implementation.
+In this case we have a strategy that tells the generator that anything returning, for example, the
+inner class Paint$Style in the Paint class should be discarded and the bridge will provide its own
+implementation.
 
 
 6- Method Delegates
 
-This strategy is used to override method implementations.
-Given a method SomeClass.MethodName(), 1 or 2 methods are generated:
-a- A copy of the original method named SomeClass.MethodName_Original().
-   The content is the original method as-is from the reader.
-   This step is omitted if the method is native, since it has no Java implementation.
-b- A brand new implementation of SomeClass.MethodName() which calls to a
-   non-existing static method named SomeClass_Delegate.MethodName().
-   The implementation of this 'delegate' method is done in layoutlib_brigde.
+This strategy is used to override method implementations. Given a method SomeClass.MethodName(), 1
+or 2 methods are generated:
+a- A copy of the original method named SomeClass.MethodName_Original(). The content is the original
+method as-is from the reader. This step is omitted if the method is native, since it has no Java
+implementation.
+b- A brand new implementation of SomeClass.MethodName() which calls to a non-existing static method
+named SomeClass_Delegate.MethodName(). The implementation of this 'delegate' method is done in
+layoutlib_brigde.
 
-The delegate method is a static method.
-If the original method is non-static, the delegate method receives the original 'this'
-as its first argument. If the original method is an inner non-static method, it also
-receives the inner 'this' as the second argument.
+The delegate method is a static method. If the original method is non-static, the delegate method
+receives the original 'this' as its first argument. If the original method is an inner non-static
+method, it also receives the inner 'this' as the second argument.
 
 
 
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AbstractClassAdapter.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AbstractClassAdapter.java
index b2caa25..323a791 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AbstractClassAdapter.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AbstractClassAdapter.java
@@ -177,6 +177,17 @@
             }
         }
 
+        /* Java 7 verifies the StackMapTable of a class if its version number is greater than 50.0.
+         * However, the check is disabled if the class version number is 50.0 or less. Generation
+         * of the StackMapTable requires a rewrite using the tree API of ASM. As a workaround,
+         * we rewrite the version number of the class to be 50.0
+         *
+         * http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6693236
+         */
+        if (version > 50) {
+            version = 50;
+        }
+
         super.visit(version, access, name, signature, superName, interfaces);
     }
 
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java
index 9a31705..3e75c9e 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/AsmAnalyzer.java
@@ -632,8 +632,8 @@
             // field instruction
             @Override
             public void visitFieldInsn(int opcode, String owner, String name, String desc) {
-                // name is the field's name.
-                considerName(name);
+                // owner is the class that declares the field.
+                considerName(owner);
                 // desc is the field's descriptor (see Type).
                 considerDesc(desc);
             }
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java
index 4236038..e0c05de 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java
@@ -126,6 +126,9 @@
         "android.content.res.Resources$Theme#obtainStyledAttributes",
         "android.content.res.Resources$Theme#resolveAttribute",
         "android.content.res.Resources#localeToLanguageTag",
+        "android.content.res.AssetManager#newTheme",
+        "android.content.res.AssetManager#deleteTheme",
+        "android.content.res.AssetManager#applyThemeStyle",
         "android.content.res.TypedArray#getValueAt",
         "android.graphics.BitmapFactory#finishDecode",
         "android.os.Handler#sendMessageAtTime",
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
index c988c70..2016c0e 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
@@ -527,7 +527,8 @@
             // field instruction
             @Override
             public void visitFieldInsn(int opcode, String owner, String name, String desc) {
-                // name is the field's name.
+                // owner is the class that declares the field.
+                considerName(owner);
                 // desc is the field's descriptor (see Type).
                 considerDesc(desc);
             }
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java
index 2ef3d5f..2e952fc 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/Main.java
@@ -115,6 +115,8 @@
                         "android.database.ContentObserver", // for Digital clock
                         "com.android.i18n.phonenumbers.*",  // for TextView with autolink attribute
                         "android.app.DatePickerDialog",     // b.android.com/28318
+                        "android.app.TimePickerDialog",     // b.android.com/61515
+                        "com.android.internal.view.menu.ActionMenu",
                     },
                     excludeClasses,
                     new String[] {
diff --git a/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java b/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java
index 7ec0d38..78e2c48 100644
--- a/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java
+++ b/tools/layoutlib/create/tests/com/android/tools/layoutlib/create/AsmAnalyzerTest.java
@@ -83,6 +83,7 @@
                 "mock_android.dummy.InnerTest$MyStaticInnerClass",
                 "mock_android.dummy.InnerTest$NotStaticInner1",
                 "mock_android.dummy.InnerTest$NotStaticInner2",
+                "mock_android.util.EmptyArray",
                 "mock_android.view.View",
                 "mock_android.view.ViewGroup",
                 "mock_android.view.ViewGroup$LayoutParams",
@@ -217,15 +218,16 @@
         TreeMap<String, ClassReader> in_deps = new TreeMap<String, ClassReader>();
         TreeMap<String, ClassReader> out_deps = new TreeMap<String, ClassReader>();
 
-        ClassReader cr = mAa.findClass("mock_android.widget.TableLayout", zipClasses, keep);
+        ClassReader cr = mAa.findClass("mock_android.widget.LinearLayout", zipClasses, keep);
         DependencyVisitor visitor = mAa.getVisitor(zipClasses, keep, new_keep, in_deps, out_deps);
 
         // get first level dependencies
         cr.accept(visitor, 0 /* flags */);
 
         assertArrayEquals(new String[] {
+                "mock_android.util.EmptyArray",
                 "mock_android.view.ViewGroup",
-                "mock_android.widget.TableLayout$LayoutParams",
+                "mock_android.widget.LinearLayout$LayoutParams",
             },
             out_deps.keySet().toArray());
 
@@ -255,7 +257,7 @@
 
         assertArrayEquals(new String[] { }, out_deps.keySet().toArray());
         assertArrayEquals(new String[] {
-                "mock_android.widget.TableLayout",
+                "mock_android.widget.LinearLayout",
         }, keep.keySet().toArray());
     }
 }
diff --git a/tools/layoutlib/create/tests/data/mock_android.jar b/tools/layoutlib/create/tests/data/mock_android.jar
index 8dd0481..c6ca3c4 100644
--- a/tools/layoutlib/create/tests/data/mock_android.jar
+++ b/tools/layoutlib/create/tests/data/mock_android.jar
Binary files differ
diff --git a/tools/layoutlib/create/tests/mock_data/mock_android/util/EmptyArray.java b/tools/layoutlib/create/tests/mock_data/mock_android/util/EmptyArray.java
new file mode 100644
index 0000000..aaeebf6
--- /dev/null
+++ b/tools/layoutlib/create/tests/mock_data/mock_android/util/EmptyArray.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
+ *
+ * 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 mock_android.util;
+
+import java.lang.JavaClass;
+
+public class EmptyArray {
+
+        public static final Object[] OBJECT = new Object[0];
+}
diff --git a/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java b/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java
index 3870a63..af56c4b 100644
--- a/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java
+++ b/tools/layoutlib/create/tests/mock_data/mock_android/widget/LinearLayout.java
@@ -16,11 +16,13 @@
 
 package mock_android.widget;
 
+import mock_android.util.EmptyArray;
 import mock_android.view.ViewGroup;
 
 public class LinearLayout extends ViewGroup {
 
-    public class LayoutParams extends mock_android.view.ViewGroup.LayoutParams {
+    Object[] mObjects = EmptyArray.OBJECT;
+    public class LayoutParams extends MarginLayoutParams {
 
     }
 
diff --git a/wifi/java/android/net/wifi/BatchedScanSettings.java b/wifi/java/android/net/wifi/BatchedScanSettings.java
index f7ebc17..54801ad 100644
--- a/wifi/java/android/net/wifi/BatchedScanSettings.java
+++ b/wifi/java/android/net/wifi/BatchedScanSettings.java
@@ -34,17 +34,17 @@
     /** Used to indicate no preference for an int value */
     public final static int UNSPECIFIED = Integer.MAX_VALUE;
 
-    // TODO - make MIN/mAX dynamic and gservices adjustable.
+    // TODO - make MIN/mAX as standard for wifi batch capability requirement.
     public final static int MIN_SCANS_PER_BATCH = 2;
-    public final static int MAX_SCANS_PER_BATCH = 255;
+    public final static int MAX_SCANS_PER_BATCH = 20;
     public final static int DEFAULT_SCANS_PER_BATCH = MAX_SCANS_PER_BATCH;
 
     public final static int MIN_AP_PER_SCAN = 2;
-    public final static int MAX_AP_PER_SCAN = 255;
+    public final static int MAX_AP_PER_SCAN = 16;
     public final static int DEFAULT_AP_PER_SCAN = 16;
 
-    public final static int MIN_INTERVAL_SEC = 0;
-    public final static int MAX_INTERVAL_SEC = 3600;
+    public final static int MIN_INTERVAL_SEC = 10;
+    public final static int MAX_INTERVAL_SEC = 500;
     public final static int DEFAULT_INTERVAL_SEC = 30;
 
     public final static int MIN_AP_FOR_DISTANCE = 0;
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index 84e933d..0535fe0 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -128,5 +128,7 @@
     boolean isBatchedScanSupported();
 
     void pollBatchedScan();
+
+    String getWpsNfcConfigurationToken(int netId);
 }
 
diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java
index 12729d2..d7ecaff 100644
--- a/wifi/java/android/net/wifi/ScanResult.java
+++ b/wifi/java/android/net/wifi/ScanResult.java
@@ -40,8 +40,7 @@
      */
     public String capabilities;
     /**
-     * The detected signal level in dBm. At least those are the units used by
-     * the TI driver.
+     * The detected signal level in dBm.
      */
     public int level;
     /**
diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java
index 4a6821c..f44cb0a 100644
--- a/wifi/java/android/net/wifi/WifiInfo.java
+++ b/wifi/java/android/net/wifi/WifiInfo.java
@@ -157,9 +157,8 @@
 
     /**
      * Returns the received signal strength indicator of the current 802.11
-     * network.
-     * <p><strong>This is not normalized, but should be!</strong></p>
-     * @return the RSSI, in the range ??? to ???
+     * network, in dBm.
+     * @return the RSSI, in the range -110 to 10
      */
     public int getRssi() {
         return mRssi;
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 0862b7e..5af1e4e 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -930,6 +930,21 @@
     }
 
     /**
+     * Creates a configuration token describing the network referenced by {@code netId}
+     * of MIME type application/vnd.wfa.wsc. Can be used to configure WiFi networks via NFC.
+     *
+     * @return hex-string encoded configuration token
+     * @hide
+     */
+    public String getWpsNfcConfigurationToken(int netId) {
+        try {
+            return mService.getWpsNfcConfigurationToken(netId);
+        } catch (RemoteException e) {
+            return null;
+        }
+    }
+
+    /**
      * Return dynamic information about the current Wi-Fi connection, if any is active.
      * @return the Wi-Fi information, contained in {@link WifiInfo}.
      */
diff --git a/wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl b/wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl
new file mode 100644
index 0000000..2b1601b
--- /dev/null
+++ b/wifi/java/android/net/wifi/hotspot/IWifiHotspotManager.aidl
@@ -0,0 +1,28 @@
+/**
+ * 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 android.net.wifi.hotspot;
+
+/**
+ * Interface that allows controlling and querying Hotspot connectivity.
+ *
+ * {@hide}
+ */
+interface IWifiHotspotManager
+{
+    void test();
+}
+
diff --git a/wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java b/wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java
new file mode 100644
index 0000000..ac15017
--- /dev/null
+++ b/wifi/java/android/net/wifi/hotspot/WifiHotspotManager.java
@@ -0,0 +1,48 @@
+/*
+ * 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 android.net.wifi.hotspot;
+
+import android.content.Context;
+import android.os.RemoteException;
+import android.util.Log;
+
+/**
+ * TODO: doc
+ */
+public class WifiHotspotManager {
+
+    private static final String TAG = "WifiHotspotManager";
+
+    private Context mContext;
+    IWifiHotspotManager mService;
+
+    public WifiHotspotManager(Context context, IWifiHotspotManager service) {
+        mContext = context;
+        mService = service;
+    }
+
+    public void test() {
+        try{
+            Log.d(TAG, "test()");
+            mService.test();
+        }
+        catch (RemoteException e) {
+            Log.e(TAG, "test() exception");
+            e.printStackTrace();
+        }
+    }
+}